Jump to content

Playtester

Developer
  • Posts

    765
  • Joined

  • Last visited

  • Days Won

    19

Community Answers

  1. Playtester's post in Should I worry about this? pc_readdb_job_basehpsp: HP value . . . . . was marked as the answer   
    It's rather normal as some classes really get less HP/SP on level up from 99 to 100. Super Novice for example has 109 SP at level 99, but 100 SP at level 100.
    Most of the warnings you get above should only occur if you have increased the normal max level, though! For example if you have the Gangsi class implemented on your server and allow it to level above level 99, you might want to adjust the tables to support higher level HP/SP.
  2. Playtester's post in Emulador Episode Encounter With the Unknown was marked as the answer   
    In other words you just need to enable the PRERE define.
    Here: https://github.com/rathena/rathena/blob/master/src/config/renewal.h
    It could be that you need to move some NPC positions as well as warp-in points depending on the client version you use. And maybe even make sure the grf map layout fits to the version. Most places that often bug out are Izlude and Morroc as they got changed frequently.
  3. Playtester's post in Having problems with this src code was marked as the answer   
    I'm not sure what you want to do with that.
    But the error is just as it says, the object "state" has no variable "botcheck".
    Everything sd can contain is defined in pc.h:
    https://raw.githubusercontent.com/rathena/rathena/master/src/map/pc.h

    struct s_state { unsigned int active : 1; //Marks active player (not active is logging in/out, or changing map servers) unsigned int menu_or_input : 1;// if a script is waiting for feedback from the player unsigned int dead_sit : 2; unsigned int lr_flag : 3;//1: left h. weapon; 2: arrow; 3: shield unsigned int connect_new : 1; unsigned int arrow_atk : 1; unsigned int gangsterparadise : 1; unsigned int rest : 1; unsigned int storage_flag : 2; //0: closed, 1: Normal Storage open, 2: guild storage open [Skotlex] unsigned int snovice_dead_flag : 1; //Explosion spirits on death: 0 off, 1 used. unsigned int abra_flag : 2; // Abracadabra bugfix by Aru unsigned int autocast : 1; // Autospell flag [Inkfish] unsigned int autotrade : 1; //By Fantik unsigned int reg_dirty : 4; //By Skotlex (marks whether registry variables have been saved or not yet) unsigned int showdelay :1; unsigned int showexp :1; unsigned int showzeny :1; unsigned int noask :1; // [LuzZza] unsigned int trading :1; //[Skotlex] is 1 only after a trade has started. unsigned int deal_locked :2; //1: Clicked on OK. 2: Clicked on TRADE unsigned int monster_ignore :1; // for monsters to ignore a character [Valaris] [zzo] unsigned int size :2; // for tiny/large types unsigned int night :1; //Holds whether or not the player currently has the SI_NIGHT effect on. [Skotlex] unsigned int blockedmove :1; unsigned int using_fake_npc :1; unsigned int rewarp :1; //Signals that a player should warp as soon as he is done loading a map. [Skotlex] unsigned int killer : 1; unsigned int killable : 1; unsigned int doridori : 1; unsigned int ignoreAll : 1; unsigned int debug_remove_map : 1; // temporary state to track double remove_map's [FlavioJS] unsigned int buyingstore : 1; unsigned int lesseffect : 1; unsigned int vending : 1; unsigned int noks : 3; // [Zeph Kill Steal Protection] unsigned int changemap : 1; unsigned int callshop : 1; // flag to indicate that a script used callshop; on a shop short pmap; // Previous map on Map Change unsigned short autoloot; unsigned short autolootid[AUTOLOOTITEM_SIZE]; // [Zephyrus] unsigned short autoloottype; unsigned int autolooting : 1; //performance-saver, autolooting state for @alootid unsigned int autobonus; //flag to indicate if an autobonus is activated. [Inkfish] unsigned int gmaster_flag : 1; unsigned int prevend : 1;//used to flag wheather you've spent 40sp to open the vending or not. unsigned int warping : 1;//states whether you're in the middle of a warp processing unsigned int permanent_speed : 1; // When 1, speed cannot be changed through status_calc_pc(). unsigned int hold_recalc : 1; unsigned int banking : 1; //1 when we using the banking system 0 when closed unsigned int hpmeter_visible : 1; unsigned disable_atcommand_on_npc : 1; //Prevent to use atcommand while talking with NPC [Kichi] } state;
  4. Playtester's post in How to Fix ? fatal error LNK1123: failure during conversion to COFF: file invalid or corrupt" was marked as the answer   
    I have exactly the same problem and couldn't really solve it in VS 2010.
     
    Luckily this only prevents you from compiling in Debug mode, you can still compile in Release mode. Just find the combo box with "Debug" in it and change it to "Release".
  5. Playtester's post in Last Git - Warning Issues - How to Fix it? was marked as the answer   
    "Unused variable" warnings can easily be fixed by simply removing the variable declarations. It tells you the file and the line.
  6. Playtester's post in Help with changing Pnuema duration was marked as the answer   
    Well the server uses the time defined there, so the protection should stop after 7 seconds which your change.
     
    Is it just the animation? Then I guess you'd need to modify the animation itself on the client.
  7. Playtester's post in Taekwon No Level Buff was marked as the answer   
    It works fine in the current Git version you can get from:
    https://github.com/rathena/rathena
    You can find the bonus in pc.c in function pc_checkbaselevelup:

    } else if( (sd->class_&MAPID_BASEMASK) == MAPID_TAEKWON ) { sc_start(&sd->bl,&sd->bl,status_skill2sc(AL_INCAGI),100,10,600000); sc_start(&sd->bl,&sd->bl,status_skill2sc(AL_BLESSING),100,10,600000); }
  8. Playtester's post in How to skill ignore DEF was marked as the answer   
    You need to sum it up in a hexidezimal way. It's easier like that because each digit is NOT influenced by other digits.
     
    It goes like this:
    0-9
    A - 10
    B - 11
    C - 12
    D - 13
    E - 14
    F - 15
     
    0x80 + 0x10 = 0x90
     
    If you have:
    0x80 + 0x08 + 0x02 you can split that into:
     
    First digit: 0x80 (8)
    Second digit: 0x08 (8) + 0x02 (2) = 0x0A (10)
     
    Then combine it together: 0x8A
     
    0x just means "the following number is in a hexadecimal system" rather than the decimal system most humans use.
  9. Playtester's post in how to Increase Damage Taken From Specific element while wearing the specific Equip was marked as the answer   
    { bonus2 bSubEle,Ele_Wind,50; bonus2 bSubEle,Ele_Earth,-50; }
  10. Playtester's post in amplify magic power was marked as the answer   
    Most ATK/DEF stat changes are not actually visible in the character window, make sure it's not increased by comparing the damage.
  11. Playtester's post in 1 vit = ? HP was marked as the answer   
    Right now each Vit increases HP by 1%.
     
    In status.c:
    status_calc_maxhpsp_pc  
    Find:
    max = job_info[idx].base_hp[level-1] * (1 + (max(stat,1) * 0.01)) * ((sd->class_&JOBL_UPPER)?1.25:1);  
    If you want to double the effect of vit you need to change the 0.01 to 0.02.
  12. Playtester's post in Limiting Item Drop was marked as the answer   
    Easiest solution would be to just make the ticket unstoreable and then let the NPC delete all tickets regardless of how many tickets the player has. That's effectively the same and doesn't require source code edits.
     
    If you want to do it so that even on share parties the item always goes to someone who hasn't gotten it yet, then you need to code some algorithm for that in party.c:
    int party_share_loot(struct party_data* p, struct map_session_data* sd, struct item* item_data, int first_charid) That's the best place to put it, you have all the info you need (struct item* item_data contains information about the item so you can check if it's your item).
  13. Playtester's post in Stop Monsters Spawning on a Map was marked as the answer   
    Why not just remove them from the spawn files?
  14. Playtester's post in Reduce damage was marked as the answer   
    Number of hits is handled in the skill_db.txt: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk/db/pre-re/skill_db.txt
    469,9,8,1,-2,0,0,10,1:2:3:4:5:6:7:8:9:10,yes,0,0,0,magic,0,    SL_SMA,Esma
    But damage of each hit is handled in battle.c: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk/src/map/battle.c
                        case SL_SMA:
                            skillratio += -60 + status_get_lv(src); //Base damage is 40% + lv%
                            break;
  15. Playtester's post in adjusting the success rate of socket enchant was marked as the answer   
    "100,100" would be mean between 100 and 100 which is 0%.
     
    If you do not change the thing Emistry did, then you can achieve 100% success by doing this:
     
     case 1: callfunc "Func_Socket",1460,1461,0,101,200,1010,10;
     
     
    An easier way is to just change the if to something that is always true like "if(1)" or "if(true)" (not sure if that works in scripts, though).
  16. Playtester's post in Base and Job Exp was marked as the answer   
    On renewal, it's normal that your job level increases faster than your base level. On pre-renewal it's not.
  17. Playtester's post in Item Script <job> ONLY was marked as the answer   
    Well not familiar with tools myself, but getting the correct code is fairly easy, all jobs usually looks like this:
    0xFFFFFFFF,7
    Now you just gotta check the file in the documentation which is here: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk/doc/item_db.txt
    High Wizard only (wizard+trans) would be: 0x00000200,2
    Paladin only (Crusader+trans) would be: 0x00004000,2
    You can also combine the classes by adding them together, for example High Wizard and Paladin would be: 0x00004200,2
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use and Privacy Policy.