PDA

View Full Version : safe fall


realityincarnate
04-14-2009, 12:07 PM
Currently, safe fall skill ups are only checked when fall damage is actually taken. I changed it so that the server makes a check whenever it receives the safe fall opcode from the client. It looks like the SOF opcode is already in place, so this should work fine there too.


Index: utils/patch_Titanium.conf
================================================== =================
--- utils/patch_Titanium.conf (revision 432)
+++ utils/patch_Titanium.conf (working copy)
@@ -324,7 +324,7 @@
OP_RezzComplete=0x4b05
OP_RezzRequest=0x1035
OP_RezzAnswer=0x6219
-OP_SafeFallSuccess=0x0000
+OP_SafeFallSuccess=0x3b21
OP_Shielding=0x3fe6
OP_TestBuff=0x6ab0 #/testbuff
OP_Track=0x5d11 # ShowEQ 10/27/05
Index: zone/client_packet.cpp
================================================== =================
--- zone/client_packet.cpp (revision 432)
+++ zone/client_packet.cpp (working copy)
@@ -5764,9 +5808,7 @@
int damage = ed->damage;

if (ed->dmgtype == 252) {
- if(HasSkill(SAFE_FALL)) //safe fall is done client side, we don't reduce dmg here
- CheckIncreaseSkill(SAFE_FALL); //but we do check to see if we get a skill up
-
+
switch(GetAA(aaAcrobatics)) { //Don't know what acrobatics effect is yet but it should be done client side via aa effect.. till then
case 1:
damage = damage * 95 / 100;
@@ -6516,8 +6588,10 @@
{
}

-void Client::Handle_OP_SafeFallSuccess(const EQApplicationPacket *app)
+void Client::Handle_OP_SafeFallSuccess(const EQApplicationPacket *app) // bit of a misnomer, sent whenever safe fall is used (success of fail)
{
+ if(HasSkill(SAFE_FALL)) //this should only get called if the client has safe fall, but just in case...
+ CheckIncreaseSkill(SAFE_FALL); //check for skill up
}

void Client::Handle_OP_Heartbeat(const EQApplicationPacket *app)