Page 2 of 8 FirstFirst 1234 ... LastLast
Results 16 to 30 of 118
  1. #16
    eth0nic's Avatar
    Join Date
    Mar 2013
    Gender
    male
    Posts
    507
    Reputation
    10
    Thanks
    80
    Because so many people talk about how packet ids have changed ... they did not for ages ...

    "boolFromServer" is used to determine the key to use when in proxy mode ... i.e. to determine whether a packet is inbound or outbound independent from the "local" socket direction ... a HELLO packet in bot context is outbound but in proxy mode it is inbound first then parsed, modified and compiled and then outbound ... that is what we need "boolFromServer" for ...

    Code:
    #packetNum,packetName,boolFromServer
    # INIT
    17,HELLO,0
    60,MAP_INFO,1
    45,LOAD,0
    36,CREATE,0
    31,CREATE_SUCCESS,1
    46,ACCOUNT_LIST,1
    
    # CRITICAL
    6,PING,1
    16,PONG,0
    
    62,NEW_TICK,1
    7,MOVE,0
    
    26,UPDATE,1
    11,UPDATE_ACK,0
    
    19,SHOOT,1
    22,SHOOT_ACK,0
    
    # REST
    0,FAILURE,1
    1,CANCEL_TRADE,0
    3,USE_PORTAL,0
    4,INV_RESULT,1
    10,BUY_RESULT,1
    12,TRADE_DONE,1
    13,SHOOT_MAGE,1
    14,GOTO_ACK,0
    18,TRADE_ACCEPTED,1
    21,REQUEST_TRADE,0
    24,PLAYER_HIT,0
    25,TEXT,1
    30,USE_ITEM,0
    33,CHOOSE_NAME,0
    34,QUEST_OBJECT_ID,1
    35,INV_DROP,0
    37,CHANGE_TRADE,0
    38,PLAYER_SHOOT,0
    39,RECONNECT,1
    42,ESCAPE,0
    47,DAMAGE,1
    49,TELEPORT,0
    51,SQUARE_HIT,0
    52,GOTO,1
    56,SHOW_EFFECT,1
    57,ACCEPT_TRADE,0
    61,TRADE_REQUESTED,1
    63,NOTIFICATION,1
    65,INV_SWAP,0
    66,OTHER_HIT,0
    69,PLAYER_TEXT,0
    67,TRADE_START,1
    68,AOE,1
    74,ALLY_SHOOT,1
    76,ENEMYHIT,0
    Last edited by eth0nic; 04-21-2013 at 01:22 PM.

  2. The Following User Says Thank You to eth0nic For This Useful Post:

    gorgor (04-21-2013)

  3. #17
    gorgor's Avatar
    Join Date
    Aug 2012
    Gender
    male
    Location
    Toxic Sewer
    Posts
    583
    Reputation
    15
    Thanks
    161
    Quote Originally Posted by eth0nic View Post
    Because so many people talk about how packet ids have changed ...
    Maybe you can help me
    when objectType==32545 my proxy explose (just after the tiles, the chars, then booom).
    I have then a difference of size of received/sent in the package ..

    here is my log :
    s2c: UPDATE t:null n:[GameObject {32567 ObjectStatusData {99628 Location {127.90839, 135.56891} [StatData {1 0 },....

    the red part is not sent : [0, 0, 0, 1, 127, 55, 0, 1, -123, 44, 66, -1, -47, 24, 67, 7, -111, -92, 0, 18, 1, 0, 0, 0, 0, 2, 0, 0, 0, 60, 80, 0, 0, -128, 51, 81, 0, 0, 0, 22, 82, 0, 16, 123, 112, 101, 116, 115, 46, 66, 97, 98, 121, 95, 83, 107, 105, 110, 125, 83, 0, 0, 127, 55, 84, 0, 0, 0, 1, 85, 0, 0, 0, 50, 86, -65, -92, 51, -48, 87, 0, 0, 8, 32, 88, 0, 0, 0, 20, 89, 0, 0, 0, 0, 90, 0, 0, 0, 30, 91, 0, 0, 0, 2, 92, 0, 0, 0, 1, 93, 0, 0, 1, -105, 94, 0, 0, 1, -107, 95, 0, 0, 1, -104, 0, 0]

    I am a bit stucked.. did you changed something in the class ObjectStatus ?
    Last edited by gorgor; 04-24-2013 at 11:25 AM.

  4. #18
    eth0nic's Avatar
    Join Date
    Mar 2013
    Gender
    male
    Posts
    507
    Reputation
    10
    Thanks
    80
    Note: I am only creating OO objects when required .... like when doing "getObjectByPlayerName" or "getObjectById" or "getClosestPlayerToObjetId" etc. to keep things fast ...

    Note: the formatting is not that weird in my actual code :-P

    Code:
    my $osize=readUnsignedShort($self->{data});
     for(my $o=0;$o<$osize;$o++){
     	my $objectType=readUnsignedShort($self->{data});
     	my $objectId=readInt($self->{data});
     	my $x=readFloat($self->{data});
     	my $y=readFloat($self->{data});	
     	#my $pos=Rotmg::Pos->new($x,$y);
     		$rotmg->{'objects'}->{$objectId}->{'objectType'}=$objectType;
     	  $rotmg->{'objects'}->{$objectId}->{'x'}=$x;
     	  $rotmg->{'objects'}->{$objectId}->{'y'}=$y;
      my $ssize=readUnsignedShort($self->{data});
      for(my $s=0;$s<$ssize;$s++){
       my $objectStatsId=readUnsignedByte($self->{data});
       my $objectStatsValue=undef;
       if($objectStatsId==31 || $objectStatsId==62 || $objectStatsId==82){ # name or guild or petSkin
       	$objectStatsValue=readUTF($self->{data});
       }else{
       	$objectStatsValue=readInt($self->{data});
       }
       $rotmg->{'objects'}->{$objectId}->{'objectStats'}->{$objectStatsId}=$objectStatsValue;
      }
     }
    Last edited by eth0nic; 04-24-2013 at 01:57 PM.

  5. #19
    eth0nic's Avatar
    Join Date
    Mar 2013
    Gender
    male
    Posts
    507
    Reputation
    10
    Thanks
    80
    because people keep talking about changing the server/host the game will connect to ... here is how i do it ...

    i use "mitmproxy" from mitmproxy - home

    and use regular expressions to change the XML config file of the client ...

    Code:
    mitmproxy --replace ":~u crossdomain\.xml:master-only:all" --replace ":~u \/char\/list:<DNS>.*?</DNS>:<DNS>127.0.0.1</DNS>"

  6. The Following User Says Thank You to eth0nic For This Useful Post:

    CrazyJani (08-20-2018)

  7. #20
    gorgor's Avatar
    Join Date
    Aug 2012
    Gender
    male
    Location
    Toxic Sewer
    Posts
    583
    Reputation
    15
    Thanks
    161
    I fixed my packet UPDATE as I finally get the pets displayed, thank to you previous post stating the 3 states that change the read/write to an UTF or an INT.
    I got this done :
    now everything is displayed (tile/chars/pets) , even a TEXT of a random seller appears ..
    but then nothing moves anymore ..
    I get no PONG or NEW_TICK send by server...
    Maybe there is something I missed, or an answer that should be sent to the server inresponse to something..


    # INIT
    17,HELLO,0
    60,MAP_INFO,1
    45,LOAD,0
    36,CREATE,0
    31,CREATE_SUCCESS,1
    46,ACCOUNT_LIST,1

    # CRITICAL
    6,PING,1
    16,PONG,0

    62,NEW_TICK,1
    7,MOVE,0

    26,UPDATE,1
    11,UPDATE_ACK,0

    19,SHOOT,1
    22,SHOOT_ACK,0

  8. #21
    eth0nic's Avatar
    Join Date
    Mar 2013
    Gender
    male
    Posts
    507
    Reputation
    10
    Thanks
    80
    There is nothing missing ... except AOE_ACK but that is irrelevant in Nexus. Also what are you actually programming? A bot? A proxy? A standalone client? I can not read your mind. "but then nothing moves anymore" is not really a good explanation of a problem. Do you actually use nonblocking sockets? Using blocking sockets can get you into timing problems.

    Please open a new thread "Writing my own bot." or something ... this thread is meant to be a place where I post relevant information - thanks. Thanks :-)
    Last edited by eth0nic; 04-26-2013 at 07:43 AM.

  9. #22
    eth0nic's Avatar
    Join Date
    Mar 2013
    Gender
    male
    Posts
    507
    Reputation
    10
    Thanks
    80
    Wrote a short TODO list for people interested in writing their own rotmg proxies.

    https://www.mpgh.net/forum/654-realm-...tmg-proxy.html

  10. #23
    eth0nic's Avatar
    Join Date
    Mar 2013
    Gender
    male
    Posts
    507
    Reputation
    10
    Thanks
    80
    if anyone knows what foo1 and foo2 are used for in the TRADE_START packet feel free to share the information ...

    Code:
    sub decompile {
     my $self=shift;
     my $myItemsSize=readUnsignedShort($self->{'data'});
     for(my $i=0;$i<$myItemsSize;$i++){
      my $objectType=readInt($self->{'data'});
      $self->{'myItems'}->{$i+8}=$objectType;
      my $foo1=readUnsignedShort($self->{'data'});
      my $slotType=readUnsignedShort($self->{data});
      my $foo2=readShort($self->{data});
      #print $i . ' objectType:' . $objectType . ' foo1:' . $foo1 . ' slotType:' . $slotType . ' foo2:' . $foo2 . "\n";
     }
     $self->{'name'}=readUTF($self->{'data'});
     my $yourItemsSize=readUnsignedShort($self->{'data'});
     for(my $i=0;$i<$yourItemsSize;$i++){
      my $objectType=readInt($self->{'data'});
      $self->{'yourItems'}->{$i+8}=$objectType;
      my $foo1=readUnsignedShort($self->{'data'});
      my $slotType=readUnsignedShort($self->{data});
      my $foo2=readShort($self->{data});
      #print $i . ' objectType:' . $objectType . ' foo1:' . $foo1 . ' slotType:' . $slotType . ' foo2:' . $foo2 . "\n";
     }
     print '[TRADESTART] myItemsSize:' . $myItemsSize . ' yourName:' . $self->{'name'} . ' yourItemsSize:' . $yourItemsSize . "\n";
    }


    ---------- Post added at 07:01 AM ---------- Previous post was at 06:52 AM ----------

    how to create accounts via plain html ...

    https://www.mpgh.net/forum/654-realm-...ml-jquery.html

    how to change passwords of thousands of mules via plain html / a multithreaded script ...

    https://www.mpgh.net/forum/720-realm-...tten-perl.html

  11. The Following User Says Thank You to eth0nic For This Useful Post:

    gorgor (05-06-2013)

  12. #24
    DatCoder's Avatar
    Join Date
    Feb 2013
    Gender
    male
    Posts
    265
    Reputation
    10
    Thanks
    178
    My Mood
    Inspired
    Quote Originally Posted by eth0nic View Post
    if anyone knows what foo1 and foo2 are used for in the TRADE_START packet feel free to share the information ...

    Code:
    sub decompile {
     my $self=shift;
     my $myItemsSize=readUnsignedShort($self->{'data'});
     for(my $i=0;$i<$myItemsSize;$i++){
      my $objectType=readInt($self->{'data'});
      $self->{'myItems'}->{$i+8}=$objectType;
      my $foo1=readUnsignedShort($self->{'data'});
      my $slotType=readUnsignedShort($self->{data});
      my $foo2=readShort($self->{data});
      #print $i . ' objectType:' . $objectType . ' foo1:' . $foo1 . ' slotType:' . $slotType . ' foo2:' . $foo2 . "\n";
     }
     $self->{'name'}=readUTF($self->{'data'});
     my $yourItemsSize=readUnsignedShort($self->{'data'});
     for(my $i=0;$i<$yourItemsSize;$i++){
      my $objectType=readInt($self->{'data'});
      $self->{'yourItems'}->{$i+8}=$objectType;
      my $foo1=readUnsignedShort($self->{'data'});
      my $slotType=readUnsignedShort($self->{data});
      my $foo2=readShort($self->{data});
      #print $i . ' objectType:' . $objectType . ' foo1:' . $foo1 . ' slotType:' . $slotType . ' foo2:' . $foo2 . "\n";
     }
     print '[TRADESTART] myItemsSize:' . $myItemsSize . ' yourName:' . $self->{'name'} . ' yourItemsSize:' . $yourItemsSize . "\n";
    }
    I believe your packet is wrong.
    Each of the items has 4 fields:
    • item:int (objectType of the item, -1 if no object is specified)
    • slotType:int (type of the slot, inventory is 0, other types can be: ring slot, robe slot, armor slot, tome slot, sword slot, wand slot, etc..)
    • tradable:bool (True is the item is tradable, otherwise False (soulbound, empty slot, weapon/ability/armor/ring slots))
    • included:bool (means whether the slot is selected to trade by default. It's always false, or at least I haven't seen an example of this (you can select empty slots or weapon/ability/armor/ring slots as well if you want, but there is no reason to)


    Size of 1 item is int(4)+int(4)+bool(1)+bool(1)=10 bytes instead of 4+2+2+2=10 bytes

    Code:
    class TradeItem:
        def __init__(self):
            pass
        def parseFromInput(self, data):
            self.item, data = readInt(data)
            self.slotType, data = readInt(data)
            self.tradeable, data = readBoolean(data)
            self.included, data = readBoolean(data)
            return data
        def writeToOutput(self, data):
            data = writeInt(self.item, data)
            data = writeInt(self.slotType, data)
            data = writeBoolean(self.tradeable, data)
            data = writeBoolean(self.included, data)
            return data
        def __repr__(self):
            return 'item=' + str(self.item) + ' slotType=' + str(self.slotType) \
                + ' tradeable=' + str(self.tradeable) + ' included=' + str(self.included)
    Last edited by DatCoder; 05-06-2013 at 09:49 AM.

  13. The Following User Says Thank You to DatCoder For This Useful Post:

    eth0nic (05-06-2013)

  14. #25
    eth0nic's Avatar
    Join Date
    Mar 2013
    Gender
    male
    Posts
    507
    Reputation
    10
    Thanks
    80
    I thought so ... but since I only use the iterator variable and objectType in the code of my trading bots that didn't really matter ;-) Thanks ... will fix!

    ---------- Post added at 10:00 AM ---------- Previous post was at 09:57 AM ----------

    p.s.: while we are at it ... those are the slotType -> slotName mappings I use with my trading bots ... maybe they are helpful for some people that do not use the Objects.xml file with their bots ... (ignore the arrays ... they are only used for evaluating how valuable the inventory of a trade bot is)

    Code:
    my $slotType2minTier={
      1=>[ 9, 10, 11], # sword
      2=>[10, 11, 12], # dirk
      3=>[ 9, 10, 11], # bow
      4=>[ 4,  5,  6], # tome
      5=>[ 4,  5,  6], # shield
      6=>[10, 11, 12], # leather armor
      7=>[10, 11, 12], # steel armor
      8=>[10, 11, 12], # wand
      9=>[ 4,  5, -1], # ring
     #10=> potions & health pots
     11=>[ 4,  5,  6], # spells
     12=>[ 4,  5,  6], # seals
     13=>[ 4,  5,  6], # cloak
     14=>[10, 11, 12], # robe
     15=>[ 4,  5,  6], # quiver
     16=>[ 4,  5,  6], # helm
     17=>[ 9, 10, 11], # staff
     18=>[ 4,  5,  6], # poison
     19=>[ 4,  5,  6], # skull
     20=>[ 4,  5,  6], # trap
     21=>[ 4,  5,  6], # orb
     22=>[ 4,  5,  6], # prism
     23=>[ 4,  5,  6], #scepter
     24=>[10, 11, 12], # katana
     25=>[ 4,  5,  6], # star
     26=>[ 0, -1,  1], # pet eggs ... common=0, uncommon=1, rare=2, legendary=3, 
    };
    ---------- Post added at 10:04 AM ---------- Previous post was at 10:00 AM ----------

    p.s2.: What is boolIncluded good for? You send/get the bitmask of items to be traded in CHANGE_TRADE and TRADE_ACCEPTED anyway? Also what is slotType good for? You know that value from the Objects.xml file anyway? Those 2 fields are just a waste of bandwidth imho ...

    p.s3.: update the packet code ... thanks again ...

    Code:
    sub decompile {
     my $self=shift;
     my $myItemsSize=readUnsignedShort($self->{'data'});
     #print 'myItems:' . "\n";
     for(my $i=0;$i<$myItemsSize;$i++){
      my $objectType=readInt($self->{'data'});
      $self->{'myItems'}->{$i+8}=$objectType;
      my $slotType=readInt($self->{'data'});
      my $boolTradeable=readBoolean($self->{'data'});
      my $boolIncluded=readBoolean($self->{'data'});
      #print $i . ' objectType:' . $objectType . ' slotType:' . $slotType . ' boolTradeable:' . $boolTradeable . ' boolIncluded:' . $boolIncluded . "\n";
     }
     #print 'yourItems:' . "\n";
     $self->{'name'}=readUTF($self->{'data'});
     
     my $yourItemsSize=readUnsignedShort($self->{'data'});
     for(my $i=0;$i<$yourItemsSize;$i++){
      my $objectType=readInt($self->{'data'});
      $self->{'yourItems'}->{$i+8}=$objectType;
      my $slotType=readInt($self->{'data'});
      my $boolTradeable=readBoolean($self->{'data'});
      my $boolIncluded=readBoolean($self->{'data'});
      #print $i . ' objectType:' . $objectType . ' slotType:' . $slotType . ' boolTradeable:' . $boolTradeable . ' boolIncluded:' . $boolIncluded . "\n";
     }
     print '[TRADESTART] myItemsSize:' . $myItemsSize . ' yourName:' . $self->{'name'} . ' yourItemsSize:' . $yourItemsSize . "\n";
     die '$self->{\'data\'} not exhausted: ' . unpack('H*',$self->{'data'}) . "\n" if $self->{'data'};
    }
    Last edited by eth0nic; 05-06-2013 at 10:14 AM.

  15. #26
    eth0nic's Avatar
    Join Date
    Mar 2013
    Gender
    male
    Posts
    507
    Reputation
    10
    Thanks
    80
    if anyone else is writing autonomous trading bots ... here is my current slotType->tier->price list ... might be useful as a template ... low/mid/high are potion classes items will trade for ... i.e. low=dex/spd/wis mid=vit/def/att high=life/mana

    Code:
    my $slotType2itemPrice={
      1=>{'minPickup'=> 10, 9=>'1low', 10=>'1mid', 11=>'1high', 12=>'3high'}, # sword
      2=>{'minPickup'=> 10, 9=>'1low', 10=>'1mid', 11=>'3mid',  12=>'2high'}, # daggers
      3=>{'minPickup'=> 10, 9=>'1low', 10=>'1mid', 11=>'3mid',  12=>'1high'}, # bows
      4=>{'minPickup'=>  5, 4=>'1low',  5=>'2mid',  6=>'2high'}, # tome
      5=>{'minPickup'=>  5, 4=>'1low',  5=>'2mid',  6=>'3high'}, # shield
      6=>{'minPickup'=> 10, 9=>'1low', 10=>'2low', 11=>'1mid',  12=>'3mid',  13=>'2high'}, # leather armor
      7=>{'minPickup'=> 10, 9=>'1low', 10=>'1low', 11=>'1mid',  12=>'3mid',  13=>'2high'}, # heavy armor
      8=>{'minPickup'=> 10, 9=>'1low', 10=>'2low', 11=>'2mid',  12=>'1high'}, # wands
      9=>{'minPickup'=>  4, 4=>'1mid',  5=>'2mid'},  # rings / 5 = exa
    #10=>{}, # potions / statPots / treasures
     11=>{'minPickup'=>  5, 4=>'1low',  5=>'2mid',  6=>'3high'}, # spells
     12=>{'minPickup'=>  5, 4=>'1low',  5=>'1mid',  6=>'2high'}, # seals
     13=>{'minPickup'=>  5, 4=>'1low',  5=>'2mid',  6=>'3high'}, # cloaks
     14=>{'minPickup'=> 10, 9=>'1low', 10=>'1mid', 11=>'2mid',  12=>'1high', 13=>'3high'}, # robes
     15=>{'minPickup'=>  5, 4=>'1low',  5=>'2mid',  6=>'3high'}, # quivers
     16=>{'minPickup'=>  5, 4=>'1low',  5=>'2mid',  6=>'3high'}, # helms
     17=>{'minPickup'=> 10, 9=>'1low', 10=>'1mid', 11=>'1high', 12=>'3high'}, # staffs
     18=>{'minPickup'=>  5, 4=>'1low',  5=>'2mid',  6=>'3high'}, # poisons
     19=>{'minPickup'=>  5, 4=>'1low',  5=>'2mid',  6=>'3high'}, # skulls
     20=>{'minPickup'=>  5, 4=>'1low',  5=>'1low',  6=>'3mid'},  # traps
     21=>{'minPickup'=>  5, 4=>'1low',  5=>'1mid',  6=>'3mid'},  # orbs
     22=>{'minPickup'=>  5, 4=>'1low',  5=>'1mid',  6=>'3mid'},  # prisms
     23=>{'minPickup'=>  5, 4=>'1low',  5=>'1mid',  6=>'1high'}, # scepters
     24=>{'minPickup'=> 10, 9=>'1low', 10=>'1low', 11=>'1mid',  12=>'1high'}, # katanas
     25=>{'minPickup'=>  5, 4=>'1low',  5=>'1mid',  6=>'1high'}, # stars
     26=>{'minPickup'=>  5, 0=>'1low',  1=>'3high', 2=>'8high'}, # pet eggs ... common=0, uncommon=1, rare=2, legendary=3,      
    };
    Last edited by eth0nic; 05-08-2013 at 04:55 AM.

  16. #27
    eth0nic's Avatar
    Join Date
    Mar 2013
    Gender
    male
    Posts
    507
    Reputation
    10
    Thanks
    80
    because some people seem to have a hard time parsing the muledump format .... here is the working regular epxression to do so ...

    Code:
    #!/usr/bin/perl -w
    use strict;
    use warnings;
    
    my $foo = "'foobar\@foobar.com' : 'foobar', // Potion of Attack (2591)";
    
    if($foo =~ /^\s*'([^\']+)'\s*\:\s*'([^\']+)'/){
     my($guid,$password)=($1,$2);
     print $guid . ' / ' . $password . "\n";
    }
    or the non-greedy version ...

    Code:
    if($foo =~ /'(.+?)'.+?'(.+?)'/){
    Last edited by eth0nic; 05-11-2013 at 10:47 AM.

  17. #28
    eth0nic's Avatar
    Join Date
    Mar 2013
    Gender
    male
    Posts
    507
    Reputation
    10
    Thanks
    80
    Discussion about movement lag compensation code @ https://www.mpgh.net/forum/654-realm-...tion-code.html

  18. #29
    DatCoder's Avatar
    Join Date
    Feb 2013
    Gender
    male
    Posts
    265
    Reputation
    10
    Thanks
    178
    My Mood
    Inspired
    Complete list of StatData types.
    Code:
        MAX_HEALTH = 0 
        HEALTH = 1
        SIZE = 2
        MAX_MANA = 3
        MANA = 4
        XP_GOAL = 5
        XP = 6
        LEVEL = 7
        INVENTORY = [i for i in range(8, 20)]
        ATT = 20
        DEF = 21
        SPD = 22
        #23-25 missing from the client
        VIT = 26
        WIS = 27
        DEX = 28
        CONDITION = 29
        STARS = 30
        NAME = 31  # Pascal string
        TEXTURE1 = 32
        TEXTURE2 = 33
        MERCHANT_TYPE = 34
        REALM_GOLD = 35
        PRICE = 36
        BOOL_CAN_ENTER_PORTAL = 37
        ACCOUNT_ID = 38
        CURRENT_FAME = 39
        MERCHANT_CURRENCY = 40
        OBJECT_ORIENTATION = 41
        MERCHANT_ITEMS_LEFT = 42
        MERCHANT_MINUTES_LEFT = 43
        MERCHANT_DISCOUNT = 44
        MERCHANT_RANK_REQUIRED = 45
        HEALTH_BONUS = 46
        MANA_BONUS = 47
        ATT_BONUS = 48
        DEF_BONUS = 49
        SPD_BONUS = 50
        VIT_BONUS = 51
        WIS_BONUS = 52
        DEX_BONUS = 53
        CONTAINER_OWNER = 54
        NAMECHANGE_RANK_REQUIRED = 55
        BOOL_NAME_REGISTERED = 56
        FAME = 57
        FAME_GOAL = 58
        GLOWING_EFFECT = 59
        SINK_DEPTH = 60
        ALT_TEXTURE = 61
        GUILD = 62  # Pascal string
        GUILD_RANK = 63
        BREATH = 64
        XP_BOOSTED = 65
        XPBOOST_TIME_LEFT = 66
        DROPRATE_TIME_LEFT = 67
        LOOTTIER_TIME_LEFT = 68
        HEALTHPOT_COUNT = 69
        MANAPOT_COUNT = 70
        BACKPACK = [i for i in range(71, 79)]
        BOOL_HAS_BACKPACK = 79
        PET_SKIN_OBJECT_TYPE = 80
        PET_ID = 81
        PET_SKIN = 82  # Pascal string
        PET_TYPE = 83
        PET_RARITY = 84
        PET_MAX_LEVEL = 85
        PET_UNK1 = 86 #Reserved for a pet feature, but not yet implemented (13.2)
        FOOD_SPENT_ON_SKILL1 = 87
        FOOD_SPENT_ON_SKILL2 = 88
        FOOD_SPENT_ON_SKILL3 = 89
        PET_SKILL1_LEVEL = 90
        PET_SKILL2_LEVEL = 91
        PET_SKILL3_LEVEL = 92
        PET_SKILL1_TYPE = 93
        PET_SKILL2_TYPE = 94
        PET_SKILL3_TPYE = 95


    ---------- Post added at 09:21 PM ---------- Previous post was at 09:19 PM ----------

    Complete list of Slot types:
    Code:
        ANY = 0
        SWORD = 1
        DAGGER = 2
        BOW = 3
        TOME = 4
        SHIELD = 5
        LEATHER_ARMOR = 6
        ARMOR = 7
        WAND = 8
        ACCESSORY = 9
        POTION = 10
        SPELL = 11
        HOLY_SEAL = 12
        CLOAK = 13
        ROBE = 14
        QUIVER = 15
        HELM = 16
        STAFF = 17
        POISON = 18
        SKULL = 19
        TRAP = 20
        ORB = 21
        PRISM = 22
        SCEPTER = 23
        SHURIKEN = 24


    ---------- Post added at 10:48 PM ---------- Previous post was at 09:21 PM ----------

    Condition effects:
    Code:
        DEAD = 1<<0
        QUIET = 1<<1
        WEAK = 1<<2
        SLOWED = 1<<3
        SICK = 1<<4
        DAZED = 1<<5
        STUNNED = 1<<6
        BLIND = 1<<7
        HALLUCIANTING = 1<<8
        DRUNK = 1<<9
        CONFUSED = 1<<10
        STUN_IMMUNE = 1<<11
        INVISIBLE = 1<<12
        PARALYZED = 1<<13
        SPEEDY = 1<<14
        BLEEDING = 1<<15
        NOT_USED = 1<<16
        HEALING = 1<<17
        DAMAGING = 1<<18
        BERSERK = 1<<19
        PAUSED = 1<<20
        STASIS = 1<<21
        STASIS_IMMUNE = 1<<22
        INVINCIBLE = 1<<23
        INVULNERABLE = 1<<24
        ARMORED = 1<<25
        ARMOR_BROKEN = 1<<26
        HEXED = 1<<27
        NINJA_SPEEDY = 1<<28

  19. The Following 6 Users Say Thank You to DatCoder For This Useful Post:

    Alde. (02-22-2014),CrazyJani (02-22-2014),eth0nic (05-13-2013),gorgor (06-06-2013),infern000 (12-29-2013),nilly (07-31-2013)

  20. #30
    DatCoder's Avatar
    Join Date
    Feb 2013
    Gender
    male
    Posts
    265
    Reputation
    10
    Thanks
    178
    My Mood
    Inspired
    List of packet IDs with the new petyard/pet features:
    Code:
    packetTypes[0x00] = FAILURE
    packetTypes[0x01] = CANCELTRADE
    packetTypes[0x03] = USEPORTAL
    packetTypes[0x04] = INVRESULT
    packetTypes[0x05] = JOINGUILD
    packetTypes[0x06] = PING
    packetTypes[0x07] = MOVE
    packetTypes[0x08] = GUILDINVITE
    packetTypes[0x09] = GLOBAL_NOTIFICATION
    packetTypes[0x0A] = SETCONDITION
    packetTypes[0x0B] = UPDATEACK
    packetTypes[0x0C] = TRADEDONE
    packetTypes[0x0D] = SHOOT
    packetTypes[0x0E] = GOTOACK
    packetTypes[0x0F] = CREATEGUILD
    packetTypes[0x10] = PONG
    packetTypes[0x11] = HELLO
    packetTypes[0x12] = TRADEACCEPTED
    packetTypes[0x13] = MULTISHOOT
    packetTypes[0x14] = NAMERESULT
    packetTypes[0x15] = REQUESTTRADE
    packetTypes[0x16] = SHOOTACK
    packetTypes[0x17] = TRADECHANGED
    packetTypes[0x18] = PLAYERHIT
    packetTypes[0x19] = TEXT
    packetTypes[0x1A] = UPDATE
    packetTypes[0x1B] = BUYRESULT
    packetTypes[0x1C] = PIC
    packetTypes[0x1E] = USEITEM
    packetTypes[0x1F] = CREATE_SUCCESS
    packetTypes[0x21] = CHOOSENAME
    packetTypes[0x22] = QUESTOBJID
    packetTypes[0x23] = INVDROP
    packetTypes[0x24] = CREATE
    packetTypes[0x25] = CHANGETRADE
    packetTypes[0x26] = PLAYERSHOOT
    packetTypes[0x27] = RECONNECT
    packetTypes[0x28] = CHANGEGUILDRANK
    packetTypes[0x29] = DEATH
    packetTypes[0x2A] = ESCAPE
    packetTypes[0x2C] = PLAYSOUND
    packetTypes[0x2D] = LOAD
    packetTypes[0x2E] = ACCOUNTLIST
    packetTypes[0x2F] = DAMAGE
    packetTypes[0x30] = CHECKCREDITS
    packetTypes[0x31] = TELEPORT
    packetTypes[0x32] = BUY
    packetTypes[0x33] = SQUAREHIT
    packetTypes[0x34] = GOTO
    packetTypes[0x35] = EDITACCOUNTLIST
    packetTypes[0x37] = CLIENTSTAT_FILE
    packetTypes[0x38] = SHOW_EFFECT
    packetTypes[0x39] = ACCEPTTRADE
    packetTypes[0x3A] = CREATEGUILDRESULT
    packetTypes[0x3B] = AOEACK
    packetTypes[0x3C] = MAPINFO
    packetTypes[0x3D] = TRADEREQUESTED
    packetTypes[0x3E] = NEW_TICK
    packetTypes[0x3F] = NOTIFICATION
    packetTypes[0x40] = GROUNDDAMAGE
    packetTypes[0x41] = INVSWAP
    packetTypes[0x42] = OTHERHIT
    packetTypes[0x43] = TRADESTART
    packetTypes[0x44] = AOE
    packetTypes[0x45] = PLAYERTEXT
    packetTypes[0x4A] = ALLYSHOOT
    packetTypes[0x4B] = CLIENTSTAT
    packetTypes[0x4C] = ENEMYHIT
    packetTypes[0x4D] = INVITEDTOGUILD
    packetTypes[0x4E] = GUILDREMOVE
    packetTypes[0x4F] = RESKIN
    packetTypes[0x50] = PETYARDCOMMAND #yard upgrade, pet feed, pet fuse commands
    packetTypes[0x51] = PETCOMMAND #follow, unfollow, release commands
    packetTypes[0x52] = PETFOLLOWACK #your pet is following you / stopped following you
    packetTypes[0x53] = PETNEWABILITY #pet got a new ability
    packetTypes[0x54] = PETYARDUPGRADED #petyard got upgraded, do you want to leave?
    packetTypes[0x55] = FUSERESULT #2 pets got removed, and a new one was added
    packetTypes[0x56] = PETRELEASED #a pet got removed
    packetTypes[0x57] = EGGHATCHED #a new pet was added

  21. The Following 4 Users Say Thank You to DatCoder For This Useful Post:

    Alde. (02-22-2014),[MPGH]Beex (08-07-2013),CrazyJani (03-07-2014),nilly (07-31-2013)

Page 2 of 8 FirstFirst 1234 ... LastLast

Similar Threads

  1. Please stop ruining the thread of relevant information.
    By FainTMako in forum Realm of the Mad God Discussions
    Replies: 15
    Last Post: 12-19-2014, 09:56 PM
  2. Information on: Your thread activities
    By Woods in forum Minecraft Help
    Replies: 0
    Last Post: 04-07-2013, 12:52 PM
  3. Replies: 6
    Last Post: 09-07-2011, 07:10 PM
  4. Sonic Generations Information Thread
    By Hotsuma in forum General Gaming
    Replies: 0
    Last Post: 06-08-2011, 09:58 PM
  5. Replies: 10
    Last Post: 08-15-2009, 06:07 PM