-
-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathGuide.txt
More file actions
189 lines (144 loc) · 5.58 KB
/
Copy pathGuide.txt
File metadata and controls
189 lines (144 loc) · 5.58 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
-- General --
This version of WebClash is work-in-progress,
and thus may contain bugs and glitches.
Please report found bugs and glitches at;
https://github.com/arthurb123/webclash/issues
An example project already exists, to wipe
the example project for a clean project use
the reset tool provided with the Server binary.
An account with administrator privileges should
already exist:
user: admin
pass: password
All accounts can be found in the data folder
located in the server directory.
-- Customization --
Alot of things in WebClash can be customized,
the majority of the game creation/customization
will take place in the server binary.
However there are certain files that can be
useful/important for customization;
* client/properties.js -> Here client properties can
be changed, such as graphical
and connection settings.
* server/properties.json -> Here server properties can
be changed, such as server specific
and player starting settings.
* server/gameplay.json -> Here gameplay properties can
be changed, such as day/night,
player death settings and aliases.
-- Maps --
WebClash makes use of maps created in
Tiled (www.mapeditor.org), these maps can be
imported using the Maps interface.
Layers of maps have to be given certain
properties in the maps interface by clicking the
Edit Layers button.
These settings determine the rendering position of
the layer and if the layer is hovering.
The rendering position of the layer can be changed
with the Move Down and Move Up buttons.
Hovering layers live atop of all other
entities. (players, NPCs, items, etc.)
Colliders are supported, however only in
the rectangular form.
Colliders can be created using rectangular
objects (object layers) or using tile specific
objects.
Design properties do not create colliders,
only event properties will create colliders.
Putting check properties on any kind of object,
a regular object or a tile specific object that
contains other properties that aren't checks,
will determine if the property will be applied or
not for a player (E.G: check does not apply, the NPC
will not be visible for that player).
If an object has checks but no other properties,
the checks will determine if the collider is available
or not for a player (E.G: check does not apply, the
collider will not be available for that player).
Putting check properties on a tile itself
will determine if the tile will be visible
or not for a player (E.G: check does not apply, the
tile will not be visible for that player).
The custom properties available for Tiled
objects are as follows:
[Design]
* "NPC" -> Spawns a NPC with the specified
name and profile. This should be
specified as "Name#Profile", for
example: "Eric#0". (string value)
* "item" -> Spawns an item with the specified
name, which respawns after 60
seconds. (string value)
* "mapDialogue" -> Opens up a dialogue with the
specified name, map dialogues
can be created in the Maps
interface. (string value)
* "lightHotspot" -> Creates a light hotspot in dark
areas with the specified radius
in tiles. (float value)
* "lightHotspotColor" -> Changes the color of the light
hotspot, transparent by default
and thus optional. (color value)
[Events]
* "loadMap" -> Loads the map with the specified
name. (string value)
* "positionX" -> Set player position tile X.
(int value)
* "positionY" -> Set player position tile Y.
(int value)
[Checks]
* "getVariableTrue" -> Checks if a player variable exists
and is true. All other properties
are only used if this check is true.
(string value)
* "getVariableFalse" -> Checks if a player variable does not
exist or is false. All other properties
are only used if this check is true.
(string value)
-- Commands --
WebClash allows chat commands based on
the player's privileges.
Admin priviliges can be granted by typing
"/op name" in the server or game chat (name
is your player name), or by changing the
permissions file located in the server folder.
To see the list of available commands type
"/help" in the server or game chat.
-- Plugins --
WebClash allows for the usage of client and
server plugins, these can be managed using
the server binary. Plugin JavaScript files
allow for some unique comments that get handled
by the binary;
//@author *Author name here*
//@description
//*Multi-line description
// can be put here*
//@string name defaultValue
//@number name defaultValue
//@bool name defaultValue
Properties that get declared using the string,
number or bool types will get automatically
declared with the set value (from the binary)
when the plugin code runs, these variables thus
do not have to be declared in the plugin code.
In the example project two simple Hello World
plugins exist for the client and server, do
look at this code for a better explanation.
-- Deployment --
Because WebClash makes use of real-time UDP, it
is necessary to open up the port 9208/tcp and
the range of ports 0-65535/upd on your server.
Also do not forget to open up the port which
is being used for the WebClash server process.
-- Art usage --
All provided graphics except UI and particle graphics
are not mine and are merely being used as example
material.
These graphics should not be distributed and/or used for
commercial purposes.
-- Licensing --
For all licensing needs concerning the code and used
libraries, please check the accompanied LICENSE file.