Jump to content

Lighta

Members
  • Posts

    737
  • Joined

  • Last visited

  • Days Won

    9

Posts posted by Lighta

  1. You could remplace packet_ver: 33 with all the one you gain from that link, so you don't messed up the date <=> version relation.

    Also you must make sure the index are correct as I'm not sure they did follow all our change.

    Exemple given : they said

    0x0439,8,useitem,2:4

    cmd=>0x0439 this should be ok

    8=>packet_len, so let verify this, in src/map/clif.c, searching 'useitem' will found '{clif_parse_UseItem,"useitem"},' so that mean that redirect it in function clif_parse_UseItem, then in that function we can see : "0439 <index>.W <account id>.L (CZ_USE_ITEM2)"

    W+L = 8 so that ok.

    2:4=>1st argument is at index 2, second is at index 4.

    ok so to verify this at :

    index0=> cmd = short = W => ok (next is minimum 0+W=2)

    index2=> <index> = W => ok (next is minimum 2+W=4)

    index4=> <accound_id> => ok (4+L=8) that argument not even read by the function

    4+4=8=packet_len all should be fine.

     

    Maybe a bit hard to understand it how I say it there we might do a better doc about it but the short message was you can take that link and remplace a current version (that the best way to do it) but be carefull about some definition.

  2. svn17600 is an awesome name reflecting to nothing but eh it was pretty.

    Some note to that system :

    -There currectly no safecheck wheater the update was correctly done in char or login.

    This could lead to some zeny exploits. But don't worry there much chance to lose money trying to do so then gaining some.

    Anyway will work on it. Or if you feel like doing so please propose your fix as a pull request.

    • Upvote 1
  3. keep it cool guys.

    So ya I do not believe is rA role to secure client side. Or at least not now. This may evolve as we standing on supporting only few client so we could build on it but it look more like a side project.

    Like helvetica said, whenever is a legitimate client, or simply a telnet you could still send a shitload packets to server to rnu arbytrary code or whatever, this is far more important imo then encrypt packets. Encrypt make it a little harder to edit and also cause they attach some id/time on it prevent to redo the action. So that help that player don't cheat IG but doesn't really increase security imo.

    To fix this I think we should work on fixing/review Wconversion branch in priority.

     

    Now how we stand on this.

    We could improve flushing some invalid data and add some tick check to prevent doing same action too fast.

    If you using a non legitimate client you wont have a valid session recorded on serv and will be flushed really fast so it's "better" to enter and send a big chunk after.

    Now for encryption is very simple to merge most of it, only issue is do we want to support many key at once ? Cause we currently support multiple-client at once (partially working, incoming 100% outgoing 60%), we would need to attach a key to each version, just like we attach a date anyway.

    • Upvote 1
  4. Just a note Herc did some update in their system after that diff so it would need to be updated with new herc stuff before being ported.

    The more versatile thing is kinda same actually, I said it would require src edit in my previous post for our current thing but mapzone thing as well would required. once it's done you playing with the zone as you wich but you need to do the handler 1st.

    I'd go for a systeme or another.

    A pro is that you can do inheritage.

    A cons is taht adding remove in runtime is more difficult.

  5. You can run tools/config.pl to fix that for you if you have perl, otherwise from the console it seem he trying to connect with "ragnarok_" as username and not "ragnarok" are you sure you didn't put userid "ragnarok_" into an import file ?

     

    ps : we do not support Judas modified emulator if is that you're running.

  6. Hmmm ye, it's because map and char server shared that structure and transmit it on some action to stay sync.

    This allow perseverence but also multimap support.

    Now from what you quote, you don't have much field so I presume it's  tab that increase it that much. Guess is that MAX_STORAGE or MAX_INVENTORY is a bit too big.

    If you want to keep t that big, you could still do something like mmo_charstorage and move out related field into it. Then you have to check more or less when the previous mo_charstatus was exchanging data and transmit your new struct into a new packet arround the same event. Be carefull of race condition if so.

    • Upvote 1
  7. @Antares, I look you converter quickly but you need to escape string.

    eg :

    REPLACE INTO `item_db_re` VALUES (528,'Monster\'s_Feed','Monster\'s Feed',0,60,NULL,150,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'itemheal rand(72,108),0;',NULL,NULL);

    or

    REPLACE INTO `item_db_re` VALUES (1824,'BF_Knuckle2','Brave Battle Fist',4,20,NULL,0,'30',NULL,1,0,0x00008100,7,2,2,3,'80',1,12,'bonus bStr,2; bonus bInt,1; bonus2 bAddRace,RC_DemiHuman,95; bonus2 bVariableCastrate,"MO_EXTREMITYFIST",-25; autobonus "{ bonus2 bVariableCastrate,\\\"MO_EXTREMITYFIST\\\",-100; }",50,6000,BF_WEAPON,"{ specialeffect2 EF_SUFFRAGIUM; }"; bonus bUnbreakableWeapon,0;',NULL,NULL);

    Otherwise there minor stuff like you completly discarding comments //, dunno if wouldn't be better to turn them into sql comment #, no leaning and trailing white space removal.

    But in other hand is more flexible as he can convert all atm.

  8. --table is optional =),

    is just to specify wich name you want for the table like --table=item_db2 will create the sql "struct" and "replace into" for item_db2 as target.

    If not specifyed like :

    "item_db.pl --i=item_db.txt --o=item_db_re.sql --t=re"

    the default "item_db_re" will be used as tablename.

     

    @Euphy

    if( $sHelp ) {
                    print "ERROR: Incorect option specified. Available options:\n"
    
    This is actually not always an error as you could have asked what option are present with :

    "item_db.pl --help"

    to print out this help menu.

     

    For the default columns idk if you want and if we should add another option to either use the one defined in the script or just full with NULL ex:

    "item_db.pl --i=item_db.txt --o=item_db_re.sql --t=re --d=0"

    Could have turn off script default and fill all empty column with NULL.

     

    The script can be extended again to support the other database, will probably just need to declare another subtype=item/mob and declare tableformat into BuildDataForType section.

    Well this and this spliting :

    if ($ligne =~ $line_format) {
         @champ = ($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17,$18,$19,$20,$21,$22);
    }
    
    As he only support 22 columns right now.
    • Upvote 1
  9. atcommand.c:8904: warning: 'atcommand_afk' defined but not used.

    That mean like he's saying that you put that variable there but never using afterward so there was no point of having it, meaning you could remove it.

     

    battle.c: In function 'battle_SAD':
    battle.c:1705: warning: suggest parentheses around '&&' within '||'

    That a custom dunno if I could really help be he face that dilemna :

    if(a && b || c)
    so should he do "(a and B) or c", or "a and (b or c)" he's quite lost about wich condition you want and ask for clarification, (with parenthesis like this explication)

     

    atcommand.c: In function 'autoatpots_timer':
    atcommand.c:8513: warning: suggest parentheses around '&&' within '||'

    same as precedent issues.

     

    battle.c: In function 'battle_calc_misc_attack':
    battle.c:4662: warning: suggest parentheses around assignment used as truth value

    idk at all this one, try google or show the line I might see what wrong

×
×
  • Create New...