Jump to content

iCORE

Members
  • Content Count

    393
  • Joined

  • Last visited

  • Days Won

    5

Everything posted by iCORE

  1. do you know how to make it fills up to 5 slots?
  2. function script Option_Acc { mes "blah"; // dispbottom getequipid(EQI_ACC_L) +" "+ getequipid(EQI_ACC_R); next; if ( getequipid(EQI_ACC_L) == -1 && getequipid(EQI_ACC_R) == -1 ) { mes "You don't have Accessory equipped"; close; } .@s = select( getequipid(EQI_ACC_L)? getequipname(EQI_ACC_L) : "", getequipid(EQI_ACC_R)? getequipname(EQI_ACC_R) : "" ) + 6; // dispbottom .@s +""; if ( getequipoption( .@s, 1, IT_OPT_INDEX ) ) { mes "this Accessory has already enchanted with Item Options"; close; } mes "do you want to add +STR to this Accessory?"; next; if ( select( "Yes", "No" ) == 2 ) close; setequipoption .@s, 1, VAR_STRAMOUNT, 1; close; } i have this and it only fill Slot 1.
  3. i would like to request a scroll that gives "Item Option" if use. and a scroll that removes the "Item Option" its like flyff Awakening System http://flyff-wiki.webzen.com/wiki/Awakening for more info: (1)make a configuration on what equipment to choose. (2)Scroll of Awake <--- 100% give fix Item Option Stats to Slot 1 and so on... Slot 1 = STR + 3 Slot 2 = EMPTY Slot 3 = EMPTY Slot 4 = EMPTY Slot 5 = EMPTY (3)then if i use scroll of awake again it will fill up Slot 2 and and so on up to Slot 5 and when all slots are filled, then i can no longer use the scroll. Scroll of Revert <--- Choose the specific Item Option Stats that i want to remove. refrence:
  4. @AnnieRurusorry about the last post, this script work perfect and to be more specific. i want this script have an option like this //--------------------------------------------------------------// //other configuration //--------------------------------------------------------------// setarray OptionList, STR, INT, DEX; //Choose what is only here .MaxOption = 5; // here you can make a specific slot number 1 = 1 slot , 2 = 2 slots and so on..... .FixOption = 100; // no min or max just fix.....
  5. iCORE

    Enchanter NPC

    What do i need to change to make it only choose from 3rd slot to 4th slot only prairie,130,89,4 script Enchant Expert 4_PORING,{ mes .npc$; mes "Hello there!"; mes "I can enchant your items,"; mes "for a small fee of "+.pric+"z."; emotion e_no1,0; next; if(select("Yes:No")&2) { mes .npc$; mes "Alright, thanks anyways!"; close; } if(Zeny<.pric) { mes .npc$; mes "I'm sorry you don't have enough Zeny, please come back later."; close; } mes .npc$; mes "Which item would you like to enchant?"; next; while(set(.@a,.@a+1)<=.e_len) { if(getequipid(.@a)>-1) set .@menu$, .@menu$+.eqp$[.@a-1]+"- [^0000FF"+getitemname(getequipid(.@a))+"^000000]:"; else set .@menu$, .@menu$+"^adb4be"+.eqp$[.@a-1]+"- [Empty]^000000:"; } select(.@menu$); set .@eq_loc, @menu; set .@eq_itm, getequipid(.@eq_loc); if(.@eq_itm<0) { mes .npc$; mes "Hmm, I don't think you have anything equipped there."; close; } set .@menu$, ""; set .@a, .en_orb[0]; while((set(.@a,.@a+1)-1)<=.en_orb[1]) if(getiteminfo(.@a-1,2)>-1) if(set(.@c,countitem(.@a-1))) { set .@menu$, .@menu$+getitemname(.@a-1)+" x"+.@c+":"; set .@b,.@b+1; set .@item[.@b], .@a-1; } if(.@menu$=="") { mes .npc$; mes "Hmm, you don't seem to have any enchantment orbs."; close; } mes .npc$; mes "Please, select an enchantment from the menu."; next; select(.@menu$); set .@itm, .@item[@menu]; set .@menu$, ""; set .@a, 0; while((set(.@a,.@a+1))<4) { if(getequipcardid(.@eq_loc,.@a)) set .@menu$, .@menu$+(.@a+1)+.crd_c$[.@a]+" Slot- [^a92435"+getitemname(getequipcardid(.@eq_loc,.@a))+"^000000]:"; else set .@menu$, .@menu$+(.@a+1)+.crd_c$[.@a]+" Slot- [^30ad25Empty^000000]:"; } setarray .@card, getequipcardid(.@eq_loc,0), getequipcardid(.@eq_loc,1), getequipcardid(.@eq_loc,2), getequipcardid(.@eq_loc,3); mes .npc$; mes "Select a slot."; next; set .@men, select(.@menu$); set .@eqrf, getequiprefinerycnt(.@eq_loc); if(getequipcardid(.@eq_loc,@menu)) { mes .npc$; mes "Would you like me to remove this card?"; next; if(select("Yes:No")&2) { mes .npc$; mes "Alright, thanks anyways!"; close; } getitem getequipcardid(.@eq_loc,.@men),1; unequip(.@eq_loc); delitem2 .@eq_itm, 1, 1, .@eqrf, 0, .@card[0], .@card[1], .@card[2], .@card[3]; set .@card[.@men], 0; getitem2 .@eq_itm, 1, 1, .@eqrf, 0, .@card[0], .@card[1], .@card[2], .@card[3]; } if(rand(100)>.perc) { mes .npc$; mes "I'm sorry but I've failed you!"; misceffect 155; emotion e_sob,0; set Zeny,Zeny-.pric; close; } set Zeny,Zeny-.pric; delitem .@itm,1; delitem2 .@eq_itm, 1, 1, .@eqrf, 0, .@card[0], .@card[1], .@card[2], .@card[3]; set .@card[.@men], .@itm; getitem2 .@eq_itm, 1, 1, .@eqrf, 0, .@card[0], .@card[1], .@card[2], .@card[3]; misceffect .efet; emotion e_no1,0; mes .npc$; mes "All done!"; equip .@eq_itm; close; //NPC Constants OnInit: //=-=-=-=-=-=-=Configuration=-=-=-=-=-=-= set .npc$ , "[^0000FFEnchant Expert^000000]"; // NPC Name set .pric , 1000000; // Price set .efet , 154; // Effect Number set .perc , rand(100,100); // Percent setarray .crd_c$, "st", "nd", "rd", "th"; // Count setarray .en_orb, 25600, 25629; // Range of IDs selected for enchanting. setarray .eqp$ , "Upper Headgear", "Armor", "Left Hand", "Right Hand", "Garment", "Shoes", "Accessory1", "Accessory2", "Mid Headgear", "Low Headgear"; set .e_len , getarraysize(.eqp$); //=-=-=-=-=-=-=-=-Skorm-=-=-=-=-=-=-=-=-= }
  6. how to make a ranking for world boss depending on damage.
  7. i need help in this effect it does not stack up and im using it as a charm bonus2 bHPregenRate, (readparam (bMaxHP/100)*5,1000; it regen 5% of my max hp but when i equip 2 or more same charms the effect does not stack up.
  8. thanks again @AnnieRuru , please add (Random Option, Fixed Option, Replace Option) and still fix to only accessories and str only. and can add upto 5 options.
  9. so this will only work with 190 attack speed and below?
  10. it heals but after a few seconds the regen hp lose Script: <" bonus2 bHPGainRateWhenHit,10000,300; ">
  11. i got healing numbers but no effect at all. im using latest gcc running at centos 7 redhat 64bit
  12. absorb_health.c: In function ‘pc_damage_pre’: absorb_health.c:66:9: warning: implicit declaration of function ‘rand’ [-Wimplicit-function-declaration] if ( (rand() % 1000) < ssd->hp_gain_rate_chance ) { ^ absorb_health.c:66:3: warning: nested extern declaration of ‘rand’ [-Wnested-externs] if ( (rand() % 1000) < ssd->hp_gain_rate_chance ) { ^ PLUGIN absorb_health @AnnieRuru
  13. go to your clientinfo.xml and change your lang type to 1. then go ingame and type /showname (should be type 2).
  14. @AnnieRuru sorry for my bad explanation but ill still try to explain it more clearly. Example: Item Description is "Absord 10% damage and heal as HP". Player A deals 100 damage to Player B therefore Player B will heal 10% of the damage as HP. its like bHPDrainRate,'n'; but will trigger when being attacked by someone. hope i explain it clearly that its not reduce damage like you are saying.
  15. Hi, how can i make this script work only with accessories and make items as requirements to upgrade edit: Also how to remove all the choices and make a fix option. Example: npc will only add VAR_STRAMOUNT in accessory //================= Hercules Script ======================================= //= _ _ _ //= | | | | | | //= | |_| | ___ _ __ ___ _ _| | ___ ___ //= | _ |/ _ \ '__/ __| | | | |/ _ \/ __| //= | | | | __/ | | (__| |_| | | __/\__ \ //= \_| |_/\___|_| \___|\__,_|_|\___||___/ //================= License =============================================== //= This file is part of Hercules. //= http://herc.ws - http://github.com/HerculesWS/Hercules //= //= Copyright (C) 2017 Hercules Dev Team //= Copyright (C) 2017 Smokexyz //= //= Hercules is free software: you can redistribute it and/or modify //= it under the terms of the GNU General Public License as published by //= the Free Software Foundation, either version 3 of the License, or //= (at your option) any later version. //= //= This program is distributed in the hope that it will be useful, //= but WITHOUT ANY WARRANTY; without even the implied warranty of //= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the //= GNU General Public License for more details. //= //= You should have received a copy of the GNU General Public License //= along with this program. If not, see <http://www.gnu.org/licenses/>. //========================================================================= //= Option Master (Item Options NPC @see db/item_options.conf) //================= Description =========================================== //= Select from a list of your equipments, one to enhance with up to 5 options. //= A list of the first 10 options are provided in this npc. //================= Current Version ======================================= //= 1.0 //========================================================================= prontera,153,180,4 script Option Master 4_DOG01,{ callsub(StartTalking); end; OnInit: /** * General Configuration */ /* Chance of the enhancement process to fail. (0 - 99 in percent) */ .chance_of_failure = 10; /* Delete the item on failure? (true/false) */ .delete_on_failure = true; /* Required amount of zeny for a try. */ .zeny_requirement = 100; /* Minimum amount of the bonus value. * For negative effects or certain bonuses that require negative values * Maximum possible value is -INT16_MAX) */ .minimum_bonus_amount = -100; // usually used with delay bonus options, although not provided in the script. /* Maximum amount of the bonus value. * Maximum possible value is INT16_MAX */ .maximum_bonus_amount = 100; /* Disable selection of bonus value (true/false) */ .enable_random_bonus = false; /* Item Option Descriptions */ setarray(.options$[0], "Max HP", "Max SP", "STR", "AGI", "VIT", "INT", "DEX", "LUK"); /* Item Option Constants */ setarray(.option_constants[0], VAR_MAXHPAMOUNT, VAR_MAXSPAMOUNT, VAR_STRAMOUNT, VAR_AGIAMOUNT, VAR_VITAMOUNT, VAR_INTAMOUNT, VAR_DEXAMOUNT, VAR_LUKAMOUNT); end; StartTalking: .@name$ = _("[ ^990099Option Master^000000 ]"); disable_items(); mes(.@name$); mesf("Hey there %s", strcharinfo(PC_NAME)); mes("There's a new-found method of adding options to an equipment that I have been working on."); next(); if (.enable_random_bonus) { mes(.@name$); mes("Equipment bonuses are added randomly per slot!"); mes("So if you wind up with a low amount of bonus, don't hesitate to override the slot."); next(); } mes(.@name$); mes("Would you like me to add extra stats to your equipment?"); next(); if (select("Of course!", "Meh, not right now.") == 2) { mes(.@name$); mes("Alright then, catch you later."); close(); } // Build the Menu. setarray(.@position$[1], "Head", "Body", "Left Hand", "Right Hand", "Robe", "Shoes", "Accessory 1", "Accessory 2", "Head 2", "Head 3"); .@menu$ = ""; for (.@i = 1; .@i <= 10; ++.@i) .@menu$ += ((getequipisequiped(.@i)) ? getequipname(.@i) : .@position$[.@i] + "-[Not equipped]") + ":"; // Select the part. .@equip_index = select(.@menu$); // Check if it's worn. if (!getequipisequiped(.@equip_index)) { mes(.@name$); mes("Brah, your item ain't equipped."); close(); // Check if it allows options } else if (!getequipisenableopt(.@equip_index)) { mes(.@name$); mes("Brah, this equip can't have options."); close(); // Check if equipment is identified. } else if (!getequipisidentify(.@equip_index)) { mes(.@name$); mes("Brah, this equip ain't identified."); close(); } // Present a list of currently infused options. do { .@menu$ = ""; .@used = false; // Build the menu of current options. for (.@i = 1; .@i <= MAX_ITEM_OPTIONS; ++.@i) { // call getequipoption(<equip_index>, <type>, <slot>); // if the return is <0, it's a script error. // if the return is 0, the slot is empty. // if the return is >0, the slot is unavailable. .@opt = getequipoption(.@equip_index, .@i, IT_OPT_INDEX); if (.@opt > 0) .@menu$ += (.@i) + ") " + .options$[.@opt - 1] + ":"; else .@menu$ += (.@i) + ") ^999999Empty^000000" + ":"; } // Option Slot is the actual option slot 0-MAX_ITEM_OPTIONS (@see mmo.h) .@option_slot = select(.@menu$); // Check for used slot and request user action if found. if (getequipoption(.@equip_index, .@option_slot, IT_OPT_INDEX) > 0) { mes(.@name$); mes("This slot is already used up!"); if (select("^990000Override the slot.^000000", "Choose again.") == 2) .@used = true; next(); } } while (.@used); // loop if the slot is not to be overridden // Present a list of available bonuses. mes(.@name$); mes("Which of the following item bonuses would you like to add to this item?"); next(); // Build the Options! .@menu$ = ""; for (.@i = 0; .@i < getarraysize(.options$); ++.@i) .@menu$ += (.@i + 1) + ") " + .options$[.@i] + ":"; do { // Select the options! .@option_variable = select(.@menu$); next(); mes(.@name$); mesf("You chose ^009900%s^000000!", .options$[.@option_variable - 1]); mes("Are you sure?"); next(); } while (select("Fo Shizzle.", "I'ma re-evaluate, brah.") == 2); // Select a bonus or randomise. if (.enable_random_bonus) { .@value = rand(.maximum_bonus_amount); } else { do { mes(.@name$); mesf("Please input the bonus amount of ^009900%s^000000 you want to add!", .options$[.@option_variable - 1]); mesf("(Min: %d, Max: %d)", .minimum_bonus_amount, .maximum_bonus_amount); .@ok = input(.@value, .minimum_bonus_amount, .maximum_bonus_amount); next(); } while (.@ok); } // If there's a chance of failure, inform the user. if (.chance_of_failure) { mes(.@name$); mes("Alright so,"); mes("I'll have you know..."); mesf("There's a ^990000%d%% chance of failure^000000.", .chance_of_failure); mes("Because, well... I didn't go to school."); next(); mes(.@name$); if (.delete_on_failure) { mes("If I fail, your item will break and it ^990000will be destroyed^000000!"); } mes("Are you still ready to go forward with this?"); next(); if (select("Fo shizzle.", "Hells naw, go back to school.") == 2) { mes(.@name$); mes("Geez, you don't have to be so harsh about it."); close(); } next(); } // If there's a Zeny Requirement, perform the usual. if (.zeny_requirement > 0) { mes(.@name$); mesf("You also have to pay %dZ.", .zeny_requirement); next(); if (select("Of course!", "No way!") == 2) { mes(.@name$); mes("Well, see you around then..."); close(); } if (Zeny < .zeny_requirement) { mes(.@name$); mes("You don't have enough Zeny!"); close(); } Zeny -= .zeny_requirement; } // Check if there's a chance of failure, set and roll the dice. if (.chance_of_failure && rand(100) <= .chance_of_failure) { mes(.@name$); mes("^990000I failed!^000000"); mes("Guess I should go back to school."); // Delete the item if flagged. if (.delete_on_failure) failedrefitem(.@equip_index); // Simulate failed refinement of the item and delete. } else { // Set the Item Option bonuses in the slot see db/item_options.conf for more info. setequipoption(.@equip_index, .@option_slot, .option_constants[.@option_variable - 1], .@value); mes(.@name$); mes("^009900Praise Jesus^000000"); mes("I have added an option to your item."); mes("My skills are flawless!"); } next(); mes(.@name$); mes("See you around!"); close(); }
  16. no worries maybe ill try to experiment some bonuses...
  17. ive already tested its not correct it acts as a lifesteal not damage absorb.
  18. can you help me make it work with all attacks?
×
×
  • Create New...

Important Information

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