Mount Bug

Page 2 of 2 FirstFirst 12
Results 16 to 24 of 24
  1. #16
    Member dTantra is offline
    MemberRank
    Jul 2013 Join Date
    94Posts

    Re: Mount Bug

    Quote Originally Posted by Reaguee View Post
    As I said.. you are codecaving in ASM
    //snip
    No issue exists with changing the compared ID of the current player in the middle of the function.

    What is the point of how you kick users? Are you trying to say yours achieves some different effect just because your function is longer? This is all it takes.
    Code:
    SendClientMessage(CurrentPlayer, "Connection Closed.");
    CloseUser(CurrentPlayer);
    As to why I have not posted mine, I posted everything that is needed to do it in this thread. The address you can hook, the variable to extract, and the logic needed to make it work. I have not posted my code verbatim because it is built into a plugin framework for dynamic deployment and the functions will obviously not work without the complete code. All code snips are C++ friendly, I cannot attest to them working on C#.

    Code:
    __asm 
        {    
            POP RetAddr
            MOV BYTE PTR DS:[EBX + 0x0C], 0
            MOVZX EAX, BYTE PTR DS:[EBX + 0x0D]
            MOV CurrentPlayer, EDI
            PUSHAD
            PUSHFD
        }
        //Call your function to process the current player here, if you want the mount to success, make sure CurrentPlayer is returned with their real player id, otherwise just set it to 1001.
        __asm
        {
            POPFD
            POPAD
            MOV EDI, CurrentPlayer
            PUSH RetAddr
            ret
        }

  2. #17
    Member Reaguee is offline
    MemberRank
    Jan 2011 Join Date
    84Posts

    Re: Mount Bug

    Quote Originally Posted by dTantra View Post
    No issue exists with changing the compared ID of the current player in the middle of the function.
    Thats what you want to believe, and if is ok for you, then continue doing that. I just want to let others (those that dont know about coding) know that doing that is a BIG mistake on the code. Those who knows about programming well know that to avoid server process the request, you just need to do a return. Of course you cannot do that return because the way you are codecaving.

    Quote Originally Posted by dTantra View Post
    What is the point of how you kick users? Are you trying to say yours achieves some different effect just because your function is longer?
    Probably you are confuse with my kickout function and for that you think is longer than yours. If you read it again you will see that on the declaration, the flag of kickout is set by default to false, what means that i do not kickout anyone unless i decide to kick. so what it does by default is just to send a message to the client.

    Now if we talk about any of the delegates i use in my code, none of then are longer, all them are shorter than yours, because what i do is a call to the original function, I don't have the need as you do, to rewrite the function.

    Quote Originally Posted by dTantra View Post
    As to why I have not posted mine, I posted everything that is needed to do it in this thread. The address you can hook, the variable to extract, and the logic needed to make it work.
    No you didn't, but I think no one cares you didn't. As you said previously, every one have its own way of coding, all i have to add to that, is that those ways depends a lot on how good you are in understanding the code you are fixing.
    Last edited by Reaguee; 08-01-18 at 05:31 AM.

  3. #18
    Member dTantra is offline
    MemberRank
    Jul 2013 Join Date
    94Posts

    Re: Mount Bug

    Quote Originally Posted by Reaguee View Post
    Thats what you want to believe, and if is ok for you, then continue doing that. I just want to let others (those that dont know about coding) know that doing that is a BIG mistake on the code. Those who knows about programming well know that to avoid server process the request, you just need to do a return. Of course you cannot do that return because the way you are codecaving.
    If that's what you want to believe, keep believing it, but I just want to let the others know that it does not create a problem at all for that function. Once the function is returned the reference to the id is disregarded, it does not carry over to any other function and is destroyed. Also, I can trigger a return by jmping to the end of the function if needed.

    Quote Originally Posted by Reaguee View Post
    Probably you are confuse with my kickout function and for that you think is longer than yours. If you read it again you will see that on the declaration, the flag of kickout is set by default to false, what means that i do not kickout anyone unless i decide to kick. so what it does by default is just to send a message to the client.
    I am not referring to your function in which you process the mount bug trigger, I was referring to how you kept going on and on about your kick function?

    Quote Originally Posted by Reaguee View Post
    Now if we talk about any of the delegates i use in my code, none of then are longer, all them are shorter than yours, because what i do is a call to the original function, I don't have the need as you do, to rewrite the function.
    I don't have to rewrite the functions ever, as you can see from my posted function, I call the original game function with the required original arguments and let the server process it as it would normally.

    Quote Originally Posted by Reaguee View Post
    No you didn't, but I think no one cares you didn't. As you said previously, every one have its own way of coding, all i have to add to that, is that those ways depends a lot on how good you are in understanding the code you are fixing.
    Really?

    Quote Originally Posted by dTantra View Post
    /snip
    Info about the mount request can be extracted from 0x48BE87, information about the mount equip / unequip can be extracted from 0x43DBA0.
    Quote Originally Posted by dTantra View Post
    /snip
    Address 0x48BE87 gets called every single time someone tries to use a mount, before it is processed. When it is called the EDI register contains the player id number. You can create an array of structures for each possible player and use the player id to reference the player actions.

    struct PlayerMounts{ int ID; int MsgCount; clock_t LastUse;};

    When the action is used, check the structure to see if the player id has a LastUse time set, if it does not, set it to the current time and process normally. If the LastUse is under your desired time limit, call SendClientMessage and give them some sort of notice, and set the EDI register to 0x3E9, this will prevent the call from processing. If the LastUse is over your desired time limit, set the LastUse to the current time and process the request as normal.
    But hey, keep on doing you!

  4. #19
    Member Reaguee is offline
    MemberRank
    Jan 2011 Join Date
    84Posts

    Re: Mount Bug

    Got it!!. Hope anyone who reads this thread follow your code. You are the best dTantra!! same as you was (if was you) when disabled mail, ZP and portals to avoid dupes, instead of fixing the real problem that cause the dupe issue.

    Hope you feel better since I already deleted how I did for fixing

    BTW would you show me the way you manage buff/debuff bug? or you didn't fix that too. Im just curious on what solution you have for that bug, because my server already have it fixed.


    Superiority? Yesssssss, because even all things your team (or the team were you belonged => "Damodar's team") do to me, Im still alive since 6 years from now, w/o ever do a roll back or changing name to hide from ppl and so on.

    Regards
    Last edited by Reaguee; 10-01-18 at 09:59 AM.

  5. #20
    Valued Member rogers1973 is offline
    MemberRank
    Apr 2014 Join Date
    105Posts

    Re: Mount Bug

    chill guys.both of you are a good developer. by the way dtantra what software did you use to read that code.
    sorry im newbie 😕

  6. #21
    Member dTantra is offline
    MemberRank
    Jul 2013 Join Date
    94Posts

    Re: Mount Bug

    @Reaguee I don't know who you are or what relation you have to tantra or anyone else. I don't get into all the bullshit, I simply write code.

    Quote Originally Posted by Reaguee View Post
    same as you was (if was you) when disabled mail, ZP and portals to avoid dupes, instead of fixing the real problem that cause the dupe issue.
    Actually I did write a fix for those things, none of them were disabled to fix the problem. Ironically enough that was log related.
    Quote Originally Posted by rogers1973 View Post
    chill guys.both of you are a good developer. by the way dtantra what software did you use to read that code.
    sorry im newbie ������
    You will have to be a bit more specific, what code are you asking about? You mean zonesrv.exe ? Or the code pieces I posted?

  7. #22
    Valued Member rogers1973 is offline
    MemberRank
    Apr 2014 Join Date
    105Posts

    Re: Mount Bug

    yes the code you posted. and the zonesrv.exe

    thank you sir.

  8. #23
    www.m.me/ExcelsiorSoftLLC master_unknown is offline
    MemberRank
    Oct 2004 Join Date
    HellLocation
    1,242Posts

    Re: Mount Bug

    Its C++ with ASM.
    If you dont even know or at least follow their discussion, dont bother.
    It will lead you to nowhere.

  9. #24
    Valued Member rogers1973 is offline
    MemberRank
    Apr 2014 Join Date
    105Posts

    Re: Mount Bug

    Up for this one.

    - - - Updated - - -

    Up for this one.

    - - - Updated - - -

    Up for this one.



Page 2 of 2 FirstFirst 12

Advertisement