Jump to content

Playtester

Developer
  • Posts

    813
  • Joined

  • Last visited

  • Days Won

    22

Community Answers

  1. Playtester's post in Forging weapon success rate modify problem was marked as the answer   
    Maximum value is INT_MAX, so 900M should still be okay, but try to just put something like 10000 for now (100x) rate.
     
    Then you can debug here:
    } else { // Weapon Forging - skill bonuses are straight from kRO website, other things from a jRO calculator [DracoRPG] make_per = 5000 + ((sd->class_&JOBL_THIRD)?1400:sd->status.job_level*20) + status->dex*10 + status->luk*10; // Base make_per += pc_checkskill(sd,skill_id)*500; // Smithing skills bonus: +5/+10/+15 make_per += pc_checkskill(sd,BS_WEAPONRESEARCH)*100 +((wlv >= 3)? pc_checkskill(sd,BS_ORIDEOCON)*100:0); // Weaponry Research bonus: +1/+2/+3/+4/+5/+6/+7/+8/+9/+10, Oridecon Research bonus (custom): +1/+2/+3/+4/+5 make_per -= (ele?2000:0) + sc*1500 + (wlv>1?wlv*1000:0); // Element Stone: -20%, Star Crumb: -15% each, Weapon level malus: -0/-20/-30 if (pc_search_inventory(sd,ITEMID_EMPERIUM_ANVIL) > 0) make_per+= 1000; // Emperium Anvil: +10 else if (pc_search_inventory(sd,ITEMID_GOLDEN_ANVIL) > 0) make_per+= 500; // Golden Anvil: +5 else if (pc_search_inventory(sd,ITEMID_ORIDECON_ANVIL) > 0) make_per+= 300; // Oridecon Anvil: +3 else if (pc_search_inventory(sd,ITEMID_ANVIL) > 0) make_per+= 0; // Anvil: +0? if (battle_config.wp_rate != 100) make_per = make_per * battle_config.wp_rate / 100; } Here you can check what make_per is before wp_rate is applied and after.
  2. Playtester's post in Offline server to Online server was marked as the answer   
    I won't give you a full guide but in general it's pretty easy:
     
    1. Modify your router to forward the ports you use for RO to the computer you are using to run the server software on.
    2. Make sure that computer has a fixed IP.
    3. Set up IP and correct subnet in the conf files.
    4. Tell your friends your external IP or give them an appropriate clientinfo.xml file.
    5. ???
    6. Profit
  3. Playtester's post in Cast Sensor Flag Monster Not Sensing Cast was marked as the answer   
    Was a bug on rAthena, I've fixed it now.
     
    https://github.com/rathena/rathena/commit/63e8fa0721ea8acf7a533517641a2f693e2e3a65
  4. Playtester's post in Maximum Job/Base Level issues was marked as the answer   
    You need to either put the required exp values you want for levels above the official level or use the premade import file I prepared. After compile it should automatically be available in your import folder and look like this:
    https://github.com/rathena/rathena/blob/master/db/import-tmpl/job_exp.txt
     
    Follow the instruction at the top of the file.
  5. Playtester's post in Reduce Grand Cross damage to self. was marked as the answer   
    Most of the skill's damage come from the cast cost, though.
     
    https://github.com/rathena/rathena/blob/master/db/pre-re/skill_require_db.txt
     
    // SkillID,HPCost,MaxHPTrigger,SPCost,HPRateCost,[...]
    254,0,0,37:44:51:58:65:72:79:86:93:100,20,0,0,99,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //CR_GRANDCROSS
  6. Playtester's post in How to fix bug idun & bragi 3minute was marked as the answer   
    If you mean the @duel exploit, the fix is here: https://github.com/rathena/rathena/commit/c6ed8a4f92a143eca9ddc1c2161f88c1db9f70f4
  7. Playtester's post in Mob Conditions was marked as the answer   
    Yeah put the skill ID you want the monster to react to as value.
    1087,Orc Hero@MG_THUNDERSTORM,chase,21,20,10000,1500,5000,no,target,skillused,18,,,,,,, Like this means that Orc Hero will counter "Firewall" with the ranged skill "Thunder Storm".
  8. Playtester's post in HELP skil_damage_db & asura strike damage cap was marked as the answer   
    Just don't use skill_damage_db then. It's harder to reorganize it to be applied first than it is to just put whatever damage code you want for your server in battle.c.
     
    Basically you just want to half the damage for players but before you cap the damage, right?
     
    So in battle.c:

    case MO_EXTREMITYFIST: skillratio += 100 * (7 + sstatus->sp / 10); skillratio = min(500000,skillratio); //We stop at roughly 50k SP for overflow protection break;Just change it to e.g.
    case MO_EXTREMITYFIST: skillratio += 100 * (7 + sstatus->sp / 10); if (tsd) skillratio /= 2; //Half damage for players skillratio = min(500000,skillratio); //We stop at roughly 50k SP for overflow protection break;
  9. Playtester's post in Unknown column was marked as the answer   
    From the error message I'd expect it to look in a table named "picklog" for the column.
     
    Did you create the log tables with logs.sql?
     
    https://github.com/rathena/rathena/blob/master/sql-files/logs.sql
     
    If you already have those then you probably missed an upgrade. You actually need to execute all SQL files in the upgrades folder: https://github.com/rathena/rathena/tree/master/sql-files/upgrades
     
    At least all that were added after you've created your database.
  10. Playtester's post in db/pre-re/job_db1.txt HP factor and HP aliments doesn't effect my server was marked as the answer   
    Why so complicated?
     
    Just go to src/config/core.h and comment the following line:
     
    /// Uncomment to enable the job base HP/SP table (job_basehpsp_db.txt)
    #define HP_SP_TABLES
     
    Then it uses job_db1.txt instead of the tables.
  11. Playtester's post in What is it? I never see this warning before... was marked as the answer   
    src/config/core.h
     
    #define HP_SP_TABLES
  12. 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.
  13. 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.
  14. 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;
  15. 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".
  16. 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.
  17. 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.
  18. 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); }
  19. 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.
  20. 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; }
  21. 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.
  22. 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.
  23. 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).
  24. Playtester's post in Stop Monsters Spawning on a Map was marked as the answer   
    Why not just remove them from the spawn files?
  25. 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;
×
×
  • Create New...