1 | /* |
1 | /* |
2 | * static char *rcsid_c_chat_c = |
2 | * static char *rcsid_c_chat_c = |
3 | * "$Id: c_chat.C,v 1.1 2006/08/13 17:16:03 elmex Exp $"; |
3 | * "$Id: c_chat.C,v 1.4 2006/09/03 00:18:42 root Exp $"; |
4 | */ |
4 | */ |
5 | |
5 | |
6 | /* |
6 | /* |
7 | CrossFire, A Multiplayer game for X-windows |
7 | CrossFire, A Multiplayer game for X-windows |
8 | |
8 | |
… | |
… | |
28 | |
28 | |
29 | #include <global.h> |
29 | #include <global.h> |
30 | #include <loader.h> |
30 | #include <loader.h> |
31 | #include <sproto.h> |
31 | #include <sproto.h> |
32 | |
32 | |
33 | int command_say (object *op, char *params) |
33 | int command_me (object *op, char *params) |
34 | { |
34 | { |
35 | char buf[MAX_BUF]; |
35 | char buf[MAX_BUF]; |
36 | |
36 | |
37 | if (!params) return 0; |
37 | if (!params) return 0; |
38 | snprintf(buf, MAX_BUF-1, "%s says: %s",op->name, params); |
|
|
39 | new_info_map(NDI_WHITE,op->map, buf); |
|
|
40 | communicate(op, params); |
|
|
41 | |
|
|
42 | return 0; |
|
|
43 | } |
|
|
44 | |
|
|
45 | |
|
|
46 | int command_me (object *op, char *params) |
|
|
47 | { |
|
|
48 | char buf[MAX_BUF]; |
|
|
49 | |
|
|
50 | if (!params) return 0; |
|
|
51 | snprintf(buf, MAX_BUF-1, "%s %s",op->name, params); |
38 | snprintf(buf, MAX_BUF-1, "%s %s",&op->name, params); |
52 | new_info_map(NDI_UNIQUE|NDI_BLUE,op->map, buf); |
39 | new_info_map(NDI_UNIQUE|NDI_BLUE,op->map, buf); |
53 | |
40 | |
54 | return 0; |
41 | return 0; |
55 | } |
42 | } |
56 | |
43 | |
… | |
… | |
61 | char buf2[MAX_BUF]; |
48 | char buf2[MAX_BUF]; |
62 | int i; |
49 | int i; |
63 | |
50 | |
64 | i = rndm(1, 2); |
51 | i = rndm(1, 2); |
65 | if (i == 1) { |
52 | if (i == 1) { |
66 | snprintf(buf, MAX_BUF-1, "%s flips a coin.... Heads!", op->name); |
53 | snprintf(buf, MAX_BUF-1, "%s flips a coin.... Heads!", &op->name); |
67 | snprintf(buf2, MAX_BUF-1, "You flip a coin.... Heads!"); |
54 | snprintf(buf2, MAX_BUF-1, "You flip a coin.... Heads!"); |
68 | } else { |
55 | } else { |
69 | snprintf(buf, MAX_BUF-1, "%s flips a coin.... Tails!", op->name); |
56 | snprintf(buf, MAX_BUF-1, "%s flips a coin.... Tails!", &op->name); |
70 | snprintf(buf2, MAX_BUF-1, "You flip a coin.... Tails!"); |
57 | snprintf(buf2, MAX_BUF-1, "You flip a coin.... Tails!"); |
71 | } |
58 | } |
72 | new_draw_info(NDI_UNIQUE, 0, op, buf2); |
59 | new_draw_info(NDI_UNIQUE, 0, op, buf2); |
73 | new_info_map_except(NDI_WHITE, op->map, op, buf); |
60 | new_info_map_except(NDI_WHITE, op->map, op, buf); |
74 | return 0; |
61 | return 0; |
75 | } |
62 | } |
76 | |
63 | |
77 | static const char* const orcknuckle[7] = {"none", "beholder", "ghost", "knight", |
64 | static const char* const orcknuckle[7] = {"none", "beholder", "ghost", "knight", |
78 | "princess", "dragon", "orc"}; |
65 | "princess", "dragon", "orc"}; |
79 | |
66 | |
80 | int command_orcknuckle(object *op, char *params) |
67 | int command_orcknuckle(object *op, char *params) |
81 | { |
68 | { |
82 | char buf[MAX_BUF]; |
69 | char buf[MAX_BUF]; |
83 | char buf2[MAX_BUF]; |
70 | char buf2[MAX_BUF]; |
… | |
… | |
86 | i = rndm(1, 5); |
73 | i = rndm(1, 5); |
87 | j = rndm(1, 5); |
74 | j = rndm(1, 5); |
88 | k = rndm(1, 5); |
75 | k = rndm(1, 5); |
89 | l = rndm(1, 6); |
76 | l = rndm(1, 6); |
90 | |
77 | |
91 | snprintf(buf2, MAX_BUF-1, "%s rolls %s, %s, %s, %s!", op->name, |
78 | snprintf(buf2, MAX_BUF-1, "%s rolls %s, %s, %s, %s!", &op->name, |
92 | orcknuckle[i], orcknuckle[j], orcknuckle[k], orcknuckle[l]); |
79 | orcknuckle[i], orcknuckle[j], orcknuckle[k], orcknuckle[l]); |
93 | snprintf(buf, MAX_BUF-1, "You roll %s, %s, %s, %s!", |
80 | snprintf(buf, MAX_BUF-1, "You roll %s, %s, %s, %s!", |
94 | orcknuckle[i], orcknuckle[j], orcknuckle[k], orcknuckle[l]); |
81 | orcknuckle[i], orcknuckle[j], orcknuckle[k], orcknuckle[l]); |
95 | new_draw_info(NDI_UNIQUE, 0, op, buf); |
82 | new_draw_info(NDI_UNIQUE, 0, op, buf); |
96 | new_info_map_except(NDI_UNIQUE, op->map, op, buf2); |
83 | new_info_map_except(NDI_UNIQUE, op->map, op, buf2); |
97 | return 0; |
84 | return 0; |
98 | } |
|
|
99 | |
|
|
100 | static int command_tell_all(object *op, char *params, int pri, int color, char *desc) |
|
|
101 | { |
|
|
102 | if (op->contr->no_shout == 1){ |
|
|
103 | new_draw_info(NDI_UNIQUE, 0,op,"You are no longer allowed to shout or chat."); |
|
|
104 | return 1; |
|
|
105 | } else { |
|
|
106 | if (params == NULL) { |
|
|
107 | new_draw_info(NDI_UNIQUE, 0,op,"Shout/Chat what?"); |
|
|
108 | return 1; |
|
|
109 | } |
|
|
110 | new_draw_info_format(NDI_UNIQUE | NDI_ALL | color, pri, NULL, |
|
|
111 | "%s %s: %s", op->name, desc, params); |
|
|
112 | |
|
|
113 | /* Lauwenmark : Here we handle the SHOUT global event */ |
|
|
114 | execute_global_event(EVENT_SHOUT,op,params,pri); |
|
|
115 | return 1; |
|
|
116 | } |
|
|
117 | } |
|
|
118 | |
|
|
119 | int command_shout (object *op, char *params) |
|
|
120 | { |
|
|
121 | return command_tell_all(op, params, 1, NDI_RED, "shouts"); |
|
|
122 | } |
|
|
123 | |
|
|
124 | int command_chat (object *op, char *params) |
|
|
125 | { |
|
|
126 | return command_tell_all(op, params, 9, NDI_BLUE, "chats"); |
|
|
127 | } |
|
|
128 | |
|
|
129 | |
|
|
130 | |
|
|
131 | int command_tell (object *op, char *params) |
|
|
132 | { |
|
|
133 | char buf[MAX_BUF],*name = NULL ,*msg = NULL; |
|
|
134 | player *pl; |
|
|
135 | |
|
|
136 | if ( params != NULL){ |
|
|
137 | name = params; |
|
|
138 | msg = strchr(name, ' '); |
|
|
139 | if(msg){ |
|
|
140 | *(msg++)=0; |
|
|
141 | if(*msg == 0) |
|
|
142 | msg = NULL; |
|
|
143 | } |
|
|
144 | } |
|
|
145 | |
|
|
146 | if( name == NULL ){ |
|
|
147 | new_draw_info(NDI_UNIQUE, 0,op,"Tell whom what?"); |
|
|
148 | return 1; |
|
|
149 | } else if ( msg == NULL){ |
|
|
150 | new_draw_info_format(NDI_UNIQUE, 0,op,"Tell %s what?", name); |
|
|
151 | return 1; |
|
|
152 | } |
|
|
153 | |
|
|
154 | snprintf(buf,MAX_BUF-1, "%s tells you: %s",op->name, msg); |
|
|
155 | |
|
|
156 | pl = find_player_partial_name( name ); |
|
|
157 | |
|
|
158 | if ( pl ) |
|
|
159 | { |
|
|
160 | new_draw_info(NDI_UNIQUE | NDI_ORANGE, 0, pl->ob, buf); |
|
|
161 | new_draw_info_format(NDI_UNIQUE | NDI_ORANGE, 0, op, |
|
|
162 | "You tell %s: %s", pl->ob->name, msg); |
|
|
163 | |
|
|
164 | /* Update last_tell value [mids 01/14/2002] */ |
|
|
165 | strcpy(pl->last_tell, op->name); |
|
|
166 | return 1; |
|
|
167 | } |
|
|
168 | |
|
|
169 | new_draw_info(NDI_UNIQUE, 0,op,"No such player or ambiguous name."); |
|
|
170 | return 1; |
|
|
171 | } |
|
|
172 | |
|
|
173 | /* Reply to last person who told you something [mids 01/14/2002] */ |
|
|
174 | int command_reply (object *op, char *params) { |
|
|
175 | player *pl; |
|
|
176 | |
|
|
177 | if (params == NULL) { |
|
|
178 | new_draw_info(NDI_UNIQUE, 0, op, "Reply what?"); |
|
|
179 | return 1; |
|
|
180 | } |
|
|
181 | |
|
|
182 | if (op->contr->last_tell[0] == '\0') { |
|
|
183 | new_draw_info(NDI_UNIQUE, 0, op, "You can't reply to nobody."); |
|
|
184 | return 1; |
|
|
185 | } |
|
|
186 | |
|
|
187 | /* Find player object of player to reply to and check if player still exists */ |
|
|
188 | pl = find_player(op->contr->last_tell); |
|
|
189 | |
|
|
190 | if (pl == NULL) { |
|
|
191 | new_draw_info(NDI_UNIQUE, 0, op, "You can't reply, this player left."); |
|
|
192 | return 1; |
|
|
193 | } |
|
|
194 | |
|
|
195 | /* Update last_tell value */ |
|
|
196 | strcpy(pl->last_tell, op->name); |
|
|
197 | |
|
|
198 | new_draw_info_format(NDI_UNIQUE | NDI_ORANGE, 0, pl->ob, |
|
|
199 | "%s tells you: %s", op->name, params); |
|
|
200 | new_draw_info_format(NDI_UNIQUE | NDI_ORANGE, 0, op, |
|
|
201 | "You tell to %s: %s", pl->ob->name, params); |
|
|
202 | return 1; |
|
|
203 | } |
85 | } |
204 | |
86 | |
205 | /* |
87 | /* |
206 | * This function covers basic emotions a player can have. An emotion can be |
88 | * This function covers basic emotions a player can have. An emotion can be |
207 | * one of three things currently. Directed at oneself, directed at someone, |
89 | * one of three things currently. Directed at oneself, directed at someone, |
… | |
… | |
218 | { |
100 | { |
219 | char buf[MAX_BUF], buf2[MAX_BUF], buf3[MAX_BUF]; |
101 | char buf[MAX_BUF], buf2[MAX_BUF], buf3[MAX_BUF]; |
220 | player *pl; |
102 | player *pl; |
221 | |
103 | |
222 | if (!params) { |
104 | if (!params) { |
223 | switch(emotion) { |
105 | switch(emotion) { |
224 | case EMOTE_NOD: |
106 | case EMOTE_NOD: |
225 | sprintf(buf, "%s nods solemnly.", op->name); |
107 | sprintf(buf, "%s nods solemnly.", &op->name); |
226 | sprintf(buf2, "You nod solemnly."); |
108 | sprintf(buf2, "You nod solemnly."); |
227 | break; |
109 | break; |
228 | case EMOTE_DANCE: |
110 | case EMOTE_DANCE: |
229 | sprintf(buf, "%s expresses himself through interpretive dance.", |
111 | sprintf(buf, "%s expresses himself through interpretive dance.", |
230 | op->name); |
112 | &op->name); |
231 | sprintf(buf2, "You dance with glee."); |
113 | sprintf(buf2, "You dance with glee."); |
232 | break; |
114 | break; |
233 | case EMOTE_KISS: |
115 | case EMOTE_KISS: |
234 | sprintf(buf, "%s makes a weird facial contortion", op->name); |
116 | sprintf(buf, "%s makes a weird facial contortion", &op->name); |
235 | sprintf(buf2, "All the lonely people.."); |
117 | sprintf(buf2, "All the lonely people.."); |
236 | break; |
118 | break; |
237 | case EMOTE_BOUNCE: |
119 | case EMOTE_BOUNCE: |
238 | sprintf(buf, "%s bounces around.", op->name); |
120 | sprintf(buf, "%s bounces around.", &op->name); |
239 | sprintf(buf2, "BOIINNNNNNGG!"); |
121 | sprintf(buf2, "BOIINNNNNNGG!"); |
240 | break; |
122 | break; |
241 | case EMOTE_SMILE: |
123 | case EMOTE_SMILE: |
242 | sprintf(buf, "%s smiles happily.", op->name); |
124 | sprintf(buf, "%s smiles happily.", &op->name); |
243 | sprintf(buf2, "You smile happily."); |
125 | sprintf(buf2, "You smile happily."); |
244 | break; |
126 | break; |
245 | case EMOTE_CACKLE: |
127 | case EMOTE_CACKLE: |
246 | sprintf(buf, "%s throws back his head and cackles with insane " |
128 | sprintf(buf, "%s throws back his head and cackles with insane " |
247 | "glee!", op->name); |
129 | "glee!", &op->name); |
248 | sprintf(buf2, "You cackle gleefully."); |
130 | sprintf(buf2, "You cackle gleefully."); |
249 | break; |
131 | break; |
250 | case EMOTE_LAUGH: |
132 | case EMOTE_LAUGH: |
251 | sprintf(buf, "%s falls down laughing.", op->name); |
133 | sprintf(buf, "%s falls down laughing.", &op->name); |
252 | sprintf(buf2, "You fall down laughing."); |
134 | sprintf(buf2, "You fall down laughing."); |
253 | break; |
135 | break; |
254 | case EMOTE_GIGGLE: |
136 | case EMOTE_GIGGLE: |
255 | sprintf(buf, "%s giggles.", op->name); |
137 | sprintf(buf, "%s giggles.", &op->name); |
256 | sprintf(buf2, "You giggle."); |
138 | sprintf(buf2, "You giggle."); |
257 | break; |
139 | break; |
258 | case EMOTE_SHAKE: |
140 | case EMOTE_SHAKE: |
259 | sprintf(buf, "%s shakes his head.", op->name); |
141 | sprintf(buf, "%s shakes his head.", &op->name); |
260 | sprintf(buf2, "You shake your head."); |
142 | sprintf(buf2, "You shake your head."); |
261 | break; |
143 | break; |
262 | case EMOTE_PUKE: |
144 | case EMOTE_PUKE: |
263 | sprintf(buf, "%s pukes.", op->name); |
145 | sprintf(buf, "%s pukes.", &op->name); |
264 | sprintf(buf2, "Bleaaaaaghhhhhhh!"); |
146 | sprintf(buf2, "Bleaaaaaghhhhhhh!"); |
265 | break; |
147 | break; |
266 | case EMOTE_GROWL: |
148 | case EMOTE_GROWL: |
267 | sprintf(buf, "%s growls.", op->name); |
149 | sprintf(buf, "%s growls.", &op->name); |
268 | sprintf(buf2, "Grrrrrrrrr...."); |
150 | sprintf(buf2, "Grrrrrrrrr...."); |
269 | break; |
151 | break; |
270 | case EMOTE_SCREAM: |
152 | case EMOTE_SCREAM: |
271 | sprintf(buf, "%s screams at the top of his lungs!", op->name); |
153 | sprintf(buf, "%s screams at the top of his lungs!", &op->name); |
272 | sprintf(buf2, "ARRRRRRRRRRGH!!!!!"); |
154 | sprintf(buf2, "ARRRRRRRRRRGH!!!!!"); |
273 | break; |
155 | break; |
274 | case EMOTE_SIGH: |
156 | case EMOTE_SIGH: |
275 | sprintf(buf, "%s sighs loudly.", op->name); |
157 | sprintf(buf, "%s sighs loudly.", &op->name); |
276 | sprintf(buf2, "You sigh."); |
158 | sprintf(buf2, "You sigh."); |
277 | break; |
159 | break; |
278 | case EMOTE_SULK: |
160 | case EMOTE_SULK: |
279 | sprintf(buf, "%s sulks in the corner.", op->name); |
161 | sprintf(buf, "%s sulks in the corner.", &op->name); |
280 | sprintf(buf2, "You sulk."); |
162 | sprintf(buf2, "You sulk."); |
281 | break; |
163 | break; |
282 | case EMOTE_CRY: |
164 | case EMOTE_CRY: |
283 | sprintf(buf, "%s bursts into tears.", op->name); |
165 | sprintf(buf, "%s bursts into tears.", &op->name); |
284 | sprintf(buf2, "Waaaaaaahhh.."); |
166 | sprintf(buf2, "Waaaaaaahhh.."); |
285 | break; |
167 | break; |
286 | case EMOTE_GRIN: |
168 | case EMOTE_GRIN: |
287 | sprintf(buf, "%s grins evilly.", op->name); |
169 | sprintf(buf, "%s grins evilly.", &op->name); |
288 | sprintf(buf2, "You grin evilly."); |
170 | sprintf(buf2, "You grin evilly."); |
289 | break; |
171 | break; |
290 | case EMOTE_BOW: |
172 | case EMOTE_BOW: |
291 | sprintf(buf, "%s bows deeply.", op->name); |
173 | sprintf(buf, "%s bows deeply.", &op->name); |
292 | sprintf(buf2, "You bow deeply."); |
174 | sprintf(buf2, "You bow deeply."); |
293 | break; |
175 | break; |
294 | case EMOTE_CLAP: |
176 | case EMOTE_CLAP: |
295 | sprintf(buf, "%s gives a round of applause.", op->name); |
177 | sprintf(buf, "%s gives a round of applause.", &op->name); |
296 | sprintf(buf2, "Clap, clap, clap."); |
178 | sprintf(buf2, "Clap, clap, clap."); |
297 | break; |
179 | break; |
298 | case EMOTE_BLUSH: |
180 | case EMOTE_BLUSH: |
299 | sprintf(buf, "%s blushes.", op->name); |
181 | sprintf(buf, "%s blushes.", &op->name); |
300 | sprintf(buf2, "Your cheeks are burning."); |
182 | sprintf(buf2, "Your cheeks are burning."); |
301 | break; |
183 | break; |
302 | case EMOTE_BURP: |
184 | case EMOTE_BURP: |
303 | sprintf(buf, "%s burps loudly.", op->name); |
185 | sprintf(buf, "%s burps loudly.", &op->name); |
304 | sprintf(buf2, "You burp loudly."); |
186 | sprintf(buf2, "You burp loudly."); |
305 | break; |
187 | break; |
306 | case EMOTE_CHUCKLE: |
188 | case EMOTE_CHUCKLE: |
307 | sprintf(buf, "%s chuckles politely.", op->name); |
189 | sprintf(buf, "%s chuckles politely.", &op->name); |
308 | sprintf(buf2, "You chuckle politely"); |
190 | sprintf(buf2, "You chuckle politely"); |
309 | break; |
191 | break; |
310 | case EMOTE_COUGH: |
192 | case EMOTE_COUGH: |
311 | sprintf(buf, "%s coughs loudly.", op->name); |
193 | sprintf(buf, "%s coughs loudly.", &op->name); |
312 | sprintf(buf2, "Yuck, try to cover your mouth next time!"); |
194 | sprintf(buf2, "Yuck, try to cover your mouth next time!"); |
313 | break; |
195 | break; |
314 | case EMOTE_FLIP: |
196 | case EMOTE_FLIP: |
315 | sprintf(buf, "%s flips head over heels.", op->name); |
197 | sprintf(buf, "%s flips head over heels.", &op->name); |
316 | sprintf(buf2, "You flip head over heels."); |
198 | sprintf(buf2, "You flip head over heels."); |
317 | break; |
199 | break; |
318 | case EMOTE_FROWN: |
200 | case EMOTE_FROWN: |
319 | sprintf(buf, "%s frowns.", op->name); |
201 | sprintf(buf, "%s frowns.", &op->name); |
320 | sprintf(buf2, "What's bothering you?"); |
202 | sprintf(buf2, "What's bothering you?"); |
321 | break; |
203 | break; |
322 | case EMOTE_GASP: |
204 | case EMOTE_GASP: |
323 | sprintf(buf, "%s gasps in astonishment.", op->name); |
205 | sprintf(buf, "%s gasps in astonishment.", &op->name); |
324 | sprintf(buf2, "You gasp in astonishment."); |
206 | sprintf(buf2, "You gasp in astonishment."); |
325 | break; |
207 | break; |
326 | case EMOTE_GLARE: |
208 | case EMOTE_GLARE: |
327 | sprintf(buf, "%s glares around him.", op->name); |
209 | sprintf(buf, "%s glares around him.", &op->name); |
328 | sprintf(buf2, "You glare at nothing in particular."); |
210 | sprintf(buf2, "You glare at nothing in particular."); |
329 | break; |
211 | break; |
330 | case EMOTE_GROAN: |
212 | case EMOTE_GROAN: |
331 | sprintf(buf, "%s groans loudly.", op->name); |
213 | sprintf(buf, "%s groans loudly.", &op->name); |
332 | sprintf(buf2, "You groan loudly."); |
214 | sprintf(buf2, "You groan loudly."); |
333 | break; |
215 | break; |
334 | case EMOTE_HICCUP: |
216 | case EMOTE_HICCUP: |
335 | sprintf(buf, "%s hiccups.", op->name); |
217 | sprintf(buf, "%s hiccups.", &op->name); |
336 | sprintf(buf2, "*HIC*"); |
218 | sprintf(buf2, "*HIC*"); |
337 | break; |
219 | break; |
338 | case EMOTE_LICK: |
220 | case EMOTE_LICK: |
339 | sprintf(buf, "%s licks his mouth and smiles.", op->name); |
221 | sprintf(buf, "%s licks his mouth and smiles.", &op->name); |
340 | sprintf(buf2, "You lick your mouth and smile."); |
222 | sprintf(buf2, "You lick your mouth and smile."); |
341 | break; |
223 | break; |
342 | case EMOTE_POUT: |
224 | case EMOTE_POUT: |
343 | sprintf(buf, "%s pouts.", op->name); |
225 | sprintf(buf, "%s pouts.", &op->name); |
344 | sprintf(buf2, "Aww, don't take it so hard."); |
226 | sprintf(buf2, "Aww, don't take it so hard."); |
345 | break; |
227 | break; |
346 | case EMOTE_SHIVER: |
228 | case EMOTE_SHIVER: |
347 | sprintf(buf, "%s shivers uncomfortably.", op->name); |
229 | sprintf(buf, "%s shivers uncomfortably.", &op->name); |
348 | sprintf(buf2, "Brrrrrrrrr."); |
230 | sprintf(buf2, "Brrrrrrrrr."); |
349 | break; |
231 | break; |
350 | case EMOTE_SHRUG: |
232 | case EMOTE_SHRUG: |
351 | sprintf(buf, "%s shrugs helplessly.", op->name); |
233 | sprintf(buf, "%s shrugs helplessly.", &op->name); |
352 | sprintf(buf2, "You shrug."); |
234 | sprintf(buf2, "You shrug."); |
353 | break; |
235 | break; |
354 | case EMOTE_SMIRK: |
236 | case EMOTE_SMIRK: |
355 | sprintf(buf, "%s smirks.", op->name); |
237 | sprintf(buf, "%s smirks.", &op->name); |
356 | sprintf(buf2, "You smirk."); |
238 | sprintf(buf2, "You smirk."); |
357 | break; |
239 | break; |
358 | case EMOTE_SNAP: |
240 | case EMOTE_SNAP: |
359 | sprintf(buf, "%s snaps his fingers.", op->name); |
241 | sprintf(buf, "%s snaps his fingers.", &op->name); |
360 | sprintf(buf2, "PRONTO! You snap your fingers."); |
242 | sprintf(buf2, "PRONTO! You snap your fingers."); |
361 | break; |
243 | break; |
362 | case EMOTE_SNEEZE: |
244 | case EMOTE_SNEEZE: |
363 | sprintf(buf, "%s sneezes.", op->name); |
245 | sprintf(buf, "%s sneezes.", &op->name); |
364 | sprintf(buf2, "Gesundheit!"); |
246 | sprintf(buf2, "Gesundheit!"); |
365 | break; |
247 | break; |
366 | case EMOTE_SNICKER: |
248 | case EMOTE_SNICKER: |
367 | sprintf(buf, "%s snickers softly.", op->name); |
249 | sprintf(buf, "%s snickers softly.", &op->name); |
368 | sprintf(buf2, "You snicker softly."); |
250 | sprintf(buf2, "You snicker softly."); |
369 | break; |
251 | break; |
370 | case EMOTE_SNIFF: |
252 | case EMOTE_SNIFF: |
371 | sprintf(buf, "%s sniffs sadly.", op->name); |
253 | sprintf(buf, "%s sniffs sadly.", &op->name); |
372 | sprintf(buf2, "You sniff sadly. *SNIFF*"); |
254 | sprintf(buf2, "You sniff sadly. *SNIFF*"); |
373 | break; |
255 | break; |
374 | case EMOTE_SNORE: |
256 | case EMOTE_SNORE: |
375 | sprintf(buf, "%s snores loudly.", op->name); |
257 | sprintf(buf, "%s snores loudly.", &op->name); |
376 | sprintf(buf2, "Zzzzzzzzzzzzzzz."); |
258 | sprintf(buf2, "Zzzzzzzzzzzzzzz."); |
377 | break; |
259 | break; |
378 | case EMOTE_SPIT: |
260 | case EMOTE_SPIT: |
379 | sprintf(buf, "%s spits over his left shoulder.", op->name); |
261 | sprintf(buf, "%s spits over his left shoulder.", &op->name); |
380 | sprintf(buf2, "You spit over your left shoulder."); |
262 | sprintf(buf2, "You spit over your left shoulder."); |
381 | break; |
263 | break; |
382 | case EMOTE_STRUT: |
264 | case EMOTE_STRUT: |
383 | sprintf(buf, "%s struts proudly.", op->name); |
265 | sprintf(buf, "%s struts proudly.", &op->name); |
384 | sprintf(buf2, "Strut your stuff."); |
266 | sprintf(buf2, "Strut your stuff."); |
385 | break; |
267 | break; |
386 | case EMOTE_TWIDDLE: |
268 | case EMOTE_TWIDDLE: |
387 | sprintf(buf, "%s patiently twiddles his thumbs.", op->name); |
269 | sprintf(buf, "%s patiently twiddles his thumbs.", &op->name); |
388 | sprintf(buf2, "You patiently twiddle your thumbs."); |
270 | sprintf(buf2, "You patiently twiddle your thumbs."); |
389 | break; |
271 | break; |
390 | case EMOTE_WAVE: |
272 | case EMOTE_WAVE: |
391 | sprintf(buf, "%s waves happily.", op->name); |
273 | sprintf(buf, "%s waves happily.", &op->name); |
392 | sprintf(buf2, "You wave."); |
274 | sprintf(buf2, "You wave."); |
393 | break; |
275 | break; |
394 | case EMOTE_WHISTLE: |
276 | case EMOTE_WHISTLE: |
395 | sprintf(buf, "%s whistles appreciatively.", op->name); |
277 | sprintf(buf, "%s whistles appreciatively.", &op->name); |
396 | sprintf(buf2, "You whistle appreciatively."); |
278 | sprintf(buf2, "You whistle appreciatively."); |
397 | break; |
279 | break; |
398 | case EMOTE_WINK: |
280 | case EMOTE_WINK: |
399 | sprintf(buf, "%s winks suggestively.", op->name); |
281 | sprintf(buf, "%s winks suggestively.", &op->name); |
400 | sprintf(buf2, "Have you got something in your eye?"); |
282 | sprintf(buf2, "Have you got something in your eye?"); |
401 | break; |
283 | break; |
402 | case EMOTE_YAWN: |
284 | case EMOTE_YAWN: |
403 | sprintf(buf, "%s yawns sleepily.", op->name); |
285 | sprintf(buf, "%s yawns sleepily.", &op->name); |
404 | sprintf(buf2, "You open up your yap and let out a big breeze " |
286 | sprintf(buf2, "You open up your yap and let out a big breeze " |
405 | "of stale air."); |
287 | "of stale air."); |
406 | break; |
288 | break; |
407 | case EMOTE_CRINGE: |
289 | case EMOTE_CRINGE: |
408 | sprintf(buf, "%s cringes in terror!", op->name); |
290 | sprintf(buf, "%s cringes in terror!", &op->name); |
409 | sprintf(buf2, "You cringe in terror."); |
291 | sprintf(buf2, "You cringe in terror."); |
410 | break; |
292 | break; |
411 | case EMOTE_BLEED: |
293 | case EMOTE_BLEED: |
412 | sprintf(buf, "%s is bleeding all over the carpet" |
294 | sprintf(buf, "%s is bleeding all over the carpet" |
413 | " - got a spare tourniquet?", op->name); |
295 | " - got a spare tourniquet?", &op->name); |
414 | sprintf(buf2, "You bleed all over your nice new armour."); |
296 | sprintf(buf2, "You bleed all over your nice new armour."); |
415 | break; |
297 | break; |
416 | case EMOTE_THINK: |
298 | case EMOTE_THINK: |
417 | sprintf(buf, "%s closes his eyes and thinks really hard.", |
299 | sprintf(buf, "%s closes his eyes and thinks really hard.", |
418 | op->name); |
300 | &op->name); |
419 | sprintf(buf2, "Anything in particular that you'd care to think " |
301 | sprintf(buf2, "Anything in particular that you'd care to think " |
420 | "about?"); |
302 | "about?"); |
421 | break; |
303 | break; |
422 | default: |
304 | default: |
423 | sprintf(buf, "%s dances with glee.", op->name); |
305 | sprintf(buf, "%s dances with glee.", &op->name); |
424 | sprintf(buf2, "You are a nut."); |
306 | sprintf(buf2, "You are a nut."); |
425 | break; |
307 | break; |
426 | } /*case*/ |
308 | } /*case*/ |
427 | new_info_map_except(NDI_WHITE, op->map, op, buf); |
309 | new_info_map_except(NDI_WHITE, op->map, op, buf); |
428 | new_draw_info(NDI_UNIQUE|NDI_WHITE, 0, op, buf2); |
310 | new_draw_info(NDI_UNIQUE|NDI_WHITE, 0, op, buf2); |
429 | return(0); |
311 | return(0); |
430 | } else { |
312 | } else { |
431 | for(pl=first_player;pl!=NULL;pl=pl->next) { |
313 | for(pl=first_player;pl!=NULL;pl=pl->next) { |
432 | if(strncasecmp(pl->ob->name, params, MAX_NAME)==0 && |
314 | if(strncasecmp(pl->ob->name, params, MAX_NAME)==0 && |
433 | pl->ob->map == op->map && pl->ob != op &&
|
315 | pl->ob->map == op->map && pl->ob != op && |
434 | !(QUERY_FLAG(pl->ob,FLAG_WIZ) && pl->ob->contr->hidden)) {
|
316 | !(QUERY_FLAG(pl->ob,FLAG_WIZ) && pl->ob->contr->hidden)) { |
435 | /* Hidden dms are not affected by emotions*/
|
317 | /* Hidden dms are not affected by emotions*/ |
436 | switch(emotion) { |
318 | switch(emotion) { |
437 | case EMOTE_NOD: |
319 | case EMOTE_NOD: |
438 | sprintf(buf, "You nod solemnly to %s.", pl->ob->name); |
320 | sprintf(buf, "You nod solemnly to %s.", &pl->ob->name); |
439 | sprintf(buf2, "%s nods solemnly to you.", op->name); |
321 | sprintf(buf2, "%s nods solemnly to you.", &op->name); |
440 | sprintf(buf3, "%s nods solemnly to %s.", op->name, |
322 | sprintf(buf3, "%s nods solemnly to %s.", &op->name, |
441 | pl->ob->name); |
323 | &pl->ob->name); |
442 | break; |
324 | break; |
443 | case EMOTE_DANCE: |
325 | case EMOTE_DANCE: |
444 | sprintf(buf, "You grab %s and begin doing the Cha-Cha!", |
326 | sprintf(buf, "You grab %s and begin doing the Cha-Cha!", |
445 | pl->ob->name); |
327 | &pl->ob->name); |
446 | sprintf(buf2, "%s grabs you, and begins dancing!", |
328 | sprintf(buf2, "%s grabs you, and begins dancing!", |
447 | op->name); |
329 | &op->name); |
448 | sprintf(buf3, "Yipe! %s and %s are doing the Macarena!", |
330 | sprintf(buf3, "Yipe! %s and %s are doing the Macarena!", |
449 | op->name, pl->ob->name); |
331 | &op->name, &pl->ob->name); |
450 | break; |
332 | break; |
451 | case EMOTE_KISS: |
333 | case EMOTE_KISS: |
452 | sprintf(buf, "You kiss %s.", pl->ob->name); |
334 | sprintf(buf, "You kiss %s.", &pl->ob->name); |
453 | sprintf(buf2, "%s kisses you.", op->name); |
335 | sprintf(buf2, "%s kisses you.", &op->name); |
454 | sprintf(buf3, "%s kisses %s.", op->name, pl->ob->name); |
336 | sprintf(buf3, "%s kisses %s.", &op->name, &pl->ob->name); |
455 | break; |
337 | break; |
456 | case EMOTE_BOUNCE: |
338 | case EMOTE_BOUNCE: |
457 | sprintf(buf, "You bounce around the room with %s.", |
339 | sprintf(buf, "You bounce around the room with %s.", |
458 | pl->ob->name); |
340 | &pl->ob->name); |
459 | sprintf(buf2, "%s bounces around the room with you.", |
341 | sprintf(buf2, "%s bounces around the room with you.", |
460 | op->name); |
342 | &op->name); |
461 | sprintf(buf3, "%s bounces around the room with %s.", |
343 | sprintf(buf3, "%s bounces around the room with %s.", |
462 | op->name, pl->ob->name); |
344 | &op->name, &pl->ob->name); |
463 | break; |
345 | break; |
464 | case EMOTE_SMILE: |
346 | case EMOTE_SMILE: |
465 | sprintf(buf, "You smile at %s.", pl->ob->name); |
347 | sprintf(buf, "You smile at %s.", &pl->ob->name); |
466 | sprintf(buf2, "%s smiles at you.", op->name); |
348 | sprintf(buf2, "%s smiles at you.", &op->name); |
467 | sprintf(buf3, "%s beams a smile at %s.", op->name, |
349 | sprintf(buf3, "%s beams a smile at %s.", &op->name, |
468 | pl->ob->name); |
350 | &pl->ob->name); |
469 | break; |
351 | break; |
470 | case EMOTE_LAUGH: |
352 | case EMOTE_LAUGH: |
471 | sprintf(buf, "You take one look at %s and fall down " |
353 | sprintf(buf, "You take one look at %s and fall down " |
472 | "laughing.", pl->ob->name); |
354 | "laughing.", &pl->ob->name); |
473 | sprintf(buf2, "%s looks at you and falls down on the " |
355 | sprintf(buf2, "%s looks at you and falls down on the " |
474 | "ground laughing.", op->name); |
356 | "ground laughing.", &op->name); |
475 | sprintf(buf3, "%s looks at %s and falls down on the " |
357 | sprintf(buf3, "%s looks at %s and falls down on the " |
476 | "ground laughing.", op->name, pl->ob->name); |
358 | "ground laughing.", &op->name, &pl->ob->name); |
477 | break; |
359 | break; |
478 | case EMOTE_SHAKE: |
360 | case EMOTE_SHAKE: |
479 | sprintf(buf, "You shake %s's hand.", pl->ob->name); |
361 | sprintf(buf, "You shake %s's hand.", &pl->ob->name); |
480 | sprintf(buf2, "%s shakes your hand.", op->name); |
362 | sprintf(buf2, "%s shakes your hand.", &op->name); |
481 | sprintf(buf3, "%s shakes %s's hand.", op->name, |
363 | sprintf(buf3, "%s shakes %s's hand.", &op->name, |
482 | pl->ob->name); |
364 | &pl->ob->name); |
483 | break; |
365 | break; |
484 | case EMOTE_PUKE: |
366 | case EMOTE_PUKE: |
485 | sprintf(buf, "You puke on %s.", pl->ob->name); |
367 | sprintf(buf, "You puke on %s.", &pl->ob->name); |
486 | sprintf(buf2, "%s pukes on your clothes!", op->name); |
368 | sprintf(buf2, "%s pukes on your clothes!", &op->name); |
487 | sprintf(buf3, "%s pukes on %s.", op->name, pl->ob->name); |
369 | sprintf(buf3, "%s pukes on %s.", &op->name, &pl->ob->name); |
488 | break; |
370 | break; |
489 | case EMOTE_HUG: |
371 | case EMOTE_HUG: |
490 | sprintf(buf, "You hug %s.", pl->ob->name); |
372 | sprintf(buf, "You hug %s.", &pl->ob->name); |
491 | sprintf(buf2, "%s hugs you.", op->name); |
373 | sprintf(buf2, "%s hugs you.", &op->name); |
492 | sprintf(buf3, "%s hugs %s.", op->name, pl->ob->name); |
374 | sprintf(buf3, "%s hugs %s.", &op->name, &pl->ob->name); |
493 | break; |
375 | break; |
494 | case EMOTE_CRY: |
376 | case EMOTE_CRY: |
495 | sprintf(buf, "You cry on %s's shoulder.", pl->ob->name); |
377 | sprintf(buf, "You cry on %s's shoulder.", &pl->ob->name); |
496 | sprintf(buf2, "%s cries on your shoulder.", op->name); |
378 | sprintf(buf2, "%s cries on your shoulder.", &op->name); |
497 | sprintf(buf3, "%s cries on %s's shoulder.", op->name, |
379 | sprintf(buf3, "%s cries on %s's shoulder.", &op->name, |
498 | pl->ob->name); |
380 | &pl->ob->name); |
499 | break; |
381 | break; |
500 | case EMOTE_POKE: |
382 | case EMOTE_POKE: |
501 | sprintf(buf, "You poke %s in the ribs.", pl->ob->name); |
383 | sprintf(buf, "You poke %s in the ribs.", &pl->ob->name); |
502 | sprintf(buf2, "%s pokes you in the ribs.", op->name); |
384 | sprintf(buf2, "%s pokes you in the ribs.", &op->name); |
503 | sprintf(buf3, "%s pokes %s in the ribs.", op->name, |
385 | sprintf(buf3, "%s pokes %s in the ribs.", &op->name, |
504 | pl->ob->name); |
386 | &pl->ob->name); |
505 | break; |
387 | break; |
506 | case EMOTE_ACCUSE: |
388 | case EMOTE_ACCUSE: |
507 | sprintf(buf, "You look accusingly at %s.", pl->ob->name); |
389 | sprintf(buf, "You look accusingly at %s.", &pl->ob->name); |
508 | sprintf(buf2, "%s looks accusingly at you.", op->name); |
390 | sprintf(buf2, "%s looks accusingly at you.", &op->name); |
509 | sprintf(buf3, "%s looks accusingly at %s.", op->name, |
391 | sprintf(buf3, "%s looks accusingly at %s.", &op->name, |
510 | pl->ob->name); |
392 | &pl->ob->name); |
511 | break; |
393 | break; |
512 | case EMOTE_GRIN: |
394 | case EMOTE_GRIN: |
513 | sprintf(buf, "You grin at %s.", pl->ob->name); |
395 | sprintf(buf, "You grin at %s.", &pl->ob->name); |
514 | sprintf(buf2, "%s grins evilly at you.", op->name); |
396 | sprintf(buf2, "%s grins evilly at you.", &op->name); |
515 | sprintf(buf3, "%s grins evilly at %s.", op->name, |
397 | sprintf(buf3, "%s grins evilly at %s.", &op->name, |
516 | pl->ob->name); |
398 | &pl->ob->name); |
517 | break; |
399 | break; |
518 | case EMOTE_BOW: |
400 | case EMOTE_BOW: |
519 | sprintf(buf, "You bow before %s.", pl->ob->name); |
401 | sprintf(buf, "You bow before %s.", &pl->ob->name); |
520 | sprintf(buf2, "%s bows before you.", op->name); |
402 | sprintf(buf2, "%s bows before you.", &op->name); |
521 | sprintf(buf3, "%s bows before %s.", op->name, |
403 | sprintf(buf3, "%s bows before %s.", &op->name, |
522 | pl->ob->name); |
404 | &pl->ob->name); |
523 | break; |
405 | break; |
524 | case EMOTE_FROWN: |
406 | case EMOTE_FROWN: |
525 | sprintf(buf, "You frown darkly at %s.", pl->ob->name); |
407 | sprintf(buf, "You frown darkly at %s.", &pl->ob->name); |
526 | sprintf(buf2, "%s frowns darkly at you.", op->name); |
408 | sprintf(buf2, "%s frowns darkly at you.", &op->name); |
527 | sprintf(buf3, "%s frowns darkly at %s.", op->name, |
409 | sprintf(buf3, "%s frowns darkly at %s.", &op->name, |
528 | pl->ob->name); |
410 | &pl->ob->name); |
529 | break; |
411 | break; |
530 | case EMOTE_GLARE: |
412 | case EMOTE_GLARE: |
531 | sprintf(buf, "You glare icily at %s.", pl->ob->name); |
413 | sprintf(buf, "You glare icily at %s.", &pl->ob->name); |
532 | sprintf(buf2, "%s glares icily at you, you feel cold to" |
414 | sprintf(buf2, "%s glares icily at you, you feel cold to" |
533 | " your bones.", op->name); |
415 | " your bones.", &op->name); |
534 | sprintf(buf3, "%s glares at %s.", op->name, pl->ob->name); |
416 | sprintf(buf3, "%s glares at %s.", &op->name, &pl->ob->name); |
535 | break; |
417 | break; |
536 | case EMOTE_LICK: |
418 | case EMOTE_LICK: |
537 | sprintf(buf, "You lick %s.", pl->ob->name); |
419 | sprintf(buf, "You lick %s.", &pl->ob->name); |
538 | sprintf(buf2, "%s licks you.", op->name); |
420 | sprintf(buf2, "%s licks you.", &op->name); |
539 | sprintf(buf3, "%s licks %s.", op->name, pl->ob->name); |
421 | sprintf(buf3, "%s licks %s.", &op->name, &pl->ob->name); |
540 | break; |
422 | break; |
541 | case EMOTE_SHRUG: |
423 | case EMOTE_SHRUG: |
542 | sprintf(buf, "You shrug at %s.", pl->ob->name); |
424 | sprintf(buf, "You shrug at %s.", &pl->ob->name); |
543 | sprintf(buf2, "%s shrugs at you.", op->name); |
425 | sprintf(buf2, "%s shrugs at you.", &op->name); |
544 | sprintf(buf3, "%s shrugs at %s.", op->name, pl->ob->name); |
426 | sprintf(buf3, "%s shrugs at %s.", &op->name, &pl->ob->name); |
545 | break; |
427 | break; |
546 | case EMOTE_SLAP: |
428 | case EMOTE_SLAP: |
547 | sprintf(buf, "You slap %s.", pl->ob->name); |
429 | sprintf(buf, "You slap %s.", &pl->ob->name); |
548 | sprintf(buf2, "You are slapped by %s.", op->name); |
430 | sprintf(buf2, "You are slapped by %s.", &op->name); |
549 | sprintf(buf3, "%s slaps %s.", op->name, pl->ob->name); |
431 | sprintf(buf3, "%s slaps %s.", &op->name, &pl->ob->name); |
550 | break; |
432 | break; |
551 | case EMOTE_SNEEZE: |
433 | case EMOTE_SNEEZE: |
552 | sprintf(buf, "You sneeze at %s and a film of snot shoots" |
434 | sprintf(buf, "You sneeze at %s and a film of snot shoots" |
553 | " onto him.", pl->ob->name); |
435 | " onto him.", &pl->ob->name); |
554 | sprintf(buf2, "%s sneezes on you, you feel the snot cover" |
436 | sprintf(buf2, "%s sneezes on you, you feel the snot cover" |
555 | " you. EEEEEEW.", op->name); |
437 | " you. EEEEEEW.", &op->name); |
556 | sprintf(buf3, "%s sneezes on %s and a film of snot covers" |
438 | sprintf(buf3, "%s sneezes on %s and a film of snot covers" |
557 | " him.", op->name, pl->ob->name); |
439 | " him.", &op->name, &pl->ob->name); |
558 | break; |
440 | break; |
559 | case EMOTE_SNIFF: |
441 | case EMOTE_SNIFF: |
560 | sprintf(buf, "You sniff %s.", pl->ob->name); |
442 | sprintf(buf, "You sniff %s.", &pl->ob->name); |
561 | sprintf(buf2, "%s sniffs you.", op->name); |
443 | sprintf(buf2, "%s sniffs you.", &op->name); |
562 | sprintf(buf3, "%s sniffs %s", op->name, pl->ob->name); |
444 | sprintf(buf3, "%s sniffs %s", &op->name, &pl->ob->name); |
563 | break; |
445 | break; |
564 | case EMOTE_SPIT: |
446 | case EMOTE_SPIT: |
565 | sprintf(buf, "You spit on %s.", pl->ob->name); |
447 | sprintf(buf, "You spit on %s.", &pl->ob->name); |
566 | sprintf(buf2, "%s spits in your face!", op->name); |
448 | sprintf(buf2, "%s spits in your face!", &op->name); |
567 | sprintf(buf3, "%s spits in %s's face.", op->name, |
449 | sprintf(buf3, "%s spits in %s's face.", &op->name, |
568 | pl->ob->name); |
450 | &pl->ob->name); |
569 | break; |
451 | break; |
570 | case EMOTE_THANK: |
452 | case EMOTE_THANK: |
571 | sprintf(buf, "You thank %s heartily.", pl->ob->name); |
453 | sprintf(buf, "You thank %s heartily.", &pl->ob->name); |
572 | sprintf(buf2, "%s thanks you heartily.", op->name); |
454 | sprintf(buf2, "%s thanks you heartily.", &op->name); |
573 | sprintf(buf3, "%s thanks %s heartily.", op->name, |
455 | sprintf(buf3, "%s thanks %s heartily.", &op->name, |
574 | pl->ob->name); |
456 | &pl->ob->name); |
575 | break; |
457 | break; |
576 | case EMOTE_WAVE: |
458 | case EMOTE_WAVE: |
577 | sprintf(buf, "You wave goodbye to %s.", pl->ob->name); |
459 | sprintf(buf, "You wave goodbye to %s.", &pl->ob->name); |
578 | sprintf(buf2, "%s waves goodbye to you. Have a good" |
460 | sprintf(buf2, "%s waves goodbye to you. Have a good" |
579 | " journey.", op->name); |
461 | " journey.", &op->name); |
580 | sprintf(buf3, "%s waves goodbye to %s.", op->name, |
462 | sprintf(buf3, "%s waves goodbye to %s.", &op->name, |
581 | pl->ob->name); |
463 | &pl->ob->name); |
582 | break; |
464 | break; |
583 | case EMOTE_WHISTLE: |
465 | case EMOTE_WHISTLE: |
584 | sprintf(buf, "You whistle at %s.", pl->ob->name); |
466 | sprintf(buf, "You whistle at %s.", &pl->ob->name); |
585 | sprintf(buf2, "%s whistles at you.", op->name); |
467 | sprintf(buf2, "%s whistles at you.", &op->name); |
586 | sprintf(buf2, "%s whistles at %s.", op->name, pl->ob->name); |
468 | sprintf(buf2, "%s whistles at %s.", &op->name, &pl->ob->name); |
587 | break; |
469 | break; |
588 | case EMOTE_WINK: |
470 | case EMOTE_WINK: |
589 | sprintf(buf, "You wink suggestively at %s.", pl->ob->name); |
471 | sprintf(buf, "You wink suggestively at %s.", &pl->ob->name); |
590 | sprintf(buf2, "%s winks suggestively at you.", op->name); |
472 | sprintf(buf2, "%s winks suggestively at you.", &op->name); |
591 | sprintf(buf2, "%s winks at %s.", op->name, pl->ob->name); |
473 | sprintf(buf2, "%s winks at %s.", &op->name, &pl->ob->name); |
592 | break; |
474 | break; |
593 | case EMOTE_BEG: |
475 | case EMOTE_BEG: |
594 | sprintf(buf, "You beg %s for mercy.", pl->ob->name); |
476 | sprintf(buf, "You beg %s for mercy.", &pl->ob->name); |
595 | sprintf(buf2, "%s begs you for mercy! Show no quarter!", |
477 | sprintf(buf2, "%s begs you for mercy! Show no quarter!", |
596 | op->name); |
478 | &op->name); |
597 | sprintf(buf2, "%s begs %s for mercy!", op->name, |
479 | sprintf(buf2, "%s begs %s for mercy!", &op->name, |
598 | pl->ob->name); |
480 | &pl->ob->name); |
599 | break; |
481 | break; |
600 | case EMOTE_BLEED: |
482 | case EMOTE_BLEED: |
601 | sprintf(buf, "You slash your wrist and bleed all over %s", |
483 | sprintf(buf, "You slash your wrist and bleed all over %s", |
602 | pl->ob->name); |
484 | &pl->ob->name); |
603 | sprintf(buf2, "%s slashes his wrist and bleeds all over" |
485 | sprintf(buf2, "%s slashes his wrist and bleeds all over" |
604 | " you.", op->name); |
486 | " you.", &op->name); |
605 | sprintf(buf2, "%s slashes his wrist and bleeds all " |
487 | sprintf(buf2, "%s slashes his wrist and bleeds all " |
606 | "over %s.", op->name, pl->ob->name); |
488 | "over %s.", &op->name, &pl->ob->name); |
607 | break; |
489 | break; |
608 | case EMOTE_CRINGE: |
490 | case EMOTE_CRINGE: |
609 | sprintf(buf, "You cringe away from %s.", pl->ob->name); |
491 | sprintf(buf, "You cringe away from %s.", &pl->ob->name); |
610 | sprintf(buf2, "%s cringes away from you.", op->name); |
492 | sprintf(buf2, "%s cringes away from you.", &op->name); |
611 | sprintf(buf2, "%s cringes away from %s in mortal terror.", |
493 | sprintf(buf2, "%s cringes away from %s in mortal terror.", |
612 | op->name, pl->ob->name); |
494 | &op->name, &pl->ob->name); |
613 | break; |
495 | break; |
614 | default: |
496 | default: |
615 | sprintf(buf, "You are still nuts."); |
497 | sprintf(buf, "You are still nuts."); |
616 | sprintf(buf2, "You get the distinct feeling that %s is nuts.", |
498 | sprintf(buf2, "You get the distinct feeling that %s is nuts.", |
617 | op->name); |
499 | &op->name); |
618 | sprintf(buf3, "%s is eyeing %s quizzically.", pl->ob->name, |
500 | sprintf(buf3, "%s is eyeing %s quizzically.", &pl->ob->name, |
619 | op->name); |
501 | &op->name); |
620 | break; |
502 | break; |
621 | } /*case*/ |
503 | } /*case*/ |
622 | new_draw_info(NDI_UNIQUE|NDI_WHITE, 0, op, buf); |
504 | new_draw_info(NDI_UNIQUE|NDI_WHITE, 0, op, buf); |
623 | new_draw_info(NDI_UNIQUE|NDI_WHITE, 0, pl->ob, buf2); |
505 | new_draw_info(NDI_UNIQUE|NDI_WHITE, 0, pl->ob, buf2); |
624 | new_info_map_except2(NDI_WHITE, op->map, op, pl->ob, buf3); |
506 | new_info_map_except2(NDI_WHITE, op->map, op, pl->ob, buf3); |
625 | return(0); |
507 | return(0); |
626 | } |
508 | } |
627 | if(strncasecmp(pl->ob->name, params, MAX_NAME)==0 && |
509 | if(strncasecmp(pl->ob->name, params, MAX_NAME)==0 && |
628 | pl->ob->map == op->map && pl->ob == op) { |
510 | pl->ob->map == op->map && pl->ob == op) { |
629 | switch(emotion) { |
511 | switch(emotion) { |
630 | case EMOTE_DANCE: |
512 | case EMOTE_DANCE: |
631 | sprintf(buf, "You skip and dance around by yourself."); |
513 | sprintf(buf, "You skip and dance around by yourself."); |
632 | sprintf(buf2, "%s embraces himself and begins to dance!", |
514 | sprintf(buf2, "%s embraces himself and begins to dance!", |
633 | op->name); |
515 | &op->name); |
634 | break; |
516 | break; |
635 | case EMOTE_LAUGH: |
517 | case EMOTE_LAUGH: |
636 | sprintf(buf, "Laugh at yourself all you want, the others " |
518 | sprintf(buf, "Laugh at yourself all you want, the others " |
637 | "won't understand."); |
519 | "won't understand."); |
638 | sprintf(buf2, "%s is laughing at something.", op->name); |
520 | sprintf(buf2, "%s is laughing at something.", &op->name); |
639 | break; |
521 | break; |
640 | case EMOTE_SHAKE: |
522 | case EMOTE_SHAKE: |
641 | sprintf(buf, "You are shaken by yourself."); |
523 | sprintf(buf, "You are shaken by yourself."); |
642 | sprintf(buf2, "%s shakes and quivers like a bowlful of " |
524 | sprintf(buf2, "%s shakes and quivers like a bowlful of " |
643 | "jelly.", op->name); |
525 | "jelly.", &op->name); |
644 | break; |
526 | break; |
645 | case EMOTE_PUKE: |
527 | case EMOTE_PUKE: |
646 | sprintf(buf, "You puke on yourself."); |
528 | sprintf(buf, "You puke on yourself."); |
647 | sprintf(buf2, "%s pukes on his clothes.", op->name); |
529 | sprintf(buf2, "%s pukes on his clothes.", &op->name); |
648 | break; |
530 | break; |
649 | case EMOTE_HUG: |
531 | case EMOTE_HUG: |
650 | sprintf(buf, "You hug yourself."); |
532 | sprintf(buf, "You hug yourself."); |
651 | sprintf(buf2, "%s hugs himself.", op->name); |
533 | sprintf(buf2, "%s hugs himself.", &op->name); |
652 | break; |
534 | break; |
653 | case EMOTE_CRY: |
535 | case EMOTE_CRY: |
654 | sprintf(buf, "You cry to yourself."); |
536 | sprintf(buf, "You cry to yourself."); |
655 | sprintf(buf2, "%s sobs quietly to himself.", op->name); |
537 | sprintf(buf2, "%s sobs quietly to himself.", &op->name); |
656 | break; |
538 | break; |
657 | case EMOTE_POKE: |
539 | case EMOTE_POKE: |
658 | sprintf(buf, "You poke yourself in the ribs, feeling very" |
540 | sprintf(buf, "You poke yourself in the ribs, feeling very" |
659 | " silly."); |
541 | " silly."); |
660 | sprintf(buf2, "%s pokes himself in the ribs, looking very" |
542 | sprintf(buf2, "%s pokes himself in the ribs, looking very" |
661 | " sheepish.", op->name); |
543 | " sheepish.", &op->name); |
662 | break; |
544 | break; |
663 | case EMOTE_ACCUSE: |
545 | case EMOTE_ACCUSE: |
664 | sprintf(buf, "You accuse yourself."); |
546 | sprintf(buf, "You accuse yourself."); |
665 | sprintf(buf2, "%s seems to have a bad conscience.", |
547 | sprintf(buf2, "%s seems to have a bad conscience.", |
666 | op->name); |
548 | &op->name); |
667 | break; |
549 | break; |
668 | case EMOTE_BOW: |
550 | case EMOTE_BOW: |
669 | sprintf(buf, "You kiss your toes."); |
551 | sprintf(buf, "You kiss your toes."); |
670 | sprintf(buf2, "%s folds up like a jackknife and kisses his" |
552 | sprintf(buf2, "%s folds up like a jackknife and kisses his" |
671 | " own toes.", op->name); |
553 | " own toes.", &op->name); |
672 | break; |
554 | break; |
673 | case EMOTE_FROWN: |
555 | case EMOTE_FROWN: |
674 | sprintf(buf, "You frown at yourself."); |
556 | sprintf(buf, "You frown at yourself."); |
675 | sprintf(buf2, "%s frowns at himself.", op->name); |
557 | sprintf(buf2, "%s frowns at himself.", &op->name); |
676 | break; |
558 | break; |
677 | case EMOTE_GLARE: |
559 | case EMOTE_GLARE: |
678 | sprintf(buf, "You glare icily at your feet, they are " |
560 | sprintf(buf, "You glare icily at your feet, they are " |
679 | "suddenly very cold."); |
561 | "suddenly very cold."); |
680 | sprintf(buf2, "%s glares at his feet, what is bothering " |
562 | sprintf(buf2, "%s glares at his feet, what is bothering " |
681 | "him?", op->name); |
563 | "him?", &op->name); |
682 | break; |
564 | break; |
683 | case EMOTE_LICK: |
565 | case EMOTE_LICK: |
684 | sprintf(buf, "You lick yourself."); |
566 | sprintf(buf, "You lick yourself."); |
685 | sprintf(buf2, "%s licks himself - YUCK.", op->name); |
567 | sprintf(buf2, "%s licks himself - YUCK.", &op->name); |
686 | break; |
568 | break; |
687 | case EMOTE_SLAP: |
569 | case EMOTE_SLAP: |
688 | sprintf(buf, "You slap yourself, silly you."); |
570 | sprintf(buf, "You slap yourself, silly you."); |
689 | sprintf(buf2, "%s slaps himself, really strange...", |
571 | sprintf(buf2, "%s slaps himself, really strange...", |
690 | op->name); |
572 | &op->name); |
691 | break; |
573 | break; |
692 | case EMOTE_SNEEZE: |
574 | case EMOTE_SNEEZE: |
693 | sprintf(buf, "You sneeze on yourself, what a mess!"); |
575 | sprintf(buf, "You sneeze on yourself, what a mess!"); |
694 | sprintf(buf2, "%s sneezes, and covers himself in a slimy" |
576 | sprintf(buf2, "%s sneezes, and covers himself in a slimy" |
695 | " substance.", op->name); |
577 | " substance.", &op->name); |
696 | break; |
578 | break; |
697 | case EMOTE_SNIFF: |
579 | case EMOTE_SNIFF: |
698 | sprintf(buf, "You sniff yourself."); |
580 | sprintf(buf, "You sniff yourself."); |
699 | sprintf(buf2, "%s sniffs himself.", op->name); |
581 | sprintf(buf2, "%s sniffs himself.", &op->name); |
700 | break; |
582 | break; |
701 | case EMOTE_SPIT: |
583 | case EMOTE_SPIT: |
702 | sprintf(buf, "You drool all over yourself."); |
584 | sprintf(buf, "You drool all over yourself."); |
703 | sprintf(buf2, "%s drools all over himself.", op->name); |
585 | sprintf(buf2, "%s drools all over himself.", &op->name); |
704 | break; |
586 | break; |
705 | case EMOTE_THANK: |
587 | case EMOTE_THANK: |
706 | sprintf(buf, "You thank yourself since nobody else " |
588 | sprintf(buf, "You thank yourself since nobody else " |
707 | "wants to!"); |
589 | "wants to!"); |
708 | sprintf(buf2, "%s thanks himself since you won't.", |
590 | sprintf(buf2, "%s thanks himself since you won't.", |
709 | op->name); |
591 | &op->name); |
710 | break; |
592 | break; |
711 | case EMOTE_WAVE: |
593 | case EMOTE_WAVE: |
712 | sprintf(buf, "Are you going on adventures as well??"); |
594 | sprintf(buf, "Are you going on adventures as well??"); |
713 | sprintf(buf2, "%s waves goodbye to himself.", op->name); |
595 | sprintf(buf2, "%s waves goodbye to himself.", &op->name); |
714 | break; |
596 | break; |
715 | case EMOTE_WHISTLE: |
597 | case EMOTE_WHISTLE: |
716 | sprintf(buf, "You whistle while you work."); |
598 | sprintf(buf, "You whistle while you work."); |
717 | sprintf(buf2, "%s whistles to himself in boredom.", |
599 | sprintf(buf2, "%s whistles to himself in boredom.", |
718 | op->name); |
600 | &op->name); |
719 | break; |
601 | break; |
720 | case EMOTE_WINK: |
602 | case EMOTE_WINK: |
721 | sprintf(buf, "You wink at yourself?? What are you up to?"); |
603 | sprintf(buf, "You wink at yourself?? What are you up to?"); |
722 | sprintf(buf2, "%s winks at himself - something strange " |
604 | sprintf(buf2, "%s winks at himself - something strange " |
723 | "is going on...", op->name); |
605 | "is going on...", &op->name); |
724 | break; |
606 | break; |
725 | case EMOTE_BLEED: |
607 | case EMOTE_BLEED: |
726 | sprintf(buf, "Very impressive! You wipe your blood all " |
608 | sprintf(buf, "Very impressive! You wipe your blood all " |
727 | "over yourself."); |
609 | "over yourself."); |
728 | sprintf(buf2, "%s performs some satanic ritual while " |
610 | sprintf(buf2, "%s performs some satanic ritual while " |
729 | "wiping his blood on himself.", op->name); |
611 | "wiping his blood on himself.", &op->name); |
730 | break; |
612 | break; |
731 | default: |
613 | default: |
732 | sprintf(buf, "My god! is that LEGAL?"); |
614 | sprintf(buf, "My god! is that LEGAL?"); |
733 | sprintf(buf2, "You look away from %s.", op->name); |
615 | sprintf(buf2, "You look away from %s.", &op->name); |
734 | break; |
616 | break; |
735 | }/*case*/ |
617 | }/*case*/ |
736 | new_draw_info(NDI_UNIQUE|NDI_WHITE, 0, op, buf); |
618 | new_draw_info(NDI_UNIQUE|NDI_WHITE, 0, op, buf); |
737 | new_info_map_except(NDI_WHITE, op->map, op, buf2); |
619 | new_info_map_except(NDI_WHITE, op->map, op, buf2); |
738 | return(0); |
620 | return(0); |
739 | }/*if self*/ |
621 | }/*if self*/ |
740 | }/*for*/ |
622 | }/*for*/ |
741 | new_draw_info_format(NDI_UNIQUE, 0, op, "%s is not around.", params); |
623 | new_draw_info_format(NDI_UNIQUE, 0, op, "%s is not around.", params); |
742 | return(1); |
624 | return(1); |
743 | } /*else*/ |
625 | } /*else*/ |
744 | |
626 | |
745 | return(0); |
627 | return(0); |
746 | } |
628 | } |
747 | |
629 | |