EQEmulator Forums

EQEmulator Forums (https://www.eqemulator.org/forums/index.php)
-   Development::Server Code Submissions (https://www.eqemulator.org/forums/forumdisplay.php?f=669)
-   -   safe fall (https://www.eqemulator.org/forums/showthread.php?t=27889)

realityincarnate 04-14-2009 12:07 PM

safe fall
 
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.

Code:

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)



All times are GMT -4. The time now is 08:24 PM.

Powered by vBulletin®, Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.