-
Posts
9,746 -
Joined
-
Days Won
305
Content Type
Profiles
Forums
Downloads
Jobs Available
Server Database
Third-Party Services
Top Guides
Store
Crowdfunding
Everything posted by Emistry
-
in this scenario, it make no different, but if you are switching to quest_db then you had to rewrite the script and clientside quest info files.
-
if (rand(1,100) > getd("[email protected]"[email protected]+"[0]")) { for(set [email protected],0; [email protected]<getarraysize([email protected]); set [email protected],[email protected]+2) { getitem [email protected][[email protected]], [email protected][[email protected]+1]; if([email protected][0]) setarray [email protected][0], [email protected][[email protected]], [email protected][[email protected]+1]; } } else{ for(set [email protected],1; [email protected]<getarraysize(getd("[email protected]"[email protected])); set [email protected],[email protected]+2) { getitem getd("[email protected]"[email protected]+"["[email protected]+"]"), getd("[email protected]"[email protected]+"["+([email protected]+1)+"]"); if ([email protected][0]) { set [email protected],[email protected]; setarray [email protected][0], getd("[email protected]"[email protected]+"["[email protected]+"]"), getd("[email protected]"[email protected]+"["+([email protected]+1)+"]"); break; } } } change to if (rand(1,100) < getd("[email protected]"[email protected]+"[0]")) { for(set [email protected],1; [email protected]<getarraysize(getd("[email protected]"[email protected])); set [email protected],[email protected]+2) { getitem getd("[email protected]"[email protected]+"["[email protected]+"]"), getd("[email protected]"[email protected]+"["+([email protected]+1)+"]"); if ([email protected][0]) { set [email protected],[email protected]; setarray [email protected][0], getd("[email protected]"[email protected]+"["[email protected]+"]"), getd("[email protected]"[email protected]+"["+([email protected]+1)+"]"); break; } } }
-
getitem2 <item id>,<amount>,<identify>,<refine>,<attribute>,<card1>,<card2>,<card3>,<card4>{,<account ID>};
-
1. if you are checking for total of item count in current inventory getinventorylist; dispbottom "Your inventory has "+ @inventorylist_count +" items"; 2. if you are checking whether the player can hold the upcoming rewards if (checkweight(512, 100)) { getitem 512, 100; } else { dispbottom "You cant hold 100x Apple."; }
-
*getequiprandomoption(<equipment index>,<index>,<type>{,<char id>}); Returns value of an attribute of a random option on an equipped item. See 'getequipid' for a full list of valid equipment slots. index parameter can be 0 to MAX_ITEM_RDM_OPT-1 (default 0-4). For valid attribute types, see `getrandomoptinfo` command reference. or *getinventorylist {<char_id>}; This command sets a bunch of arrays with a complete list of whatever the invoking character has in their inventory, including all the data needed to recreate these items perfectly if they are destroyed. Here's what you get: @inventorylist_option_id1[] - first array of random option IDs @inventorylist_option_value1[] - first array of random option values @inventorylist_option_parameter1[] - first array of random option parameters @inventorylist_option_id2[] - second array of random option IDs @inventorylist_option_value2[] - second array of random option values @inventorylist_option_parameter2[] - second array of random option parameters @inventorylist_option_id3[] - third array of random option IDs @inventorylist_option_value3[] - third array of random option values @inventorylist_option_parameter3[] - third array of random option parameters @inventorylist_option_id4[] - fourth array of random option IDs @inventorylist_option_value4[] - fourth array of random option values @inventorylist_option_parameter4[] - fourth array of random option parameters @inventorylist_option_id5[] - fifth array of random option IDs @inventorylist_option_value5[] - fifth array of random option values @inventorylist_option_parameter5[] - fifth array of random option parameters not available check for card id instead. *getequipcardid(<equipment slot>,<card slot>) Returns value from equipped item slot in the indicated slot (0, 1, 2, or 3). This function returns CARD ID, CARD0_FORGE, CARD0_CREATE, or CARD0_PET (for card 0, if the item is produced). It's useful for when you want to check whether an item contains cards or if it's signed. or getinventorylist
-
default come with the Quest System, not showscript(...)
-
guild storage log descending instead of extending upward
Emistry replied to potro1's question in Scripting Support
SELECT .... FROM .... ORDER BY <column_name> update your SQL query to sort the ordering, or remove the ORDER BY ... DESC -
https://github.com/rathena/rathena/wiki/diff or ask the file author for assistance.
-
sell it as a custom item box. add the item box into the quest shop add the script that give refined item into the item_db
-
when your character are muted, it cant use command or chat. try replace the atcommand with these sc_start SC_MUTE, 10800000, 0; sc_end SC_MUTE; if you want a better approach, then use the setpcblock instead. *setpcblock <type>,<state>{,<account ID>}; *getpcblock {<account ID>}; 'setpcblock' command prevents/allows the player from doing the given <type> of action according to the <state> during the player session (note: @reloadscript removes all <type> except PCBLOCK_IMMUNE). The <type> values are bit-masks, multiples of <type> can be added to change the player action. The action is blocked when the <state> is true, while false allows the action again. 'getpcblock' command return the bit-mask value of the currently enabled block flags. Available <type>: PCBLOCK_MOVE Prevent the player from moving. PCBLOCK_ATTACK Prevent the player from attacking. PCBLOCK_SKILL Prevent the player from using skills/itemskills. PCBLOCK_USEITEM Prevent the player from using usable items. PCBLOCK_CHAT Prevent the player from sending global/guild/party/whisper messages. PCBLOCK_IMMUNE Prevent the player from being hit by monsters. PCBLOCK_SITSTAND Prevent the player from sitting/standing. PCBLOCK_COMMANDS Prevent the player from using atcommands/charcommands. PCBLOCK_NPCCLICK Prevent the player from clicking/touching any NPC/shop/warp. PCBLOCK_EMOTION Prevent the player from using emotions. PCBLOCK_NPC Simulate NPC interaction. Useful for NPC with no mes window. Sum of PCBLOCK_MOVE|PCBLOCK_SKILL|PCBLOCK_USEITEM|PCBLOCK_COMMANDS|PCBLOCK_NPCCLICK. PCBLOCK_ALL Sum of all the flags. Examples: // Make the attached player invulnerable to monster (same as @monsterignore) setpcblock PCBLOCK_IMMUNE, true; // Prevents the attached player from attacking and using skills setpcblock PCBLOCK_ATTACK|PCBLOCK_SKILL, true; // Re-enables attack, skills and item use setpcblock PCBLOCK_ATTACK|PCBLOCK_SKILL|PCBLOCK_USEITEM, false; // getpcblock related checks if (getpcblock() & PCBLOCK_IMMUNE) mes "You are invulnerable!"; if (getpcblock() & (PCBLOCK_MOVE|PCBLOCK_SITSTAND)) mes "You can't walk or sit."; if ((getpcblock() & (PCBLOCK_ATTACK|PCBLOCK_SKILL)) == 0) mes "You can attack and use skills."; if (getpcblock() & PCBLOCK_CHAT) mes "You can't chat.";
-
REQUESTING FOR INSTANTS EQUIPS DEPENDS ON JOB
Emistry replied to Enoch's question in Script Requests
something like this ? prontera,155,181,5 script Sample 757,{ [email protected] = select(.menu$) - 1; [email protected] = getarraysize(getd(".array_"+.class[[email protected]])); copyarray [email protected], getd(".array_"+.class[[email protected]]), [email protected]; for ([email protected] = 0; [email protected] < [email protected]; [email protected]++) { if (!countitem([email protected][[email protected]])) getitem [email protected][[email protected]], 1; if (!isequipped([email protected][[email protected]])) equip [email protected][[email protected]]; } mes "You have equipped your gear."; close; function func_EquipClassItem { [email protected] = getarg(0, 0); [email protected] = getargcount(); for ([email protected] = 1; [email protected] <= [email protected]; [email protected]++) [email protected][[email protected] - 1] = getarg([email protected], 0); copyarray .array copyarray getd(".array_"[email protected]), [email protected], [email protected] - 1; .menu$ = .menu$ + jobname([email protected]) + ":"; .class[getarraysize(.class)] = [email protected]; return; } OnInit: // func_EquipClassItem(<class>, <item_list>,...,<item_list>); func_EquipClassItem(Job_Champion, 2289, 2202, 5377, 1517, 2104, 2404); end; } -
https://rathena.org/board/jobs_available/
-
your packetver value aren't configured correctly according to your hexed client, or vice versa https://github.com/rathena/rathena/blob/master/src/config/packets.hpp#L16
-
just configure your GM group properly with the necessary atcommands. https://github.com/rathena/rathena/blob/master/conf/groups.conf
-
since its just one item as currency/requirement. just use itemshop instead. https://rathena.org/board/topic/90173-item-and-point-shop/
-
if (pc_readaccountreg(sd, add_str("#bank_eligible")) <= 0) { clif_messagecolor(&sd->bl, color_table[COLOR_RED], "You haven't open a bank account yet.", false, SELF); // Banking is disabled }
-
instead of using the atcommand, might as well just consider enable the config to auto loot all drops from mob kill ? https://github.com/rathena/rathena/blob/master/conf/battle/drops.conf#L10-L11
-
bindatcmd "shower",strnpcinfo(3)+"::OnShower", 99;
-
data\texture\effect\servant_demolition\data\texture\effect\servant_demolition\servant_demolition_rightdown\sav_helix_04.bmp based on this path, i dont think you added the file based on the structure correctly. perhaps it should be data\texture\effect\servant_demolition\servant_demolition_rightdown\sav_helix_04.bmp
-
you can easily found it by searching the forum
- 1 reply
-
- 1
-
-
trying to use emistry refine callfunc item/NPC
Emistry replied to AinsLord's question in Scripting Support
may try this //--- Bitmasks ---- // 1 - Accessory 1 // 2 - Accessory 2 // 4 - Footgear(shoes, boots) // 8 - Garment(mufflers, hoods, manteaux) // 16 - Lower Headgear(beards, some masks) // 32 - Middle Headgear(masks, glasses) // 64 - Upper Headgear // 128 - Armor(jackets, robes) // 256 - Left hand(weapons, shields) // 512 - Right hand(weapons) function script RefineFunc { for (set [email protected],EQI_ACC_L; [email protected] <= EQI_HAND_R; set [email protected],[email protected] + 1) set [email protected]$,[email protected]$ +((getarg(2) & pow(2,([email protected])) && getequiprefinerycnt([email protected]) >= getarg(3) && getequiprefinerycnt([email protected]) < getarg(4) && getequipisequiped([email protected]))?"^FF0000+"+getequiprefinerycnt([email protected])+" ^0000FF"+getequipname([email protected])+" "+(getitemslots(getequipid([email protected]))?"["+getitemslots(getequipid([email protected]))+"]":"")+"^000000":"")+":"; set [email protected],select([email protected]$); mes "Required ^FF0000"+getarg(1)+" x "+getitemname(getarg(0))+"^000000"; if (getarg(5) == 1 && !getequipisenableref([email protected])) mes "I cant refine this items. Because it is ^FF0000Un-Refineable^000000."; else{ if (select("^FF0000Refine^000000:Cancel") == 2) close; if (countitem(getarg(0)) < getarg(1)) close; delitem getarg(0),getarg(1); if (rand(100) < getarg(7)){ if (getarg(6)) while(getequiprefinerycnt([email protected]) < getarg(4)) successrefitem ([email protected]); else successrefitem ([email protected]); mes "You have refined : "; mes "^FF0000+"+getequiprefinerycnt([email protected])+" ^0000FF"+getequipname([email protected])+"^000000"; } else { failedrefitem ([email protected]); mes "Sorry, Failed in Refine and Equipment...Destroyed."; } } close; } -
may try something like this prontera,155,181,5 script Sample 757,{ for ([email protected] = bStr; [email protected] <= bLuk; [email protected]++) [email protected][[email protected] - bStr] = readparam([email protected]); mes "Select the stats to reset to 1."; do { [email protected]$ += "Str - "+ [email protected][0] + ":"; [email protected]$ += "Vit - "+ [email protected][1] + ":"; [email protected]$ += "Int - "+ [email protected][2] + ":"; [email protected]$ += "Agi - "+ [email protected][3] + ":"; [email protected]$ += "Dex - "+ [email protected][4] + ":"; [email protected]$ += "Luk - "+ [email protected][5] + ":"; [email protected]$ += "Reset"; [email protected] = select([email protected]$); [email protected][[email protected]] = 1; } while ([email protected] <= 6); resetstatus; for ([email protected] = bStr; [email protected] <= bLuk; [email protected]++) { while (readparam([email protected]) < [email protected][[email protected] - bStr]) statusup [email protected]; } end; }
-
change if(Hunter) { mes "You have killed ^880000"+HuntCount+"^000000/^0000FF"+Amt+"^000000 "+getmonsterinfo(Hunt,0)+"s, keep it up!"; close; } into if(Hunter && gettimetick(2) < HuntDelay) { mes "You have killed ^880000"+HuntCount+"^000000/^0000FF"+Amt+"^000000 "+getmonsterinfo(Hunt,0)+"s, keep it up!"; close; }
-
Clarification on bExpAddRace and bDropAddRace
Emistry replied to norightinfo's question in General Support
1000% = 10 times of your current item drop rate so 0.05% * 10 = 0.50% 3000% = 30 times of your current item drop rate so 0.03% * 30 = 0.90% -
prontera,164,173,3 script Refiner 826,{ mes "^3355FF[%100 Refiner]^000000"; mes "This Lets you refine your item to the max"; mes " You Need "+.amount+"x "+getitemname(.item_id)+" to use my Service"; next; mes "Choose the item to refine"; mes "Choose Wisely"; mes "Dont Ask For refine"; mes "On GameMasters"; mes "Think Before you refine an item"; next; for ([email protected] = 0; [email protected] < .eqi_size; [email protected]++) { if (getequipid(.eqi[[email protected]]) != -1) [email protected]$ = [email protected]$ + F_getpositionname(.eqi[[email protected]]) + " - " +getitemname(getequipid(.eqi[[email protected]])); [email protected]$ += ":"; } [email protected] = select([email protected]$) - 1; [email protected] = getequiprefinerycnt(.eqi[[email protected]]); if (countitem(.item_id) < .amount) { mes "You didnt have enough "+.amount+"x "+getitemname(.item_id); } else if ([email protected] >= 20) { mes "Your item already reached max refine."; } else { delitem .item_id, .amount; if ([email protected] < 10) { successrefitem .eqi[[email protected]], (10 - [email protected]); } else { successrefitem .eqi[[email protected]]; } announce "["+strcharinfo(0)+"], Thanks for using my great service :)).", bc_self; } close; OnInit: .item_id = 7179; .amount = 10; setarray .eqi, EQI_HEAD_TOP, EQI_HEAD_MID, EQI_HEAD_LOW, EQI_ARMOR, EQI_HAND_L, EQI_HAND_R, EQI_GARMENT, EQI_SHOES, EQI_ACC_L, EQI_ACC_R; .eqi_size = getarraysize(.eqi); end; }
- 1 reply
-
- 1
-