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.17 by root, Wed Nov 8 00:52:56 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))
319 return 1; 281 return 1;
320 } 282 }
321 283
322 cleanup (); 284 cleanup ();
323 /* not reached */ 285 /* 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; 286 return 1;
384} 287}
385 288
386int 289int
387command_freeze (object *op, char *params) 290command_freeze (object *op, char *params)
944 847
945 tmp = get_dm_object (op->contr, &params, NULL); 848 tmp = get_dm_object (op->contr, &params, NULL);
946 if (!tmp) 849 if (!tmp)
947 return 1; 850 return 1;
948 851
949 dump_object (tmp); 852 char *dump = dump_object (tmp);
950 new_draw_info (NDI_UNIQUE, 0, op, errmsg); 853 new_draw_info (NDI_UNIQUE, 0, op, dump);
854 free (dump);
855
951 if (QUERY_FLAG (tmp, FLAG_OBJ_ORIGINAL)) 856 if (QUERY_FLAG (tmp, FLAG_OBJ_ORIGINAL))
952 new_draw_info (NDI_UNIQUE, 0, op, "Object is marked original"); 857 new_draw_info (NDI_UNIQUE, 0, op, "Object is marked original");
858
953 return 1; 859 return 1;
954} 860}
955 861
956/** 862/**
957 * When DM is possessing a monster, flip aggression on and off, to allow 863 * When DM is possessing a monster, flip aggression on and off, to allow
1314} 1220}
1315 1221
1316int 1222int
1317command_reset (object *op, char *params) 1223command_reset (object *op, char *params)
1318{ 1224{
1319 mapstruct *m; 1225 maptile *m;
1320 object *dummy = NULL, *tmp = NULL; 1226 object *dummy = NULL, *tmp = NULL;
1321 1227
1322 if (params == NULL) 1228 if (params == NULL)
1323 { 1229 {
1324 new_draw_info (NDI_UNIQUE, 0, op, "Reset what map [name]?"); 1230 new_draw_info (NDI_UNIQUE, 0, op, "Reset what map [name]?");
1325 return 1; 1231 return 1;
1326 } 1232 }
1327 1233
1328 if (strcmp (params, ".") == 0) 1234 if (strcmp (params, ".") == 0)
1329 params = op->map->path; 1235 params = op->map->path;
1236
1330 m = has_been_loaded (params); 1237 m = has_been_loaded (params);
1331 if (m == NULL) 1238 if (m == NULL)
1332 { 1239 {
1333 new_draw_info (NDI_UNIQUE, 0, op, "No such map."); 1240 new_draw_info (NDI_UNIQUE, 0, op, "No such map.");
1334 return 1; 1241 return 1;

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines