-
Posts
103 -
Joined
-
Last visited
Content Type
Profiles
Forums
Downloads
Jobs Available
Server Database
Third-Party Services
Top Guides
Store
Crowdfunding
Everything posted by mawjustin
-
Hi Team, Good day. May I ask for assistance regarding this matter? I can't seem to make this work in the latest rAthena. I keep on stumbling on this error, MAX_ITEMID. Thanks in advance.
-
Hi Team, Good day. May I request for a script in which a GM will talk to the NPC, then input the Item Code as donation everyday, then all the list from the previous days will be on record, so players can still buy the donation, the list will cover up to 30 days maximum. Thank you. Same with Daily Reward, but in reverse, we add the Item code today, and it will still be available tomorrow for donation.
-
Is it possible to do this? Like for example, if you have a STR random option and ATK random option, you will get a hidden random option effect (Ignore Def) (This is similar to Ragnarok Mobile). I understand that this might be similar as to how we set a Deadly Card Combo, but can we do it in like per item instead in per whole equipped items? Thanks in advance.
-
@Royr thank you for this brother.
-
Hi guys, may I ask for help regarding this matter? How do we display details (similar to right-clicking a card) of a card while the link is displayed in the npc, I'm making a custom info display of customized cards. prontera,149,184,5 script Helper 811,{ mes "<URL>"+getitemname(4001)+"<INFO>"+getitemname(4001)+"</INFO></URL>"; close; } Is there a way to do this? when I click the url in the npc, it will display the details of the item or card? (similar to viewing it in the inventory)
-
Thank you! this all make sense now.
-
Hi Team, May I ask for assistance on this concern? In my db/re/mob_db.txt this is my Osiris. 1038,OSIRIS,Osiris,Osiris,68,475840,1,245520,200880,1,1980,1503,172,164,97,99,86,131,145,67,10,12,1,1,89,0x6283695,100,1072,672,384,122760,751,500,603,4000,608,3000,617,2000,1232,150,2235,200,1255,600,1009,1000,5053,150,1285,100,0,0,0,0,4144,1 But all of it is not showing. MVP Items is only showing Osiris Doll. Where it should give OBB, YGG Seed and Osiris Doll. This is my conf/battle/drops.conf //-------------------------------------------------------------- // rAthena Battle Configuration File // Originally Translated by Peter Kieser <[email protected]> // Made in to plainer English by Ancyker //-------------------------------------------------------------- // Note 1: Value is a config switch (on/off, yes/no or 1/0) // Note 2: Value is in percents (100 means 100%) //-------------------------------------------------------------- // If an item is dropped, does it go straight into the user's inventory? (Note 1) item_auto_get: no // How long does it take for an item to disappear from the floor after it is dropped? (in milliseconds) flooritem_lifetime: 60000 // Grace time during which only the person who did the most damage to a monster can get the item? (in milliseconds) item_first_get_time: 3000 // Grace time during which only the first and second person who did the most damage to a monster can get the item? (in milliseconds) // (Takes effect after item_first_get_time elapses) item_second_get_time: 1000 // Grace time during which only the first, second and third person who did the most damage to a monster can get the item? (in milliseconds) // (Takes effect after the item_second_get_time elapses) item_third_get_time: 1000 // Grace time to apply to MvP reward items when the Most Valuable Player can't get the prize item and it drops on the ground? (in milliseconds) mvp_item_first_get_time: 10000 // Grace time for the first and second MvP so they can get the item? (in milliseconds) // (Takes effect after mvp_item_first_get_time elapses) mvp_item_second_get_time: 10000 // Grace time for the first, second and third MvP so they can get the item? (in milliseconds) // (Takes effect after mvp_item_second_get_time elapses) mvp_item_third_get_time: 2000 // Item drop rates (Note 2) // The rate the common items are dropped (Items that are in the ETC tab, besides card) item_rate_common: 2500 item_rate_common_boss: 2500 item_rate_common_mvp: 2500 item_drop_common_min: 1 item_drop_common_max: 10000 // The rate healing items are dropped (items that restore HP or SP) item_rate_heal: 2500 item_rate_heal_boss: 2500 item_rate_heal_mvp: 2500 item_drop_heal_min: 1 item_drop_heal_max: 10000 // The rate at which usable items (in the item tab) other then healing items are dropped. item_rate_use: 2500 item_rate_use_boss: 2500 item_rate_use_mvp: 2500 item_drop_use_min: 1 item_drop_use_max: 10000 // The rate at which equipment is dropped. item_rate_equip: 2500 item_rate_equip_boss: 2500 item_rate_equip_mvp: 2500 item_drop_equip_min: 1 item_drop_equip_max: 10000 // The rate at which cards are dropped item_rate_card: 2500 item_rate_card_boss: 2500 item_rate_card_mvp: 2500 item_drop_card_min: 1 item_drop_card_max: 100000 // The rate adjustment for the MVP items that the MVP gets directly in their inventory // Mode: 0 - official order, 1 - random order, 2 - all items item_rate_mvp: 2500 item_drop_mvp_min: 1 item_drop_mvp_max: 10000 item_drop_mvp_mode: 0 // The rate adjustment for card-granted item drops. item_rate_adddrop: 2500 item_drop_add_min: 1 item_drop_add_max: 10000 // Rate adjustment for Treasure Box drops (these override all other modifiers) item_rate_treasure: 2500 item_drop_treasure_min: 1 item_drop_treasure_max: 1000 // Use logarithmic drops? (Note 1) // Logarithmic drops scale drop rates in a non-linear fashion using the equation // Droprate(x,y) = x * (5 - log(x)) ^ (ln(y) / ln(5)) // Where x is the original drop rate and y is the drop_rate modifier (the previously mentioned item_rate* variables) // Use the following table for an idea of how the rate will affect drop rates when logarithmic drops are used: // Y: Original Drop Rate // X: Rate drop modifier (eg: item_rate_equip) // X\Y | 0.01 0.02 0.05 0.10 0.20 0.50 1.00 2.00 5.00 10.00 20.00 // -----+--------------------------------------------------------------- // 50 | 0.01 0.01 0.03 0.06 0.11 0.30 0.62 1.30 3.49 7.42 15.92 // 100 | 0.01 0.02 0.05 0.10 0.20 0.50 1.00 2.00 5.00 10.00 20.00 // 200 | 0.02 0.04 0.09 0.18 0.35 0.84 1.61 3.07 7.16 13.48 25.13 // 500 | 0.05 0.09 0.22 0.40 0.74 1.65 3.00 5.40 11.51 20.00 33.98 // 1000 | 0.10 0.18 0.40 0.73 1.30 2.76 4.82 8.28 16.47 26.96 42.69 // 2000 | 0.20 0.36 0.76 1.32 2.28 4.62 7.73 12.70 23.58 36.33 53.64 // 5000 | 0.50 0.86 1.73 2.91 4.81 9.11 14.45 22.34 37.90 53.91 72.53 //10000 | 1.00 1.67 3.25 5.28 8.44 15.24 23.19 34.26 54.57 72.67 91.13 //20000 | 2.00 3.26 6.09 9.59 14.83 25.49 37.21 52.55 77.70 97.95 100% //50000 | 5.00 7.87 13.98 21.12 31.23 50.31 69.56 92.48 100% 100% 100% item_logarithmic_drops: no // Can the monster's drop rate become 0? (Note 1) // Default: no (as in official servers). drop_rate0item: no // Increase item drop rate +0.01%? (Note 1) // On official servers it is possible to get 0.00% drop chance so all items are increased by 0.01%. // NOTE: This is viewed as a bug to rAthena. // Default: no drop_rateincrease: no // Makes your LUK value affect drop rates on an absolute basis. // Setting to 100 means each luk adds 0.01% chance to find items // (regardless of item's base drop rate). drops_by_luk: 0 // Makes your LUK value affect drop rates on a relative basis. // Setting to 100 means each luk adds 1% chance to find items // (So at 100 luk, everything will have double chance of dropping). drops_by_luk2: 0 // The rate of monsters dropping ores by the skill Ore Discovery (Default is 100) finding_ore_rate: 100 // Whether or not Marine Spheres and Floras summoned by Alchemist drop items? // This setting has three available values: // 0: Nothing drops. // 1: Only marine spheres drop items. // 2: All alchemist summons drop items. alchemist_summon_reward: 1 // Make broadcast ** Player1 won Pupa's Pupa Card (chance 0.01%) *** // This can be set to any value between 0~10000. // Note: It also announces STEAL skill usage with rare items // 0 = don't show announces at all // 1 = show announces for 0.01% drop chance items // 333 = show announces for 3.33% or lower drop chance items // 10000 = show announces for all items rare_drop_announce: 500 // Does autoloot take into account player bonuses and penalties? (Note 1) // If RENEWAL_DROP, Bubble Gum, or any other modifiers are active autoloot // will take them into account. autoloot_adjust: 0 Thank you.
-
Q> What are the best mob/loots for quests?
mawjustin replied to mawjustin's topic in rAthena General
Thank you! -
Q> What are the best mob/loots for quests?
mawjustin replied to mawjustin's topic in rAthena General
this is good.. ill add this.. thanks! -
Q> What are the best mob/loots for quests?
mawjustin replied to mawjustin's topic in rAthena General
aside from these?? I'm using them right now. hehe -
May I ask for mobs and loots suggestions for quest aside from the rare ores? (biotite, phologphite, etc.) I'm looking for mobs that have a low respawn rate, or there are only 5-10 of them in each map. Thank you in advance!
-
Thank you! it works! I just did a bit of modification to align with my server. @Emistry sir, I did some changes in your file, how do we implement this? jupe_ele,38,50,5 script Tollere#1 4_F_KAFRA1,{ // // THIS WILL READ ALL THE ITEMS AVAILABLE, INCLUDING SHADOW EQUIPMENT for ([email protected] = EQI_SHOES; [email protected] <= EQI_SHADOW_ACC_L; [email protected]++) { [email protected]_id = getequipid([email protected]); if ([email protected]_id > 0) [email protected]$ = [email protected]$ + getitemname([email protected]_id) + " ["+getitemslots([email protected]_id)+"]"; [email protected]$ = [email protected]$ + ":"; } mes .npc_n$; mes "Hello Adventurer!"; mes "my name is Tollere "; mes "I specialize in removing ^006600Enchantment^000000 and ^006600Random Option^000000"; mes "using ^FF0000"+getitemname(.itemid)+"^000000."; mes "which process do you need?"; // RESET ENCHANTMENT = REMOVE STONE/ORBS ON CARD SLOT, BUT RETAIN RANDOM OPTION // RANDOM OPTION REMOVAL = REMOVE RANDOM OPTION, BUT RETAIN THE ORBS/STONE ON CARD SLOT if (select("Reset Enchantment","Random Option Removal") == 1) { next; mes "Select an equipment for"; mes "^006600Enchant Removal^000000"; [email protected] = select([email protected]$) - 1 + EQI_SHOES; mes "Equip: "+getitemname(getequipid([email protected])); if (.itemid_size) { mes "Required Items:"; for ([email protected] = 0; [email protected] < .itemid_size; [email protected]++) { mes " -> "+F_InsertComma(.amount[[email protected]])+"x "+getitemname(.itemid[[email protected]]); if (countitem(.itemid[[email protected]]) < .amount[[email protected]]) [email protected]++; } } if ([email protected]) { if (select("Reset Enchantment", "Cancel") == 1) { for([email protected]=0;[email protected]<(MAX_ITEM_RDM_OPT-0);[email protected]++){ [email protected]_id[[email protected]] = getequiprandomoption(.s_all_loc[[email protected]],[email protected],ROA_ID); [email protected]_v[[email protected]] = getequiprandomoption(.s_all_loc[[email protected]],[email protected],ROA_VALUE); [email protected]_p[[email protected]] = getequiprandomoption(.s_all_loc[[email protected]],[email protected],ROA_PARAM); } for ([email protected] = 0; [email protected] < .itemid_size; [email protected]++) delitem .itemid[[email protected]], .amount[[email protected]]; [email protected]_id = getequipid([email protected]); [email protected] = getequiprefinerycnt([email protected]); for ([email protected] = 0; [email protected] < 4; [email protected]++) [email protected][[email protected]] = getequipcardid([email protected], [email protected]); delequip [email protected]; //getitem2 [email protected]_id, 1, 1,[email protected],0,0,0,0,0; getitem3 [email protected]_id, 1, 1, [email protected], 0, 0, 0, 0, 0,[email protected]_id,[email protected]_v,[email protected]_p; getitem [email protected][0],1; getitem [email protected][1],1; getitem [email protected][2],1; getitem [email protected][3],1; mes "Done Reset Enchantment."; } } close; } else { next; mes "Select an equipment for"; mes "^006600Random Option Removal^000000"; [email protected] = select([email protected]$) - 1 + EQI_SHOES; mes "Equip: "+getitemname(getequipid([email protected])); if (.itemid_size) { mes "Required Items:"; for ([email protected] = 0; [email protected] < .itemid_size; [email protected]++) { mes " -> "+F_InsertComma(.amount[[email protected]])+"x "+getitemname(.itemid[[email protected]]); if (countitem(.itemid[[email protected]]) < .amount[[email protected]]) [email protected]++; } } if ([email protected]) { if (select("Random Option Removal", "Cancel") == 1) { for ([email protected] = 0; [email protected] < .itemid_size; [email protected]++) delitem .itemid[[email protected]], .amount[[email protected]]; [email protected]_id = getequipid([email protected]); [email protected] = getequiprefinerycnt([email protected]); for ([email protected] = 0; [email protected] < 4; [email protected]++) [email protected][[email protected]] = getequipcardid([email protected], [email protected]); delequip [email protected]; getitem2 [email protected]_id, 1, 1,[email protected],0,[email protected][0],[email protected][1],[email protected][2],[email protected][3]; mes "Done Random Option Removal."; } } close; } close; OnInit: .npc_n$ = "[^4B0082 Tollere ^000000]"; // NPC Name. setarray .itemid, 60002; setarray .amount, 1; .itemid_size = getarraysize(.itemid); end; } My goal for this is 1. Reset Enchantment = will remove and put the orbs/stones into the inventory in all card slot of the item, but will retain the Random Option 2. Random Option Removal = will remove the random option, but will retain the orb/stone in card slot. Is there a way to do it like my goal??
-
Thank you, I'll test this out. EDIT @Patskie it's not giving rewards..
-
May I ask for assistance on how to limit Bounty Hunter Abuse? This script is from @deathscythe13 Player can only be listed in bounty 1x a day. Kill Streak must be unique Player ID. Or Set timer per kill for the same ID. //made by deathscythe13 - script Bounty -1,{ OnInit: set $wantedlistlength,10; // bounty length set .rewarditem, 50000; //reward item id set .killstreak, 10; // kill streak before gets to bounty end; OnPCKillEvent: [email protected]$,[email protected],[email protected],0; if(getcharid(3)==killedrid) end; //if([email protected]$ != "guild_vs5") end; for(set [email protected],0; [email protected] < $wantedlistlength && rid2name(killedrid)!=$wantedlist$[[email protected]]; set [email protected], [email protected]+1); if([email protected] < $wantedlistlength && rid2name(killedrid)==$wantedlist$[[email protected]]) { set [email protected] , 3 - ([email protected]); // amount of reward (i dunnoe the calc sorry) getitem .rewarditem,[email protected]; dispbottom "You have killed a bounty!"; for(set [email protected],[email protected]; [email protected] < $wantedlistlength; set [email protected], [email protected]+1) { set $wantedlist$[[email protected]], $wantedlist$[[email protected]+1]; set $wantedliststreak[[email protected]], $wantedliststreak[[email protected]+1]; } announce rid2name(killedrid)+" has been removed in the bounty list!",0; } else { set killerstreak, killerstreak+1; dispbottom "Kill Streak: "+killerstreak; } if(killerstreak >= .killstreak) { for(set [email protected], 0; [email protected] < $wantedlistlength && $wantedliststreak[[email protected]] > killerstreak; set [email protected], [email protected]+1); if([email protected] < $wantedlistlength && killerstreak >= $wantedliststreak[[email protected]]) { for(set [email protected] ,0; [email protected] < $wantedlistlength && $wantedlist$[[email protected]]!=strcharinfo(0); set [email protected], [email protected]+1); if([email protected] < $wantedlistlength && $wantedlist$[[email protected]]==strcharinfo(0)) { for(set [email protected], [email protected]; [email protected] < $wantedlistlength; set [email protected], [email protected]+1) { set $wantedlist$[[email protected]], $wantedlist$[[email protected]+1]; set $wantedliststreak[[email protected]], $wantedliststreak[[email protected]+1]; } } for(set [email protected], ($wantedlistlength-1); [email protected] > [email protected] ; set [email protected], [email protected]) { set $wantedlist$[[email protected]], $wantedlist$[[email protected]]; set $wantedliststreak[[email protected]], $wantedliststreak[[email protected]]; } announce strcharinfo(0)+" is now in bounty list top "+([email protected]+1)+"!",0; set $wantedlist$[[email protected]], strcharinfo(0); set $wantedliststreak[[email protected]], killerstreak; } } attachrid(killedrid); if(killerstreak) { set killerstreak, 0; dispbottom "Your streak has been reset because you died!"; } end; } moc_para01,48,179,3 script Wanted List 837,{ mes "[^4B0082 Wanted List ^000000]"; mes "Announcement:"; mes "This is the current Wanted List."; mes "Anyone who can kill any of these"; mes "people will be reward with "+getitemname(50000)+""; next; mes "[^4B0082 Wanted List ^000000]"; mes "Current Wanted List"; mes ""; for (set [email protected],0; [email protected] < $wantedlistlength; set [email protected], [email protected]+1) { set [email protected], [email protected]+1; mes [email protected]+".) "+$wantedlist$[[email protected]]+" Streak: "+$wantedliststreak[[email protected]]; } next; mes "[^4B0082 Wanted List ^000000]"; mes "Happy hunting."; close; }
-
Similar Race of the Day, may I ask for Monster of the Day? A specific monster with increased XP, gives zeny, and custom item drop, similar to Race of the Day.
-
Hi guys, may I ask for a script that removes all Random Option of an item in exchange for a certain item? Thanks!
-
Thank you for the answers guys, this had me thinking about this. I will look for a way to implement this properly.
-
I want the players to use zeny as main mode of trading, instead of directly using Proof of Donation as main currency. I'm following this concept. Check at 5:02
-
Is there a possibility to do this? Make an item account bound, which in essence cannot be traded, or stored in guild storage, but can be vended. I'm trying to materialize a flow like this: 1. Buy proof of donation 2. Proof of donation is Account Bound. 3. Proof of donation Cannot be traded. 4. But, Proof of donation can be vended using Vend skill. I'm trying to force players into using zeny as the main currency and avoid using Proof of donation as main currency.
-
But it does not allow vend. what I need is for it to be vendable, but not tradeable and dropable.
-
Hello guys, I set my item in item_trade.txt as this: 50000,459,100 // Cash Coin It can't be dropped, traded, etc. but it can be stored in vend, unfortunately I can't vend it either. i understand that in item_trade.txt there's : // 2 - item can't be traded (nor vended) // 16 - item can't be placed in the cart so I set it to cant be tradable but can be placed in cart. Is there a way for us to somewhat bypass vend restriction when you have a certain item in your inventory? So it will make a Non-tradable, but Vendable item? Thanks.
-
Can we separate PK Points and PVP Points? This is the PVP Points that I have. - script PVPPOINTS -1,{ OnPCKillEvent: [email protected]$,[email protected],[email protected],0; if(getcharid(3)==killedrid) end; if([email protected]$ != "pvp_y_1-2") end; set [email protected], getcharid(3); set [email protected], killedrid; attachrid([email protected]); set [email protected], #CASHPOINTS; if([email protected]) { set #CASHPOINTS, #CASHPOINTS - 1; dispbottom "You Lost 1 Cash Point from "+rid2name(killerrid); } emotion e_sob,1; attachrid([email protected]); if([email protected]) { set #CASHPOINTS, #CASHPOINTS + 1; dispbottom "You Gained 1 Cash Points from "+rid2name(killedrid); } else dispbottom "Sorry no cash points on the "+rid2name(killedrid); emotion e_meh,1; end; } The PVP Ladder //===== EinherjarRo Scripts ================================== //= PvP Ladder //===== Author =============================================== //= Stolao //===== Current Version: ===================================== //= 3.21 //===== Compatible With: ===================================== //= rAthena SVN //===== Description: ========================================= // Configurable Pvp Ladder //===== Comments: ============================================ //= [Stolao] //===== Additional Comments: ================================= //= 3.00 Overhaul //= 3.01 Fixed missing "No" for "No Ygg" //= 3.02 Added Show Map Name Option //= 3.03 Added Max Players Option //= 3.04 Optimized and fixed SQL queries [Secret] //= 3.05 Replaced some queries with addrid(0) //= 3.06 Updated Rewards to RODEX compatable //= 3.07 Fixed all rom referancing room [0] player limit //= 3.08 Made Made .MaxPlayers = 0, mean unlimited //= 3.09 Removed use of getd //= 3.0A Cleaned up some code //= 3.0B Moved Menu Generation to fix Map Count not showing //= 3.0C Actually Added RoDex Support now //= 3.0D Fixed Map Menu Generation //= 3.0E Fixed sql query //= 3.0F Cleaned Code a bit //= 3.10 Did more Cleaned Code a bit //= 3.11 Fixed a logic bug in GM reset //= 3.12 Added Waiting Room //= 3.13 Added Dynamic Waiting Room //= 3.14 Moved and added more At_Commands //= 3.15 Dynamic Waiting Room (&4096) require Waiting Room (&2048) to work //= 3.16 Increased Waiting Room Rotation Time //= 3.17 Fixed Typos in Reset PVP Stats //= 3.18 Removed unnessisary next, creating hang screens //= 3.19 Made compatable with new mail command //= 3.1A Reformatted Rewards in conf to support 5 items //= 3.1B Fixeda Hang when entering Nightmare PVP (thanks klesler) //= 3.1C Cied incorrrect use of close //= 3.1D Fixed Missing Party Check (thanks Haikenz) //= 3.1E Fixed Not opening PVP ladder, only GVG ladder (thanks Haikenz) //= 3.1F Fixed a warning when generating waitingroom //= 3.20 Fixed Missing Guild Check (thanks Haikenz) //= 3.21 Changed Default maps to pvp maps //===== Todo: ================================================ //= Condence repeat queries //===== Contact Ifo: ========================================= //= [Stolao] // Email: [email protected] //============================================================ moc_para01,26,14,3 script Ladder 837,{ //================================== OnPvpLadder: //-- Menus //================================== [email protected] = select(((getarraysize(.MapName$))?"Enter PvP Map:":":")+ ((.Options&1)?"Pvp Ladder:":":")+ ((.Options&2)?"GvG Ladder:":":")+ ((.Options&8)?"Top Guild:":":")+ ((.Options&16)?"PvP Shops:":":")+ ((.Options&1 || .Options&2 || .Options&8 || .Options&16)?"Personal Stats:":":")+ ((getgmlevel() >= 99)?"Reset PVP Stats":"")); switch([email protected]){ case 2: case 3: if([email protected] == 2){ if(.Options&384) [email protected]$ = "m_kda"; else if(.Options&256) [email protected]$ = "kda"; else if(.Options&128) [email protected]$ = "m_pkcount"; else [email protected]$ = "pl_pkcount"; } else { if(.Options&384) [email protected]$ = "gvg_kda"; else if(.Options&256) [email protected]$ = "m_gvg_kda"; else if(.Options&128) [email protected]$ = "m_gvg_kcount"; else [email protected]$ = "gvg_kcount"; } query_sql("SELECT `char_reg_num`.`value`,`char`.`name`,`char`.`char_id` FROM `char` INNER JOIN `char_reg_num` ON `char_reg_num`.`char_id`=`char`.`char_id` WHERE `char_reg_num`.`key`='" + [email protected]$ + "' ORDER BY `char_reg_num`.`value` DESC LIMIT 10",[email protected],[email protected]$,[email protected]); if(!(.Options&256)){ for([email protected] = 0; [email protected] < getarraysize([email protected]); [email protected]++) { if([email protected] == 2){ if(.Options&128) [email protected]$ = "m_dthcount"; else [email protected]$ = "pl_dthcount"; } else if(.Options&128) [email protected]$ = "m_gvg_dcount"; else [email protected]$ = "gvg_dcount"; query_sql("SELECT CAST(`value` AS SIGNED) FROM `char_reg_num` WHERE char_id = "[email protected][[email protected]]+" AND `key` = '';",[email protected]); [email protected][[email protected]] = [email protected]; } } mes "~ ^990000"+((.Options&128)?"Monthly ":"") + (([email protected] == 2)?"PvP":"GvG") +" Ladder^000000 ~"; if (!getarraysize([email protected])){ mes "The rankings are empty."; } else { for([email protected] = 0; [email protected]<getarraysize([email protected]); [email protected]++){ if(([email protected]+1) % 10 != 0){ if(.Options&256) mes "#"+([email protected]+1)+" ^0000FF"[email protected]$[[email protected]]+"^000000 "[email protected][[email protected]]; else mes "#"+([email protected]+1)+" ^0000FF"[email protected]$[[email protected]]+"^000000 [^00EE00"+callfunc("F_InsertPlural",[email protected][[email protected]],"~ kill")+"] [^EE0000"+callfunc("F_InsertPlural",[email protected][[email protected]],"~ death")+"]"; } else next; } } close; case 4: if(.Options&256) [email protected]$ = "Guild_Kda"; else [email protected]$ = "Guild_Kills"; if(.Options&128) [email protected]$ = "$M_" + [email protected]$; else [email protected]$ = "$" + [email protected]$; query_sql("SELECT `index`, CAST(`value` AS SIGNED) FROM `global_acc_reg_num` WHERE `key` = '" + [email protected]$ + "' ORDER BY CAST(`value` AS SIGNED) DESC LIMIT 10",[email protected],[email protected]); if (!getarraysize([email protected])){ mes "The rankings are empty."; } else { for([email protected] = 0; [email protected] < getarraysize([email protected]); [email protected]++){ //query_sql("SELECT `value` FROM `global_acc_reg_num` WHERE `index` = "[email protected][[email protected]]+";",[email protected]$); // ??? [Secret] mes "#"+([email protected]+1)+" ^0000EE["+getguildname([email protected][[email protected]])+"]^000000 with [^00EE00"+callfunc("F_InsertPlural",$Guild_Kills[[email protected][[email protected]]],"~ kill")+"] and [^EE0000"+callfunc("F_InsertPlural",$Guild_Deaths[[email protected][[email protected]]],"~ death")+"]"; } } close; case 5: callshop "PvP_Cash_Shop",1; end; case 6: if(.Options&1){ mes "[PvP]"; mes "Lifetime:","^00EE00"+ callfunc("F_InsertPlural",pl_pkcount,"kill") +"^000000 - ^EE0000"+ callfunc("F_InsertPlural",pl_dthcount,"death") + ((.Options&256)?" - ^0000EE"+ kda +" Total":"") +"^000000"; if(.Options&128) mes "Monthly:","^00EE00"+ callfunc("F_InsertPlural",m_pkcount,"kill") +"^000000 - ^EE0000"+ callfunc("F_InsertPlural",m_dthcount,"death") + ((.Options&256)?" - ^0000EE"+ m_kda +" Total":"") +"^000000"; } if(.Options&16) mes "You Have "+ #PvpPoints +" Spendable Points"; if(.Options&2){ if(.Options&1) next; mes "[GvG]"; mes "Lifetime:","^00EE00"+ callfunc("F_InsertPlural",gvg_kcount,"kill") +"^000000 - ^EE0000"+ callfunc("F_InsertPlural",gvg_dcount,"death")+((.Options&256)?" - ^0000EE"+ gvg_kda +" Total":"")+"^000000"; if(.Options&128) mes "Monthly:","^00EE00"+ callfunc("F_InsertPlural",m_gvg_kcount,"kill") +"^000000 - ^EE0000"+ callfunc("F_InsertPlural",m_gvg_dcount,"death") + ((.Options&256)?" - ^0000EE"+ m_gvg_kda +" Total":"") +"^000000"; } if(.Options&8 && getcharid(2)){ if(.Options&2 || .Options&3) next; mes "[Guild Stats]"; mes "Lifetime:","^00EE00"+ callfunc("F_InsertPlural",$Guild_Kills[getcharid(2)],"kill") +"^000000 - ^EE0000"+ callfunc("F_InsertPlural",$Guild_Deaths[getcharid(2)],"death") + ((.Options&256)?" - ^0000EE"+ $Guild_Kda[getcharid(2)] +" Total":"")+ "^000000"; if(.Options&128) mes "Monthly:","^00EE00"+ callfunc("F_InsertPlural",$M_Guild_Kills[getcharid(2)],"kill") +"^000000 - ^EE0000"+ callfunc("F_InsertPlural",$M_Guild_Deaths[getcharid(2)],"death") + ((.Options&256)?" - ^0000EE"+ $M_Guild_Kda[getcharid(2)] +" Total":"") +"^000000"; } close; case 7: [email protected] = select("Monthly:Lifetime") - 1; [email protected]$[0] = (.Options&1)?"Pvp Ladder":""; [email protected]$[1] = (.Options&2)?"GvG Ladder":""; [email protected]$[2] = (.Options&8)?"Top Guild":""; [email protected] = select(implode([email protected]$,":")) - 1; mes "Are you sure you want to reset this the "+(([email protected])?"Lifetime":"Monthly")+" "[email protected]$[[email protected]]+"?"; if(select("No:Yes")!=2) close; close2; switch([email protected] * 3 + [email protected]){ case 0: query_sql("DELETE FROM `char_reg_num` WHERE `key` = 'm_pkcount' OR `key` = 'm_kda' OR `key` = 'pl_dthcount'"); addrid(0); m_pkcount = m_kda = m_dthcount = 0; break; case 1: query_sql("DELETE FROM `char_reg_num` WHERE `key` = 'pl_pkcount' OR `key` = 'kda' OR `key` = 'pl_dthcount'"); addrid(0); pl_pkcount = kda = pl_dthcount = 0; break; case 2: query_sql("DELETE FROM `char_reg_num` WHERE `key` = 'm_gvg_kcount' OR `key` = 'm_gvg_kda' OR `key` = 'm_gvg_dcount'"); addrid(0); m_gvg_kcount = m_gvg_kda = m_gvg_dcount = 0; break; case 3: query_sql("DELETE FROM `char_reg_num` WHERE `key` = 'gvg_kcount' OR `key` = 'gvg_kda' OR `key` = 'gvg_dcount'"); addrid(0); gvg_kcount = gvg_kda = gvg_dcount = 0; break; case 4: cleararray $M_Guild_Kills[0],0,getarraysize($M_Guild_Kills); cleararray $M_Guild_Kda[0],0,getarraysize($M_Guild_Kda); cleararray $M_Guild_Deaths[0],0,getarraysize($M_Guild_Deaths); break; case 5: cleararray $Guild_Kills[0],0,getarraysize($Guild_Kills); cleararray $Guild_Kda[0],0,getarraysize($Guild_Kda); cleararray $Guild_Deaths[0],0,getarraysize($Guild_Deaths); break; } end; case 1: //===== Dont Touch - Menu Generation ====================== for([email protected] = 0; [email protected] < getarraysize(.MapName$); [email protected]++){ [email protected]$[[email protected]] = "["+ ((.MapMode[[email protected]]&2)?"^EE3333Nightmare ":"") + ((.MapMode[[email protected]]&4)?"Party ":"") + ((.MapMode[[email protected]]&1)?"GvG":"PvP") +"^000000] "+ ((.MapMode[[email protected]] >= 8)?"No ":"") + ((.MapMode[[email protected]]&8)?"Ygg ":"") + ((.MapMode[[email protected]]&16)?"3rds ":"") + ((.MapMode[[email protected]]&32)?"Trans ":"") + ((.MapMode[[email protected]]&64)?.MapName$[[email protected]]:"") + ((.MaxPlayers[[email protected]])?"["+getmapusers(.MapName$[[email protected]])+"/"+.MaxPlayers[[email protected]]+"]":""); } //========================================================== [email protected] = select(implode([email protected]$,":")) - 1; if(.MapMode[[email protected]]&2){ mes "You are about to enter NIGHTMARE PvP, on death you will lose gear randomly."; if(select("Nevermind:Continue") == 1) close; } else if(.MapMode[[email protected]]&8 && (countitem(607) || countitem(608))){ mes "No "+getitemname(607)+" or "+getitemname(608)+" Allowed."; close; } else if(.MapMode[[email protected]]&16){ mes "No 3rd Classes Allowed."; close; } else if(.MapMode[[email protected]]&32){ mes "No Trans Classes Allowed."; close; } else if(.MaxPlayers[[email protected]] && getmapusers(.MapName$[[email protected]]) >= .MaxPlayers[[email protected]]){ mes "Room is Full."; close; } else if(.MapMode[[email protected]]&4 && getcharid(1) <= 0 ){ mes "You must be in a Party to join."; close; } else if(.MapMode[[email protected]]&1 && getcharid(2) <= 0 ){ mes "You must be in a Guild to join."; close; } announce "[ PvP Warper ] "+strcharinfo(0)+" has entered in "+((.MapMode[[email protected]]&1)?"GvG":"PvP")+" Room",0,((.MapMode[[email protected]]&1)?0x00CC99:0xEE0000); warp .MapName$[[email protected]],0,0; } end; //================================== OnPCKillEvent: //-- Adding Stats //================================== if(!getgmlevel() || .Options&512){ if(LastPK == killedrid) RepeatKill++; else { LastPK = killedrid; RepeatKill = 0; } if(.Options&4) announce "[PVP]: "+strcharinfo(0)+" has slain "+ rid2name(LastPK) + ((RepeatKill)?" for the "+callfunc("F_GetNumSuffix",RepeatKill)+" time in a row":"") +".",bc_all; if((RepeatKill < .RepeatCount && .Options&32) || !.Options&32){ if(.Options&1) pl_pkcount++; if(.Options&129) m_pkcount++; if(.Options&257) kda++; if(.Options&385) m_kda++; if(.Options&16) #PvpPoints++; if((getmapflag(strcharinfo(3),MF_GVG) || getmapflag(strcharinfo(3),MF_GVG_NOPARTY)) && (agitcheck() || agitcheck2()) && getcharid(2) && .Options&2){ gvg_kcount++; if(.Options&128) m_gvg_kcount++; if(.Options&256) gvg_kda++; if(.Options&384) m_gvg_kda++; if(.Options&8) $Guild_Kills[getcharid(2)]++; if(.Options&136) $M_Guild_Kills[getcharid(2)]++; if(.Options&256) $Guild_Kda[getcharid(2)]++; if(.Options&264) $M_Guild_Kda[getcharid(2)]++; } attachrid(LastPK); if(.Options&1) pl_dthcount++; if(.Options&129) m_dthcount++; if(.Options&257) kda -= 1; if(.Options&385) m_kda -= 1; if((getmapflag(strcharinfo(3),MF_GVG) || getmapflag(strcharinfo(3),MF_GVG_NOPARTY)) && (agitcheck() || agitcheck2()) && getcharid(2) && .Options&2){ gvg_dcount++; if(.Options&128) m_gvg_dcount++; if(.Options&258) gvg_kda -= 1; if(.Options&384) m_gvg_kda -= 1; if(.Options&8) $Guild_Deaths[getcharid(2)]++; if(.Options&136) $M_Guild_Deaths[getcharid(2)]++; if(.Options&256) $Guild_Kda[getcharid(2)] -= 1; if(.Options&264) $M_Guild_Kda[getcharid(2)] -= 1; } } else if(.Options&1024) atcommand "@request [PvP Ladder]: "+strcharinfo(0)+" is showing signs of abusing the PvP Ladder Please Investigate"; if(.Options&64) warp "Save",0,0; } end; //================================== OnHour00: //-- Monthly Rewards //================================== if(gettime(5) == 1 && .Options&128 && .MailType){ if(.RewardType&1 && .Options&1){ query_sql("SELECT char_id,`char`.name,CAST(`value` AS SIGNED) FROM `char_reg_num` INNER JOIN `char` ON `char`.char_id = `char_reg_num`.char_id WHERE `key` = '"+((.Options&256)?"m_kda":"m_pkcount")+"' ORDER BY CAST(`value` AS SIGNED) DESC LIMIT "+getarraysize(.PVP_Items$)+"",[email protected],[email protected]$,[email protected]); for([email protected] = 0; [email protected]< getarraysize([email protected]); [email protected]++) mail [email protected][[email protected]], "no-reply", "PvP Ranking", "Congratulations!% You have placed #"+([email protected]+1)+" in the PvP Raning this Month % % %[ Your reward is attached. ]", .PVP_Zeny[[email protected]], getd(".Pitem"[email protected]), getd(".Pqnt"[email protected]); announce "[PVP Ranking]: Rewards have been mailed to the top "+getarraysize(.PVP_Items$)+" in PvP~!",bc_blue|bc_all; query_sql("UPDATE `mail` SET message = REPLACE(message,'%',CHAR(13)) WHERE send_name = 'no-reply'"); } sleep 10000; if(.RewardType&2 && .Options&2){ query_sql("SELECT char_id,`char`.name,CAST(`value` AS SIGNED) FROM `char_reg_num` INNER JOIN `char` ON `char`.char_id = `char_reg_num`.char_id WHERE `key` = '"+((.Options&256)?"m_gvg_kda":"m_gvg_kcount")+"' ORDER BY CAST(`value` AS SIGNED) DESC LIMIT "+getarraysize(.GVG_Items$)+"",[email protected],[email protected]$,[email protected]); for([email protected] = 0; [email protected]<getarraysize([email protected]); [email protected]++) mail [email protected][[email protected]], "no-reply", "PvP Ranking", "Congratulations!% You have placed #"+([email protected]+1)+" in the PvP Raning this Month % % %[ Your reward is attached. ]", .GVG_Zeny[[email protected]], getd(".Gitem"[email protected]), getd(".Gqnt"[email protected]); announce "[GVG Ranking]: Rewards have been mailed to the top "+getarraysize(.GVG_Items$)+" in GvG~!",bc_blue|bc_all; query_sql("UPDATE `mail` SET message = REPLACE(message,'%',CHAR(13)) WHERE send_name = 'no-reply'"); } cleararray $M_Guild_Kills[0],0,getarraysize($M_Guild_Kills); cleararray $M_Guild_Kda[0],0,getarraysize($M_Guild_Kda); cleararray $M_Guild_Deaths[0],0,getarraysize($M_Guild_Deaths); query_sql("DELETE FROM `char_reg_num` WHERE `key` = 'm_pkcount' OR `key` = 'm_kda' OR `key` = 'm_dthcount' OR `key` = 'm_gvg_kcount' OR `key` = 'm_gvg_kda' OR `key` = 'm_gvg_dcount'"); addrid(0); m_pkcount = 0; m_kda = 0; m_dthcount = 0; m_gvg_kcount = 0; m_gvg_kda = 0; m_gvg_dcount = 0; end; } //================================== OnInit: //-- Config //================================== // Gets NPC Name // Lets you change NPC name without breaking anything .NPC$ = strnpcinfo(0); // At_Commands bindatcmd("PvpLadder" ,.NPC$+"::OnPvpLadder",0,99); bindatcmd("Pvpladder" ,.NPC$+"::OnPvpLadder",0,99); bindatcmd("pvpLadder" ,.NPC$+"::OnPvpLadder",0,99); bindatcmd("pvpladder" ,.NPC$+"::OnPvpLadder",0,99); // Bitwise Variable // 1: Record PvP // 2: Record GvG (agit on and gvg map) // 4: Announce When Someone gets a kill // 8: Record Total Guild Stats // 16: Gain PvP Points on Kills (#PvpPoints) // 32: Repeat Kill Protection // 64: Warp to Save on abuse // 128: Monthly Stats // 256: Order by KDA instead of most kills // 512: Allow GMs to Join PvP // 1024: Request a GM on Abuse // 2048: Enable Waiting Room // 4096: Dynamic Waiting Room .Options = 1|2|4|8|16|32|128|256|1024|2048|4096; // Monthly Reward Types // 1: Pvp // 2: Gvg .RewardType = 1|2; // PVP Rewards // Rewards are Mailed to winners // Zeny Rewards setarray .PVP_Zeny, 1000000,500000,250000,125000,62500,// 1st - 5th 31250, 15620, 7810, 3905, 1952;// 6th - 10th // Ro Dex Supports 5 Items // Old Mail DOES NOT support multiple items // "Item 1, Qnt 1, Item 2, Qnt 2, Item 3, Qnt 3, Item 4, Qnt 4, Item 5, Qnt 5" setarray .PVP_Items$, "501,10,0,0,0,0,0,0,0,0",// 1st "501,9,0,0,0,0,0,0,0,0", "501,8,0,0,0,0,0,0,0,0", "501,7,0,0,0,0,0,0,0,0", "501,6,0,0,0,0,0,0,0,0", "501,5,0,0,0,0,0,0,0,0", "501,4,0,0,0,0,0,0,0,0", "501,3,0,0,0,0,0,0,0,0", "501,2,0,0,0,0,0,0,0,0", "501,1,0,0,0,0,0,0,0,0";// 10th // GVG Rewards // Rewards are Mailed to winners // Zeny Rewards setarray .GVG_Zeny, 1000000,500000,250000,125000,62500,// 1st - 5th 31250, 15620, 7810, 3905, 1952;// 6th - 10th // Ro Dex Supports 5 Items // Old Mail DOES NOT support multiple items // "Item 1, Qnt 1, Item 2, Qnt 2, Item 3, Qnt 3, Item 4, Qnt 4, Item 5, Qnt 5" setarray .GVG_Items$, "501,10,0,0,0,0,0,0,0,0",// 1st "501,9,0,0,0,0,0,0,0,0", "501,8,0,0,0,0,0,0,0,0", "501,7,0,0,0,0,0,0,0,0", "501,6,0,0,0,0,0,0,0,0", "501,5,0,0,0,0,0,0,0,0", "501,4,0,0,0,0,0,0,0,0", "501,3,0,0,0,0,0,0,0,0", "501,2,0,0,0,0,0,0,0,0", "501,1,0,0,0,0,0,0,0,0";// 10th // Number of kills on same person before it detects abuse .RepeatCount = 5; // Players Shown in PvP Ladder .MaxRank = 10; // Map Names setarray .MapName$,"pvp_n_1-2","pvp_n_1-1","pvp_n_1-4","pvp_n_1-3","pvp_n_1-5"; // Pvp Mode // Modes are Addative // 0 = Normal Pvp // 1 = Gvg // 2 = Nightmare // 4 = Party // 8 = No Ygg // 16 = No 3rds // 32 = No Trans // 64 = Show Map Name setarray .MapMode,0,1,2,4,56; // Max Players Per Map // 0 = No Limit setarray .MaxPlayers,0,50,10,36,50; // Mapflags for all PvP maps // regardless of Mode setarray .mapflag, mf_nowarp, mf_nowarpto, mf_nosave, mf_nomemo, mf_noteleport, mf_nopenalty, mf_noreturn, mf_nobranch, mf_nomobloot, mf_nomvploot, MF_NOZENYPENALTY, MF_NOTRADE, MF_NOCOMMAND, mf_nodrop; //===== Dont Touch - Mapflag & Waiting Room Generation ===== if(getwaitingroomstate(1) == -1) delwaitingroom; if(.Options&2048 && !.Options&4096) waitingroom "PvP Ladder",0; for([email protected] = 0; [email protected] < getarraysize(.MapName$); [email protected]++){ for ( [email protected] = 0; [email protected] < [email protected]; [email protected]++ ) setmapflag .MapName$[[email protected]], .mapflag[[email protected]]; if(.MapMode[[email protected]]&4) setmapflag .MapName$[[email protected]], mf_partylock; if(.MapMode[[email protected]]&2) setmapflag .MapName$[[email protected]], MF_NIGHTMAREDROP; if(.MapMode[[email protected]]&1){ setmapflag .MapName$[[email protected]], MF_GUILDLOCK; setmapflag .MapName$[[email protected]], MF_GVG; } else{ setmapflag .MapName$[[email protected]], MF_PVP_NOGUILD; setmapflag .MapName$[[email protected]], MF_PVP; } if(!.MapMode[[email protected]]&4){ if(.MapMode[[email protected]]&1) setmapflag .MapName$[[email protected]], MF_GVG_NOPARTY; else setmapflag .MapName$[[email protected]], MF_NOPARTY; } } freeloop(1); for([email protected] = 0; [email protected] < getarraysize(.PVP_Items$); [email protected]++){ explode([email protected]$,.PVP_Items$[[email protected]],","); for([email protected] = 0; [email protected] < getarraysize([email protected]$) && [email protected] < 10; [email protected]++) [email protected][[email protected]] = atoi([email protected]$[[email protected]]); for([email protected] = 0; [email protected] < getarraysize([email protected]); [email protected] += 2){ setd ".Pitem"[email protected]+"["+getarraysize(getd(".Pitem"[email protected]))+"]",[email protected][[email protected]]; setd ".Pqnt"[email protected]+"["+getarraysize(getd(".Pqnt"[email protected]))+"]",[email protected][[email protected]+1]; } } for([email protected] = 0; [email protected] < getarraysize(.GVG_Items$); [email protected]++){ explode([email protected]$,.GVG_Items$[[email protected]],","); for([email protected] = 0; [email protected] < getarraysize([email protected]$) && [email protected] < 10; [email protected]++) [email protected][[email protected]] = atoi([email protected]$[[email protected]]); for([email protected] = 0; [email protected] < getarraysize([email protected]); [email protected] += 2){ setd ".Gitem"[email protected]+"["+getarraysize(getd(".Gitem"[email protected]))+"]",[email protected][[email protected]]; setd ".Gqnt"[email protected]+"["+getarraysize(getd(".Gqnt"[email protected]))+"]",[email protected][[email protected]+1]; } } while(.Options&6144) { for([email protected] = 0; [email protected] < getarraysize(.MapName$); [email protected]++){ [email protected]$[[email protected]] = "["+ ((.MapMode[[email protected]]&2)?"Nightmare ":"") + ((.MapMode[[email protected]]&4)?"Party ":"") + ((.MapMode[[email protected]]&1)?"GvG":"PvP") +"] "+ ((.MapMode[[email protected]] >= 8)?"No ":"") + ((.MapMode[[email protected]]&8)?"Ygg ":"") + ((.MapMode[[email protected]]&16)?"3rds ":"") + ((.MapMode[[email protected]]&32)?"Trans ":"") + ((.MapMode[[email protected]]&64)?.MapName$[[email protected]]:"") + ((.MaxPlayers[[email protected]])?"["+getmapusers(.MapName$[[email protected]])+"/"+.MaxPlayers[[email protected]]+"]":""); delwaitingroom; waitingroom [email protected]$[[email protected]],0; sleep 3000; } } //========================================================== } //================================== //-- Call Shop //================================== - pointshop PvP_Cash_Shop -1,#PvpPoints,501:1,502:2 And, this is the PK Points with NPC - shop custom_seller2 -1,501:500 moc_para01,45,12,2 script PK Points Dealer 100,{ mes "[PK Points Dealer]"; mes "I will sell you items for PK points."; mes "Each time you kill a player you'll get 1 PK point to spend here!"; next; mes "[PK Points Dealer]"; mes "You currently have [^0000ff"+pk_points+"^000000] PK points to spend."; callshop "custom_seller2",1; npcshopattach "custom_seller2"; end; OnBuyItem: for(set [email protected],0; [email protected]<getarraysize(.customs); set [email protected],[email protected]+1) { for(set [email protected],0; [email protected]<getarraysize(@bought_nameid); set [email protected],[email protected]+1) { if(@bought_nameid[[email protected]]==.customs[[email protected]]) { if(checkweight(@bought_nameid[[email protected]],@bought_quantity[[email protected]])) { if(pk_points >= .Price[[email protected]]*@bought_quantity[[email protected]]) { set pk_points, pk_points - .Price[[email protected]]*@bought_quantity[[email protected]]; getitem @bought_nameid[[email protected]],@bought_quantity[[email protected]]; } else dispbottom "You don't have enough PK points to purchase that item."; } else dispbottom "Purchasing these items will put you over the weight limit!"; } } } deletearray @bought_quantity, getarraysize(@bought_quantity); deletearray @bought_nameid, getarraysize(@bought_nameid); close; OnPCKillEvent: //if( strcharinfo(3) != .map$ ) end; copyarray( @killed$[1], @killed$[0], .saved_l-1 ); @killed$ = ""+killedrid; if( countstr( implode( @killed$, "|" ), ""+killedrid, 0 ) <= .rstrk_l ) { pk_points++; dispbottom "You've gained one point! Your total is ["+pk_points+"] PK point(s)."; } end; OnInit: set .map$, "guild_vs3"; set .saved_l, 3; //Length of saved ids can be up to 127. set .rstrk_l, 2; //Level of restriction. setarray .customs[0], 60301,60302,60303,60304,60305,60306, 50000; // Enter the ID of customs here... setarray .Price[0], 1,5,10,25,50,100, 20; // Price for each custom here... npcshopitem "custom_seller2", 0 , 0; // Don't touch any coding beyond here.. for( set .i,0; .customs[.i]; set .i,.i+1 ) npcshopadditem "custom_seller2",.customs[.i],.Price[.i]; end; } Is it possible to make this work simultaneously? Example, Ony PVP maps like PVP Ladder maps can gain PVP Points. And, the reset of the PK Enabled maps can gain PK Points. Is this possible?
-
sir, may we ask for a complete guide on how to do this? im confused on how to implement this. This is my titletable.lub and my achievement_db.yml Thanks
-
May I ask for assistance as to why my damage is extremely low? I'm using a RENEWAL Server. I understand that the calculation is different, but + 289 STR should make a difference, right? I'm SBing a Poring in this screenshot. I tried @statall, but the HP as well seems low and SP. Thanks in advance.
-
Adding Random Option Protection to Random Option NPC
mawjustin posted a question in Scripting Support
Hello, may I ask for assistance in adding a random option protection item in this? I'm using @Keitenai's script Is it possible to add a custom random option protection item, like HD Oridecon or something? As long as they have it in their inventory their items won't break if the random option fails? (HD Oridecon will be consumed per failure.) I understand that we can set it the success rate to 0%, but I wan't the players to experience failing in refine rate, but will have the chance to protect their item using HD Oridecon in their inventory or something. Thanks in advance.