1+ # Character
12Base character class.
23 A character is a unique entity tied to a player client. Each client can have multiple characters.
34The character stores information that is relevant to the gameplay, but not specific to the player themselves, for instance: their model, name, description, inventory, etc.
45
56All characters that a player owns are loaded into server memory upon the client connecting.
67
78## Methods
8- ???+ realm-server "<a id =character :save ></a >character : save (callback)"
9- ##### sv_character : save {#charactersave}
9+ ???+ realm-server "<a id =Character :save ></a >Character : save (callback)"
10+ ##### sv_Character : save {#charactersave}
1011 Saves the character to the database and calls the callback if provided.
1112 <h3 >Parameters:</h3 >
1213 <span class =" types " ><span class =" type " >function</span ></span >
@@ -15,19 +16,19 @@ All characters that a player owns are loaded into server memory upon the client
1516
1617
1718
18- ???+ realm-server "<a id =character :sync ></a >character : sync (receiver)"
19- ##### sv_character : sync {#charactersync}
19+ ???+ realm-server "<a id =Character :sync ></a >Character : sync (receiver)"
20+ ##### sv_Character : sync {#charactersync}
2021 Sends character information to the receiver.
2122 <h3 >Parameters:</h3 >
22- <span class =" types " ><a class =" type " href = " ../Client# " >Client</a ></span >
23+ <span class =" types " ><span class =" type " >Client</span ></span >
2324 <span class =" parameter " >receiver</span >
24- <em ><ins >optional</ins ></em >
25+ <em ><ins >` optional ` </ins ></em >
2526 who will receive synchronization, nil - so that all players receive.
2627
2728
2829
29- ???+ realm-server "<a id =character :setup ></a >character : setup (noNetworking)"
30- ##### sv_character : setup {#charactersetup}
30+ ???+ realm-server "<a id =Character :setup ></a >Character : setup (noNetworking)"
31+ ##### sv_Character : setup {#charactersetup}
3132 Sets up the "appearance" related information for the character.
3233 <h3 >Parameters:</h3 >
3334 <span class =" types " ><span class =" type " >boolean</span ></span >
@@ -36,12 +37,12 @@ All characters that a player owns are loaded into server memory upon the client
3637
3738
3839
39- ???+ realm-server "<a id =character :kick ></a >character : kick ()"
40- ##### sv_character : kick {#characterkick}
40+ ???+ realm-server "<a id =Character :kick ></a >Character : kick ()"
41+ ##### sv_Character : kick {#characterkick}
4142 Forces the player to choose a character.
4243
43- ???+ realm-server "<a id =character :ban ></a >character : ban (time)"
44- ##### sv_character : ban {#characterban}
44+ ???+ realm-server "<a id =Character :ban ></a >Character : ban (time)"
45+ ##### sv_Character : ban {#characterban}
4546 Prevents the use of this character permanently or for a certain amount of time.
4647 <h3 >Parameters:</h3 >
4748 <span class =" types " ><span class =" type " >integer</span ></span >
@@ -52,34 +53,159 @@ All characters that a player owns are loaded into server memory upon the client
5253
5354 <h3>Usage:</h3>
5455 <ul>
55- ```lua
56+ ```lua linenums="1"
5657 Entity(1):getChar():ban(3600) -- will send a character owned by a player with index 1 to a ban
5758
5859 ```
5960 </ul>
60- ???+ realm-server "<a id =character :delete ></a >character : delete ()"
61- ##### sv_character : delete {#characterdelete}
61+ ???+ realm-server "<a id =Character :delete ></a >Character : delete ()"
62+ ##### sv_Character : delete {#characterdelete}
6263 Deletes this character from existence along with its associated data.
6364
64- ???+ realm-server "<a id =character :destroy ></a >character : destroy ()"
65- ##### sv_character : destroy {#characterdestroy}
65+ ???+ realm-server "<a id =Character :destroy ></a >Character : destroy ()"
66+ ##### sv_Character : destroy {#characterdestroy}
6667 !!! warning "Internal"
6768 This is used internally - although you're able to use it you probably shouldn't.
6869 Deletes this character from memory.
6970
70- ???+ realm-shared "<a id =character :getPlayer ></a >character : getPlayer ()"
71- ##### sh_character : getPlayer {#charactergetplayer}
71+ ???+ realm-shared "<a id =Character :getPlayer ></a >Character : getPlayer ()"
72+ ##### sh_Character : getPlayer {#charactergetplayer}
7273 Returns which player owns this character.
7374 <h3 >Returns:</h3 >
7475 <span class =" types " ><span class =" type " >player</span ></span >
7576 The player who owns need character
7677
7778
79+
7880 <h3>Usage:</h3>
7981 <ul>
80- ```lua
82+ ```lua linenums="1"
8183 local charOwner = Entity(1):getChar():getPlayer()
8284 charOwner:notify('test')
8385
8486 ```
8587 </ul>
88+ ## Class-related methods
89+
90+ ???+ realm-shared "<a id =Character:joinClass ></a >Character: joinClass (class, isForced)"
91+ ##### sh_Character: joinClass {#characterjoinclass}
92+ Makes a character join a class
93+ <h3 >Parameters:</h3 >
94+ <span class =" types " ><span class =" type " >number</span ></span >
95+ <span class =" parameter " >class</span >
96+ Class index to join
97+
98+ <span class="types"><span class="type">boolean</span></span>
99+ <span class="parameter">isForced</span>
100+ <em><ins>`optional. default`: `false`</ins></em>
101+ Bypass restrictions if true
102+
103+
104+ <h3>Returns:</h3>
105+ <span class="types"><span class="type">bool</span></span>
106+ Whether join was successful
107+
108+
109+
110+ ???+ realm-shared "<a id =Character:kickClass ></a >Character: kickClass ()"
111+ ##### sh_Character: kickClass {#characterkickclass}
112+ Removes character from current class (joins default)
113+
114+ ## Currency-related methods
115+
116+ ???+ realm-shared "<a id =Character:hasMoney ></a >Character: hasMoney (amount)"
117+ ##### sh_Character: hasMoney {#characterhasmoney}
118+ Checks if character has sufficient funds
119+ <h3 >Parameters:</h3 >
120+ <span class =" types " ><span class =" type " >number</span ></span >
121+ <span class =" parameter " >amount</span >
122+ Amount to check
123+
124+
125+ <h3>Returns:</h3>
126+ <span class="types"><span class="type">bool</span></span>
127+ Whether character has enough money
128+
129+
130+
131+ ???+ realm-shared "<a id =Character:giveMoney ></a >Character: giveMoney (amount, takingMoney)"
132+ ##### sh_Character: giveMoney {#charactergivemoney}
133+ Gives money to character
134+ <h3 >Parameters:</h3 >
135+ <span class =" types " ><span class =" type " >number</span ></span >
136+ <span class =" parameter " >amount</span >
137+ Amount to give
138+
139+ <span class="types"><span class="type">boolean</span></span>
140+ <span class="parameter">takingMoney</span>
141+ <em><ins>`optional. default`: `false`</ins></em>
142+ Internal flag to skip logging
143+
144+
145+ <h3>Returns:</h3>
146+ <span class="types"><span class="type">bool</span></span>
147+ Always returns true
148+
149+
150+
151+ ???+ realm-shared "<a id =Character:takeMoney ></a >Character: takeMoney (amount)"
152+ ##### sh_Character: takeMoney {#charactertakemoney}
153+ Takes money from character
154+ <h3 >Parameters:</h3 >
155+ <span class =" types " ><span class =" type " >number</span ></span >
156+ <span class =" parameter " >amount</span >
157+ Amount to take
158+
159+
160+ <h3>Returns:</h3>
161+ <span class="types"><span class="type">bool</span></span>
162+ Always returns true
163+
164+
165+
166+ ## Flag-related methods
167+
168+ ???+ realm-server "<a id =Character:setFlags ></a >Character: setFlags (flags)"
169+ ##### sv_Character: setFlags {#charactersetflags}
170+ Set the flag data to the character, overriding existing flags
171+ <h3 >Parameters:</h3 >
172+ <span class =" types " ><a class =" type " href =" https://www.lua.org/manual/5.1/manual.html#5.4 " >string</a ></span >
173+ <span class =" parameter " >flags</span >
174+ New flags string
175+
176+
177+
178+ ???+ realm-server "<a id =Character:takeFlags ></a >Character: takeFlags (flags)"
179+ ##### sv_Character: takeFlags {#charactertakeflags}
180+ Remove the flags from the character.
181+ <h3 >Parameters:</h3 >
182+ <span class =" types " ><a class =" type " href =" https://www.lua.org/manual/5.1/manual.html#5.4 " >string</a ></span >
183+ <span class =" parameter " >flags</span >
184+ Flags to remove
185+
186+
187+
188+ ???+ realm-shared "<a id =Character:getFlags ></a >Character: getFlags ()"
189+ ##### sh_Character: getFlags {#charactergetflags}
190+ Gets character's current flags.
191+ <h3 >Returns:</h3 >
192+ <span class =" types " ><a class =" type " href =" https://www.lua.org/manual/5.1/manual.html#5.4 " >string</a ></span >
193+ Current flags string
194+
195+
196+
197+ ???+ realm-shared "<a id =Character:hasFlags ></a >Character: hasFlags (flags)"
198+ ##### sh_Character: hasFlags {#characterhasflags}
199+ Check if the character contains the flags specified.
200+ <h3 >Parameters:</h3 >
201+ <span class =" types " ><a class =" type " href =" https://www.lua.org/manual/5.1/manual.html#5.4 " >string</a ></span >
202+ <span class =" parameter " >flags</span >
203+ Flags to check for
204+
205+
206+ <h3>Returns:</h3>
207+ <span class="types"><span class="type">bool</span></span>
208+ Whether any flag is present
209+
210+
211+
0 commit comments