mirror of
https://github.com/EQEmu/Server.git
synced 2025-12-14 07:21:48 +00:00
Fix for perl scripts passing non-client objects to API handler for MovePC and MovePCInstance. [Fixes #127]
This commit is contained in:
parent
69b7d500d8
commit
43326c1804
@ -1,5 +1,8 @@
|
|||||||
EQEMu Changelog (Started on Sept 24, 2003 15:50)
|
EQEMu Changelog (Started on Sept 24, 2003 15:50)
|
||||||
-------------------------------------------------------
|
-------------------------------------------------------
|
||||||
|
== 08/18/2014 ==
|
||||||
|
Uleat: Fix for https://github.com/EQEmu/Server/issues/127 -- also activated a remarked action in doors.cpp to eliminate a memory leak.
|
||||||
|
|
||||||
== 08/16/2014 ==
|
== 08/16/2014 ==
|
||||||
KLS: (addmoreice) Trying out some unstable DB changes. Do backup your database before trying them as master will be considered unstable for a few days at least.
|
KLS: (addmoreice) Trying out some unstable DB changes. Do backup your database before trying them as master will be considered unstable for a few days at least.
|
||||||
Uleat (Noudness): Fixed a floating-point comparison error that led to the notorious 'client bounce' (this is not related to the
|
Uleat (Noudness): Fixed a floating-point comparison error that led to the notorious 'client bounce' (this is not related to the
|
||||||
|
|||||||
@ -253,8 +253,7 @@ void Doors::HandleClick(Client* sender, uint8 trigger)
|
|||||||
strcpy(tmpmsg, "Door is locked by an unknown guild");
|
strcpy(tmpmsg, "Door is locked by an unknown guild");
|
||||||
}
|
}
|
||||||
sender->Message(4, tmpmsg);
|
sender->Message(4, tmpmsg);
|
||||||
// safe_delete(outapp);
|
safe_delete(outapp);
|
||||||
// /\ possible missing line..all other 'fail' returns seem to have it
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
// a key is required or the door is locked but can be picked or both
|
// a key is required or the door is locked but can be picked or both
|
||||||
|
|||||||
@ -1259,7 +1259,22 @@ XS(XS_Client_MovePC)
|
|||||||
if(THIS == nullptr)
|
if(THIS == nullptr)
|
||||||
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
||||||
|
|
||||||
THIS->MovePC(zoneID, x, y, z, heading);
|
if (THIS->IsClient()) {
|
||||||
|
THIS->MovePC(zoneID, x, y, z, heading);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
if (THIS->IsBot())
|
||||||
|
_log(CLIENT__ERROR, "Perl(XS_Client_MovePC) attempted to process a type Bot reference");
|
||||||
|
else if (THIS->IsMerc())
|
||||||
|
_log(CLIENT__ERROR, "Perl(XS_Client_MovePC) attempted to process a type Merc reference");
|
||||||
|
else if (THIS->IsNPC())
|
||||||
|
_log(CLIENT__ERROR, "Perl(XS_Client_MovePC) attempted to process a type NPC reference");
|
||||||
|
else
|
||||||
|
_log(CLIENT__ERROR, "Perl(XS_Client_MovePC) attempted to process an Unknown type reference");
|
||||||
|
|
||||||
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
XSRETURN_EMPTY;
|
XSRETURN_EMPTY;
|
||||||
}
|
}
|
||||||
@ -1288,7 +1303,21 @@ XS(XS_Client_MovePCInstance)
|
|||||||
if(THIS == nullptr)
|
if(THIS == nullptr)
|
||||||
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
||||||
|
|
||||||
THIS->MovePC(zoneID, instanceID, x, y, z, heading);
|
if (THIS->IsClient()) {
|
||||||
|
THIS->MovePC(zoneID, instanceID, x, y, z, heading);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
if (THIS->IsBot())
|
||||||
|
_log(CLIENT__ERROR, "Perl(XS_Client_MovePCInstance) attempted to process a type Bot reference");
|
||||||
|
else if (THIS->IsMerc())
|
||||||
|
_log(CLIENT__ERROR, "Perl(XS_Client_MovePCInstance) attempted to process a type Merc reference");
|
||||||
|
else if (THIS->IsNPC())
|
||||||
|
_log(CLIENT__ERROR, "Perl(XS_Client_MovePCInstance) attempted to process a type NPC reference");
|
||||||
|
else
|
||||||
|
_log(CLIENT__ERROR, "Perl(XS_Client_MovePCInstance) attempted to process an Unknown type reference");
|
||||||
|
|
||||||
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
XSRETURN_EMPTY;
|
XSRETURN_EMPTY;
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user