|
@@ -9262,9 +9262,13 @@ BUILDIN_FUNC(globalmes)
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
-/*==========================================
|
|
|
- * Creates a waiting room (chat room)
|
|
|
- *------------------------------------------*/
|
|
|
+/////////////////////////////////////////////////////////////////////
|
|
|
+// NPC waiting room (chat room)
|
|
|
+//
|
|
|
+
|
|
|
+/// Creates a waiting room (chat room) for this npc.
|
|
|
+///
|
|
|
+/// waitingroom "<title>",<limit>{,"<event>"{,<trigger>{,<zeny>{,<minlvl>{,<maxlvl>}}}}};
|
|
|
BUILDIN_FUNC(waitingroom)
|
|
|
{
|
|
|
struct npc_data* nd;
|
|
@@ -9453,20 +9457,44 @@ BUILDIN_FUNC(warpwaitingpc)
|
|
|
mapreg_setreg(reference_uid(add_str("$@warpwaitingpc"), i), sd->bl.id);
|
|
|
|
|
|
if( strcmp(map_name,"Random") == 0 )
|
|
|
+ {
|
|
|
+ if( cd->zeny )
|
|
|
+ {// fee set
|
|
|
+ if( (uint32)sd->status.zeny < cd->zeny )
|
|
|
+ {// no zeny to cover set fee
|
|
|
+ return 0;
|
|
|
+ }
|
|
|
+ pc_payzeny(sd, cd->zeny);
|
|
|
+ }
|
|
|
pc_randomwarp(sd,CLR_TELEPORT);
|
|
|
+ }
|
|
|
else if( strcmp(map_name,"SavePoint") == 0 )
|
|
|
{
|
|
|
if( map[sd->bl.m].flag.noteleport )
|
|
|
return 0;// can't teleport on this map
|
|
|
|
|
|
- pc_setpos(sd, sd->status.save_point.map, sd->status.save_point.x, sd->status.save_point.y, CLR_TELEPORT);
|
|
|
if( cd->zeny )
|
|
|
+ {// fee set
|
|
|
+ if( (uint32)sd->status.zeny < cd->zeny )
|
|
|
+ {// no zeny to cover set fee
|
|
|
+ return 0;
|
|
|
+ }
|
|
|
pc_payzeny(sd, cd->zeny);
|
|
|
+ }
|
|
|
+ pc_setpos(sd, sd->status.save_point.map, sd->status.save_point.x, sd->status.save_point.y, CLR_TELEPORT);
|
|
|
}
|
|
|
else
|
|
|
- pc_setpos(sd, mapindex_name2id(map_name), x, y, CLR_OUTSIGHT);
|
|
|
+ {
|
|
|
if( cd->zeny )
|
|
|
+ {// fee set
|
|
|
+ if( (uint32)sd->status.zeny < cd->zeny )
|
|
|
+ {// no zeny to cover set fee
|
|
|
+ return 0;
|
|
|
+ }
|
|
|
pc_payzeny(sd, cd->zeny);
|
|
|
+ }
|
|
|
+ pc_setpos(sd, mapindex_name2id(map_name), x, y, CLR_OUTSIGHT);
|
|
|
+ }
|
|
|
}
|
|
|
mapreg_setreg(add_str("$@warpwaitingpcnum"), i);
|
|
|
return 0;
|