ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/server/server/c_wiz.C
(Generate patch)

Comparing deliantra/server/server/c_wiz.C (file contents):
Revision 1.13 by root, Fri Sep 15 23:31:34 2006 UTC vs.
Revision 1.18 by pippijn, Sat Dec 9 17:28:37 2006 UTC

73 { 73 {
74 new_draw_info (NDI_UNIQUE, 0, op, "That player is in no state for that right now."); 74 new_draw_info (NDI_UNIQUE, 0, op, "That player is in no state for that right now.");
75 return NULL; 75 return NULL;
76 } 76 }
77 return pl; 77 return pl;
78}
79
80/**
81 * This command will stress server.
82 */
83int
84command_loadtest (object *op, char *params)
85{
86 uint32 x, y;
87 char buf[1024];
88
89 new_draw_info (NDI_UNIQUE, 0, op, "loadtest will stress server through teleporting");
90 new_draw_info (NDI_UNIQUE, 0, op, "at different map places.");
91 new_draw_info (NDI_UNIQUE, 0, op, "use at your own risks.");
92 new_draw_info (NDI_UNIQUE, 0, op, "Very long loop used so server may have to be reset.");
93 new_draw_info (NDI_UNIQUE, 0, op, "type loadtest TRUE to run");
94 new_draw_info_format (NDI_UNIQUE, 0, op, "{%s}", params);
95
96 if (!params)
97 return 0;
98
99 if (strncmp (params, "TRUE", 4))
100 return 0;
101
102 new_draw_info_format (NDI_UNIQUE, 0, op, "gogogo");
103
104 for (x = 0; x < settings.worldmaptilesx; x++)
105 {
106 for (y = 0; y < settings.worldmaptilesy; y++)
107 {
108 sprintf (buf, "/world/world_%d_%d", x + settings.worldmapstartx, y + settings.worldmapstarty);
109 command_goto (op, buf);
110 }
111 }
112
113 return 0;
114} 78}
115 79
116/** 80/**
117 * Actually hides specified player (obviously a DM). 81 * Actually hides specified player (obviously a DM).
118 * If 'silent_dm' is non zero, other players are informed of DM entering/leaving, 82 * If 'silent_dm' is non zero, other players are informed of DM entering/leaving,
266} 230}
267 231
268int 232int
269command_kick (object *op, char *params) 233command_kick (object *op, char *params)
270{ 234{
271 struct pl *pl;
272
273 for (pl = first_player; pl != NULL; pl = pl->next) 235 for (player *pl = first_player; pl; pl = pl->next)
274 if ((params == NULL || !strcmp (&pl->ob->name, params)) && !INVOKE_PLAYER (KICK, pl, ARG_STRING (params))) 236 if ((params == NULL || !strcmp (&pl->ob->name, params)) && !INVOKE_PLAYER (KICK, pl, ARG_STRING (params)))
275 { 237 {
276 object *op = pl->ob; 238 object *op = pl->ob;
277 239
278 if (!QUERY_FLAG (op, FLAG_REMOVED) && !QUERY_FLAG (op, FLAG_FREED)) 240 if (!QUERY_FLAG (op, FLAG_REMOVED) && !QUERY_FLAG (op, FLAG_FREED))
309} 271}
310 272
311int 273int
312command_shutdown (object *op, char *params) 274command_shutdown (object *op, char *params)
313{ 275{
314 struct pl *pl;
315
316 if (op != NULL && !QUERY_FLAG (op, FLAG_WIZ)) 276 if (op != NULL && !QUERY_FLAG (op, FLAG_WIZ))
317 { 277 {
318 new_draw_info (NDI_UNIQUE, 0, op, "Sorry, you can't shutdown the server."); 278 new_draw_info (NDI_UNIQUE, 0, op, "Sorry, you can't shutdown the server.");
319 return 1; 279 return 1;
320 } 280 }
321 281
322 cleanup (); 282 cleanup ();
323 /* not reached */ 283 /* not reached */
324 return 1;
325}
326
327int
328command_goto (object *op, char *params)
329{
330 char *name;
331 object *dummy;
332
333 if (!op)
334 return 0;
335
336 if (params == NULL)
337 {
338 new_draw_info (NDI_UNIQUE, 0, op, "Go to what level?");
339 return 1;
340 }
341
342 name = params;
343 dummy = get_object ();
344 dummy->map = op->map;
345 EXIT_PATH (dummy) = name;
346 dummy->name = name;
347
348 enter_exit (op, dummy);
349 free_object (dummy);
350 if (op->contr->loading == NULL)
351 {
352 new_draw_info_format (NDI_UNIQUE, 0, op, "Difficulty: %d.", op->map->difficulty);
353 }
354
355 return 1;
356}
357
358/* is this function called from somewhere ? -Tero */
359int
360command_generate (object *op, char *params)
361{
362 object *tmp;
363 int nr = 1, i, retry;
364
365 if (!op)
366 return 0;
367
368 if (params != NULL)
369 sscanf (params, "%d", &nr);
370 for (i = 0; i < nr; i++)
371 {
372 retry = 50;
373 while ((tmp = generate_treasure (0, op->map->difficulty)) == NULL && --retry)
374 ;
375 if (tmp != NULL)
376 {
377 tmp = insert_ob_in_ob (tmp, op);
378 if (op->type == PLAYER)
379 esrv_send_item (op, tmp);
380 }
381 }
382
383 return 1; 284 return 1;
384} 285}
385 286
386int 287int
387command_freeze (object *op, char *params) 288command_freeze (object *op, char *params)
944 845
945 tmp = get_dm_object (op->contr, &params, NULL); 846 tmp = get_dm_object (op->contr, &params, NULL);
946 if (!tmp) 847 if (!tmp)
947 return 1; 848 return 1;
948 849
949 dump_object (tmp); 850 char *dump = dump_object (tmp);
950 new_draw_info (NDI_UNIQUE, 0, op, errmsg); 851 new_draw_info (NDI_UNIQUE, 0, op, dump);
852 free (dump);
853
951 if (QUERY_FLAG (tmp, FLAG_OBJ_ORIGINAL)) 854 if (QUERY_FLAG (tmp, FLAG_OBJ_ORIGINAL))
952 new_draw_info (NDI_UNIQUE, 0, op, "Object is marked original"); 855 new_draw_info (NDI_UNIQUE, 0, op, "Object is marked original");
856
953 return 1; 857 return 1;
954} 858}
955 859
956/** 860/**
957 * When DM is possessing a monster, flip aggression on and off, to allow 861 * When DM is possessing a monster, flip aggression on and off, to allow
1314} 1218}
1315 1219
1316int 1220int
1317command_reset (object *op, char *params) 1221command_reset (object *op, char *params)
1318{ 1222{
1319 mapstruct *m; 1223 maptile *m;
1320 object *dummy = NULL, *tmp = NULL; 1224 object *dummy = NULL, *tmp = NULL;
1321 1225
1322 if (params == NULL) 1226 if (params == NULL)
1323 { 1227 {
1324 new_draw_info (NDI_UNIQUE, 0, op, "Reset what map [name]?"); 1228 new_draw_info (NDI_UNIQUE, 0, op, "Reset what map [name]?");
1325 return 1; 1229 return 1;
1326 } 1230 }
1327 1231
1328 if (strcmp (params, ".") == 0) 1232 if (strcmp (params, ".") == 0)
1329 params = op->map->path; 1233 params = op->map->path;
1234
1330 m = has_been_loaded (params); 1235 m = has_been_loaded (params);
1331 if (m == NULL) 1236 if (m == NULL)
1332 { 1237 {
1333 new_draw_info (NDI_UNIQUE, 0, op, "No such map."); 1238 new_draw_info (NDI_UNIQUE, 0, op, "No such map.");
1334 return 1; 1239 return 1;

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines