[Release] WoWBasic 2.0 menu

User Tag List

Page 3 of 3 FirstFirst 123
Results 31 to 41 of 41
  1. #31
    Remus's Avatar Banned

    Reputation
    402
    Join Date
    Nov 2007
    Posts
    1,697
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    In for the lulz; wishing i could do this type of coding but alas.. you guys are tha bomb. peace

    [Release] WoWBasic 2.0
  2. #32
    Cypher's Avatar Kynox's Sister's Pimp
    Reputation
    1358
    Join Date
    Apr 2006
    Posts
    5,368
    Thanks G/R
    0/6
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by Apoc View Post
    I assume self-commenting code is just not a possibility eh?

    Ask Cypher how most of my code looks, very very rarely do I ever comment anything. The code does it for me. And if you can't read code, then you couldn't understand what the hell was happening anyway, with or without comments.

    Cypher's code is usually fairly clean (for the exception of that DBC dumper he posted earlier), though he's retarded enough to write that code in the first place.

    P.S; EW!!!!! VB!!!! EWW!!!!

    That was more of a PoC/"oh it works".

    Clean version (and I must say I'm quite proud of how clean and terse I managed to get such a low level function) :

    Code:
        const unsigned int PointerDist = 0xB, IndexDist = 0x1, LoopDist = 0x14, OpcodeRet = 0xC3, RegCallDist = 0x10, GetCallDist = 0x10, NamePtrDist = 0x1;
        for(unsigned int Start = gpRedPillMgr->GetFindPattern()->GetAddress("CDBClient__RegisterBase"); ResolveLea<BYTE>(Start) != OpcodeRet; Start += LoopDist)
        {
            CDBClient* pDBClient = ResolveLea<CDBClient*>(Start + PointerDist);
            unsigned int Index = ResolveLea<unsigned int>(Start + IndexDist);
            unsigned int RegFunc = ResolveRel(Start + RegCallDist);
            unsigned int GetFunc = ResolveRel(RegFunc + GetCallDist);
            std::string Name = FormatString(ResolveLea<const char*>(GetFunc + NamePtrDist));
            gpRedPillMgr->GetLog()->Add(str(boost::format("0x%p -> DBClient(Name: %s Index: %i)") %pDBClient %Name.c_str() %Index));
            m_Databases[Index] = pDBClient;
            m_DatabaseNames[Index] = Name;
            m_DatabaseIndexes[Name] = Index;
        }

    And yes. Self explanatory (ie clean, well written) code is always better than disgusting but heavily commented code.

  3. #33
    Xarg0's Avatar Member
    Reputation
    61
    Join Date
    Jan 2008
    Posts
    389
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Basic syntax deserves to die!
    Hell I'm still downloading the god damned patch >.<
    I hacked 127.0.0.1

  4. #34
    shauno's Avatar Member
    Reputation
    3
    Join Date
    Oct 2008
    Posts
    34
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by bigtimt View Post
    in wowbasic 3.0 there is a bunch of new things you can do with the library
    Awesome, can't wait for 3.0 I love this kinda stuff.

    A bored C#/.NET programmer at work with WoW on his work PC = funtimes :P

  5. #35
    Gravecorp's Avatar Member
    Reputation
    11
    Join Date
    Oct 2008
    Posts
    26
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    I was wondering, is this up to date with the 3.0.2 patch?
    If it is. It might be a great start for me to get into this ^_^

    I am hoping i can help contribute to the community once i get a decent understanding of interaction with the client.

  6. #36
    Apoc's Avatar Angry Penguin
    Reputation
    1388
    Join Date
    Jan 2008
    Posts
    2,750
    Thanks G/R
    0/13
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by Cypher View Post

    That was more of a PoC/"oh it works".

    Clean version (and I must say I'm quite proud of how clean and terse I managed to get such a low level function) :

    Code:
        const unsigned int PointerDist = 0xB, IndexDist = 0x1, LoopDist = 0x14, OpcodeRet = 0xC3, RegCallDist = 0x10, GetCallDist = 0x10, NamePtrDist = 0x1;
        for(unsigned int Start = gpRedPillMgr->GetFindPattern()->GetAddress("CDBClient__RegisterBase"); ResolveLea<BYTE>(Start) != OpcodeRet; Start += LoopDist)
        {
            CDBClient* pDBClient = ResolveLea<CDBClient*>(Start + PointerDist);
            unsigned int Index = ResolveLea<unsigned int>(Start + IndexDist);
            unsigned int RegFunc = ResolveRel(Start + RegCallDist);
            unsigned int GetFunc = ResolveRel(RegFunc + GetCallDist);
            std::string Name = FormatString(ResolveLea<const char*>(GetFunc + NamePtrDist));
            gpRedPillMgr->GetLog()->Add(str(boost::format("0x%p -> DBClient(Name: %s Index: %i)") %pDBClient %Name.c_str() %Index));
            m_Databases[Index] = pDBClient;
            m_DatabaseNames[Index] = Name;
            m_DatabaseIndexes[Name] = Index;
        }

    And yes. Self explanatory (ie clean, well written) code is always better than disgusting but heavily commented code.
    Looks much better than the crap you had before :P

    Also about comments read the link below. It's stuck with me for a long time (read it a loooooooong time ago) and it pretty much explains how you should be using comments.

    Learn C++ - » 1.2 — Comments

    In particular, this quote:

    At the statement level, comments should be used to describe why the code is doing something. A bad statement comment explains what the code is doing. If you ever write code that is so complex that needs a comment to explain what a statement is doing, you probably need to rewrite your code, not comment it.

  7. #37
    Cypher's Avatar Kynox's Sister's Pimp
    Reputation
    1358
    Join Date
    Apr 2006
    Posts
    5,368
    Thanks G/R
    0/6
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by Apoc View Post
    Looks much better than the crap you had before :P

    Also about comments read the link below. It's stuck with me for a long time (read it a loooooooong time ago) and it pretty much explains how you should be using comments.

    Learn C++ - » 1.2 — Comments

    In particular, this quote:
    True to an extent. But sometimes when working with particularly obscure sections of code (ie Very low level or highly specialized features) you may need to document the what and no amount of refactoring will fix that.

  8. #38
    Xarg0's Avatar Member
    Reputation
    61
    Join Date
    Jan 2008
    Posts
    389
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    or just comment every single line of code like those crazy java programmers
    Code:
     for(int i=0; i>10 break; i++) {//this is the header of the for loop 
     prinf("Omg it's a char constant! this is the %s", i); // this prints some stupid text and the value of i
    }// this is the end of the for loop, hell that was hard to figure out *gg
    I hacked 127.0.0.1

  9. #39
    [Shon3m]'s Avatar Banned
    Reputation
    128
    Join Date
    Apr 2007
    Posts
    669
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by kynox View Post
    This section is over your head, kindly back up and head back to the "Noobs R Us" store.

    Have a great day!

    lawl kynox is a noobie because kynox knows all about the noobs r us store

  10. #40
    kynox's Avatar Member
    Reputation
    830
    Join Date
    Dec 2006
    Posts
    888
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by Soularis View Post
    lawl kynox is a noobie because kynox knows all about the noobs r us store
    You're a ****ing dumbass.

  11. #41
    Cypher's Avatar Kynox's Sister's Pimp
    Reputation
    1358
    Join Date
    Apr 2006
    Posts
    5,368
    Thanks G/R
    0/6
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by Soularis View Post
    lawl kynox is a noobie because kynox knows all about the noobs r us store

    Please if you have nothing to contribute to this section I ask you go back to the mental health clinic you came from. This section is for the more 'intellectual' members of the community, of which you are definately not a part. So as kynox said, "you're a ****ing dumbass" and I shall add "get the **** out".

    PS. Enjoy your -rep.

Page 3 of 3 FirstFirst 123

Similar Threads

  1. [Release] Herbs to flag
    By Dave-evad in forum World of Warcraft Model Editing
    Replies: 9
    Last Post: 11-26-2006, 03:31 PM
  2. Burning Crusdade Release Date!
    By codydude815 in forum World of Warcraft General
    Replies: 22
    Last Post: 10-30-2006, 01:59 PM
  3. anti-warden Release #1
    By zhPaul in forum World of Warcraft Bots and Programs
    Replies: 40
    Last Post: 10-21-2006, 01:40 AM
  4. Burning Crusade Release
    By KOLOSSAL in forum World of Warcraft General
    Replies: 3
    Last Post: 10-10-2006, 12:33 AM
All times are GMT -5. The time now is 02:08 AM. Powered by vBulletin® Version 4.2.3
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. User Alert System provided by Advanced User Tagging (Pro) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.
Google Authenticator verification provided by Two-Factor Authentication (Free) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.
Digital Point modules: Sphinx-based search