-
Posts
10018 -
Joined
-
Days Won
409
Content Type
Profiles
Forums
Downloads
Jobs Available
Server Database
Third-Party Services
Top Guides
Store
Everything posted by Emistry
-
your groups id are different than the value that stored in the variable $@LeagueBG1_id1
-
Hunting Mission Need to Add Zeny reward to 500K
Emistry replied to DEsMOn's question in Scripting Support
change .@Zeny = #Mission_Count * .Quests * .@j[.@i] * .Modifier[2]; to .@Zeny = 500000; -
level and class check on freebies script
Emistry replied to celeron0134's question in Scripting Support
try prontera,244,55,4 script Freebies 718,{ while (.rewardable_jobs[.@i] != Class && .@i < .rewardable_jobs_size) .@i++; if (.@i >= .rewardable_jobs_size) { mes "Your job class aren't eligible."; } else if (BaseLevel < .max_base || JobLevel < .max_job) { mes "Required "+.max_base+"/"+.max_job+"."; } else if (#Freebies) { mes "You have claimed the Reward already."; } else { #Freebies = 1; mes "Welcome to MyServerNameHere, Here are your start items!"; mes "You only get this once for each account!"; getitembound 31957,2,1; } close; OnInit: .max_base = 99; .max_job = 50; setarray .rewardable_jobs, Job_Knight, Job_Alchemist, Job_Assassin, Job_Bard, Job_Blacksmith, Job_Crusader, Job_Dancer, Job_Hunter, Job_Monk, Job_Priest, Job_Rogue, Job_Sage, Job_Wizard; .rewardable_jobs_size = getarraysize(.rewardable_jobs); end;- 1 reply
-
- 1
-
-
bonus3 bAutoSpell,sk,y,n; Adds a n/10% chance to cast skill sk of level y when attacking bonus3 bAutoSpell,"RG_STRIPWEAPON",getskilllv("RG_STRIPWEAPON"),(getskilllv("RG_STRIPWEAPON") * 10); bonus3 bAutoSpell,"RG_STRIPSHIELD",getskilllv("RG_STRIPSHIELD"),(getskilllv("RG_STRIPSHIELD") * 10); bonus3 bAutoSpell,"RG_STRIPARMOR",getskilllv("RG_STRIPARMOR"),(getskilllv("RG_STRIPARMOR") * 10); bonus3 bAutoSpell,"RG_STRIPHELM",getskilllv("RG_STRIPHELM"),(getskilllv("RG_STRIPHELM") * 10); bonus3 bAutoSpell,"TF_STEAL",getskilllv("TF_STEAL"),(getskilllv("TF_STEAL") * 10);
-
try prontera,155,181,5 script Sample 757,{ if (!ispartneron()) { mes "Your partner isn't online or not found."; } else if (getchildid()) { mes "You already has a child."; } else { mes "Would you like to adopt someone?"; next; if (select("Yes", "Cancel") == 1) { mes "Enter Child name"; input .@child_name$; switch(adopt(strcharinfo(0), .@child_name$)) { case ADOPT_ALLOWED: mes "Sent message to Baby to accept or deny."; break; case ADOPT_ALREADY_ADOPTED: mes "Character is already adopted."; break; case ADOPT_MARRIED_AND_PARTY: mes "Parents need to be married and in a party with the baby."; break; case ADOPT_EQUIP_RINGS: mes "Parents need wedding rings equipped."; break; case ADOPT_NOT_NOVICE: mes "Baby is not a Novice."; break; case ADOPT_CHARACTER_NOT_FOUND: mes "A parent or Baby was not found."; break; case ADOPT_MORE_CHILDREN: mes "You cannot adopt more than 1 child. (client message)"; break; case ADOPT_LEVEL_70: mes "Parents need to be at least level 70 in order to adopt someone. (client message)"; break; case ADOPT_MARRIED: mes "You cannot adopt a married person. (client message)"; break; } } } close; }
-
Egg Script with Random Reward and % Chance of Winning
Emistry replied to akosiesooon's question in Script Requests
perhaps try use the search feature in future? I am sure you could find tons of sample scripts ex: https://rathena.org/board/topic/128070-r-add-custom-points-in-this-random-box-function/?do=findComment&comment=396123 https://rathena.org/board/topic/112078-announce-item-from-random-box/?do=findComment&comment=329822 -
offtopic: tbh, everyone is relying too much on the 3rd party tools data without realize that getitembound or bounded/untradeble items would have been your perfect solution to prevent any abusive behavior to redeem the rewards.
-
remove the mvp from this list. setarray .mvpid[0], 1511,// Amon Ra 1647,// Assassin Cross Eremes 1785,// Atroce 1630,// Bacsojin 1039,// Baphomet 1874,// Beelzebub 1272,// Dark Lord 1719,// Datale 1046,// Doppelgangger 1389,// Dracula 1112,// Drake 1115,// Eddga 1418,// Evil Snake Lord 1871,// Fallen Bishop 1252,// Garm 1768,// Gloom Under Night 1086,// Golden Thief Bug 1885,// Gopinich 1649,// High Priest Magaleta 1651,// High Wizard Katrinn 1832,// Ifrit 1492,// Incantation Samurai 1734,// Kiel D-01 1251,// Knight of Windstorm 1779,// Ktullanux 1688,// Lady Tanee 1646,// Lord Knight Seyren 1373,// Lord of Death 1147,// Maya 1059,// Mistress 1150,// Moonlight Flower 1087,// Orc Hero 1190,// Orc Lord 1038,// Osiris 1157,// Pharaoh 1159,// Phreeoni 1623,// RSX 0806 1650,// Sniper Shecil 1583,// Tao Gunka 1708,// Thanatos 1312,// Turtle General 1751,// Valkyrie Randgris 1685,// Vesper 1648,// Whitesmith Harword 1917,// Wounded Morocc 1658;// Ygnizem
-
the skill required a source target that use the skill, I dont think the NPC can actually cast the skill for you to display the effect. However, you can still create a similar result by duplicating some NPC which will display and hold the effect, since the effect required a immobile npc object to stick to it. prontera,150,180,4 script Bard 51,14,14,{ end; OnInit: .range = 5; .hp_healing_rate = 3; .sp_healing_rate = 3; getmapxy(.npc_map$, .npc_x, .npc_y, BL_NPC); initnpctimer; .@npc_count = 0; for (.@x = (.npc_x - .range); .@x <= (.npc_x + .range); .@x += 2) { for (.@y = (.npc_y - .range); .@y <= (.npc_y + .range); .@y += 2) { .@npc_count++; movenpc "Bard#effect_" + .@npc_count, .@x, .@y; } } end; OnTouch_: donpcevent "::OnIdunActivate"; playBGMall "57",.npc_map$,(.npc_x - .range),(.npc_y - .range),(.npc_x + .range),(.npc_y + .range); // Don't Cry Baby end; OnTimer3000: initnpctimer; areapercentheal .npc_map$,(.npc_x - .range),(.npc_y - .range),(.npc_x + .range),(.npc_y + .range), .hp_healing_rate, .sp_healing_rate; addrid(4, 0, (.npc_x - .range),(.npc_y - .range),(.npc_x + .range),(.npc_y + .range)); if (Hp < MaxHp) { .@value = ((MaxHp * 100) / .hp_healing_rate); skilleffect "AL_HEAL", .@value; } end; } - script Bard#effect -1,{ end; OnIdunActivate: misceffect EF_BOTTOM_APPLEIDUN; end; } // add more if you enlarge the effect area. prontera,1,1,4 duplicate(Bard#effect) Bard#effect_1 139 prontera,1,1,4 duplicate(Bard#effect) Bard#effect_2 139 prontera,1,1,4 duplicate(Bard#effect) Bard#effect_3 139 prontera,1,1,4 duplicate(Bard#effect) Bard#effect_4 139 prontera,1,1,4 duplicate(Bard#effect) Bard#effect_5 139 prontera,1,1,4 duplicate(Bard#effect) Bard#effect_6 139 prontera,1,1,4 duplicate(Bard#effect) Bard#effect_7 139 prontera,1,1,4 duplicate(Bard#effect) Bard#effect_8 139 prontera,1,1,4 duplicate(Bard#effect) Bard#effect_9 139 prontera,1,1,4 duplicate(Bard#effect) Bard#effect_10 139 prontera,1,1,4 duplicate(Bard#effect) Bard#effect_11 139 prontera,1,1,4 duplicate(Bard#effect) Bard#effect_12 139 prontera,1,1,4 duplicate(Bard#effect) Bard#effect_13 139 prontera,1,1,4 duplicate(Bard#effect) Bard#effect_14 139 prontera,1,1,4 duplicate(Bard#effect) Bard#effect_15 139 prontera,1,1,4 duplicate(Bard#effect) Bard#effect_16 139 prontera,1,1,4 duplicate(Bard#effect) Bard#effect_17 139 prontera,1,1,4 duplicate(Bard#effect) Bard#effect_18 139 prontera,1,1,4 duplicate(Bard#effect) Bard#effect_19 139 prontera,1,1,4 duplicate(Bard#effect) Bard#effect_20 139 prontera,1,1,4 duplicate(Bard#effect) Bard#effect_21 139 prontera,1,1,4 duplicate(Bard#effect) Bard#effect_22 139 prontera,1,1,4 duplicate(Bard#effect) Bard#effect_23 139 prontera,1,1,4 duplicate(Bard#effect) Bard#effect_24 139 prontera,1,1,4 duplicate(Bard#effect) Bard#effect_25 139 prontera,1,1,4 duplicate(Bard#effect) Bard#effect_26 139 prontera,1,1,4 duplicate(Bard#effect) Bard#effect_27 139 prontera,1,1,4 duplicate(Bard#effect) Bard#effect_28 139 prontera,1,1,4 duplicate(Bard#effect) Bard#effect_29 139 prontera,1,1,4 duplicate(Bard#effect) Bard#effect_30 139 prontera,1,1,4 duplicate(Bard#effect) Bard#effect_31 139 prontera,1,1,4 duplicate(Bard#effect) Bard#effect_32 139 prontera,1,1,4 duplicate(Bard#effect) Bard#effect_33 139 prontera,1,1,4 duplicate(Bard#effect) Bard#effect_34 139 prontera,1,1,4 duplicate(Bard#effect) Bard#effect_35 139 prontera,1,1,4 duplicate(Bard#effect) Bard#effect_36 139 https://imgur.com/aWiDtTb
-
prontera,150,180,4 script Bard 51,{ end; OnInit: .range = 7; .hp_healing_rate = 3; .sp_healing_rate = 3; getmapxy(.npc_map$, .npc_x, .npc_y, BL_NPC); initnpctimer; end; OnTimer3000: initnpctimer; areapercentheal .npc_map$,(.npc_x - .range),(.npc_x - .range),(.npc_x + .range),(.npc_x + .range), .hp_healing_rate, .sp_healing_rate; addrid(4, 0, (.npc_x - .range),(.npc_x - .range),(.npc_x + .range),(.npc_x + .range)); playBGM "57"; // Don't Cry Baby end; } or prontera,150,180,4 script Bard 51,{ end; OnInit: .range = 7; .hp_healing_rate = 3; .sp_healing_rate = 3; getmapxy(.npc_map$, .npc_x, .npc_y, BL_NPC); initnpctimer; end; OnTimer3000: initnpctimer; areapercentheal .npc_map$,(.npc_x - .range),(.npc_x - .range),(.npc_x + .range),(.npc_x + .range), .hp_healing_rate, .sp_healing_rate; playBGMall "57",.npc_map$,(.npc_x - .range),(.npc_x - .range),(.npc_x + .range),(.npc_x + .range); // Don't Cry Baby end; }
-
Can I change the English translation back to Korean?
Emistry replied to MCALLI's question in Client-side Support
just use the original kro files, and dont change anything. -
prontera,155,181,5 script Sample 45,2,2,{ end; function func_AddWarp { .@map$ = getarg(0, ""); .@x = getarg(1, 0); .@y = getarg(2, 0); if (getmapusers(.@map$) >= 0) { .map$[.map_size] = .@map$; .x[.map_size] = .@x; .y[.map_size] = .@y; .map_size++; } return; } OnTouch: warp .map$[.index], .x[.index], .y[.index]; end; OnInit: // func_AddWarp("map", x, y); func_AddWarp("prontera", 155, 181); func_AddWarp("payon", 0, 0); func_AddWarp("izlude", 100, 100); func_AddWarp("prt_fild01", 120, 60); OnHour00: .index = rand(.map_size); end; }
-
R> Add custom points in this Random Box Function
Emistry replied to lelouchxv's question in Scripting Support
function script F_RBox { // change Item ID here setarray .@i1[0],607,608; // Common Items setarray .@i2[0],512,513; // Rare Items setarray .@i3[0],514,515; // Super Rare Items set .@i1rand,rand( getarraysize(.@i1) ); // Randomize Common Items; just change max amount if you add items set .@i2rand,rand( getarraysize(.@i2) ); // Randomize Rare Items; just change max amount if you add items set .@i3rand,rand( getarraysize(.@i3) ); //Randomize Super Rare Items; just change max amount if you add items .@chance = rand(100); // Super Rare Item 1% if (.@chance == 0) { getitem .@i3[.@i3rand],1; announce "["+strcharinfo(0)+"] won a ["+getitemname(.@i3[.@i3rand])+"] from the Super Rare Box.",0; } else if (.chance <= 10) { // 10% getitem .@i2[.@i2rand],1; announce "["+strcharinfo(0)+"] won a ["+getitemname(.@i2[.@i2rand])+"] from the Rare Item Box.",0; } else if (.chance <= 15) { // 5% #pvppoints += 1; announce "["+strcharinfo(0)+"] won a [1 #pvppoints] from the Rare Item Box.",0; } else if (.chance <= 22) { // 7% #HourlyPoints += 2; announce "["+strcharinfo(0)+"] won a [2 #HourlyPoints] from the Rare Item Box.",0; } else if (.chance <= 50) { // 28% #Cashpoints += 3; announce "["+strcharinfo(0)+"] won a [3 #Cashpoints] from the Rare Item Box.",0; } // Common Items // 50% else { getitem .@i1[.@i1rand],1; } end; } -
try get version 4.4, added the option to skip the SECURE_NPCTIMEOUT // ignore SECURE_NPCTIMEOUT .ignore_secure_npctimeout = 0; gender isn't a style, and there are so much gender changer in the forum.
-
you can raise the exp by 100x for each level above 255 instead.
-
bonus5 bAutoSpell,x,y,n,t,i; n/10% chance to cast skill x of level y when attacking (supports skill names) t: Trigger criteria: BF_SHORT: Trigger on melee attack BF_LONG: Trigger on ranged attack ( Default: BF_SHORT+BF_LONG ) BF_WEAPON: Trigger on weapon skills BF_MAGIC: Trigger on magic skills BF_MISC: Trigger on misc skills ( Default: BF_WEAPON ) BF_NORMAL: Trigger on normal attacks. BF_SKILL: Trigger on skills (Default: BF_SKILL if type is BF_MISC or BF_MAGIC, BF_NORMAL if type is BF_WEAPON) i: 0=cast on self 1=cast on enemy, not on self 2=use random skill lv in [1..y] 3=1+2 (random lv on enemy) do you meant trigger autospell on magical attack?
-
You can actually just follow the Awakening/Berserk Potion trick, which set the equip level to 50, then only level 50 and above only able to use the items. 603,Old_Blue_Box,Old Blue Box,2,10000,,200,,,,,0xFFFFFFFF,7,2,,,50,,,{ getrandgroupitem(IG_BlueBox),1; },{},{} Your attempt above are workable, but it will remove your item if you character have less than 50 level.
-
vip_lounge,157,139,4 script Potion Converter 100,{ mes "Hi! I can convert your potions to your choice."; mes "Select which item you want to exchange."; next; switch(select("Segen White Potion 2x->Segen Blue Potion 1x:Segen Blue Potion 2x->Segen White Potion 1x:Siege White Potion 2x->Siege Blue Potion1x:Siege Blue Potion2x->Siege White Potion1x:Close")) { case 1: mes "How much?"; input .@num, 1, 30000; if(countitem(11503) >= .@num) { delitem 11503, .@num; getitem 11504, .@num/2; } else if ((.@weight) > 50){ mes "Hmmmm... it seems you are overweight"; } else if(countitem(11503) < .@num) { mes "Sorry You don't have the required item!"; } break; case 2: mes "How much?"; input .@num, 1, 30000; if(countitem(11504) >= .@num) { delitem 11504, .@num; getitem 11503, .@num/2; } else if ((.@weight) > 50){ mes "Hmmmm... it seems you are overweight"; } else if(countitem(11504) < .@num) { mes "Sorry You don't have the required item!"; } break; case 3: mes "How much?"; input .@num, 1, 30000; if(countitem(32007) >= .@num) { delitem 32007, .@num; getitem 32008, .@num/2; } else if ((.@weight) > 50){ mes "Hmmmm... it seems you are overweight"; } else if(countitem(32007) < .@num) { mes "Sorry You don't have the required item!"; } break; case 4: mes "How much?"; input .@num, 1, 30000; if(countitem(32008) >= .@num) { delitem 32008, .@num; getitem 32007, .@num/2; } else if ((.@weight) > 50){ mes "Hmmmm... it seems you are overweight"; } else if(countitem(32008) < .@num) { mes "Sorry You don't have the required item!"; } default: break; } close; OnInit: waitingroom "Convert pots here",0; end; } just add a default minimum value to the input or add a checking to validate the minimum input amount.
-
Kill 100 Andre and Spawn 1 poring(Max 5 porings) script
Emistry replied to cmsm94's question in Script Requests
Replace original anthell spawn script with this. anthell01,0,0 monster Andre 1095,15,5000,0,"sample::OnKill" and load this npc script - script sample -1,{ OnKill: .mob_count++; if (.mob_count && .mob_count % 100 == 0) { .mob_count = 0; getmapxy(.@map$, .@x, .@y, BL_PC); if (mobcount(.@map$, strnpcinfo(3)+"::OnMobKill") < 5) { monster .@map$, .@x + rand(-3,3), .@y + rand(-3,3), "--ja--", 1002, 1, strnpcinfo(3)+"::OnMobKill"; } } end; OnMobKill: end; } -
- script sample -1,{ OnInit: bindatcmd "giveitem", strnpcinfo(3)+"::OnAtcommand", 99, 99; end; OnAtcommand: if (.@atcmd_numparameters < 2) { dispbottom .@atcmd_command$ + " failed. Usage: " + .@atcmd_command$ + " <item_id> <amount> <map>"; end; } .@item_id = atoi(.@atcmd_parameters$[0]); if (getitemname(.@item_id) == "null") { dispbottom .@atcmd_command$ + " failed. Invalid item #" + .@item_id; end; } .@amount = 1; .@map$ = strcharinfo(3); if (.@atcmd_parameters$[1] != "") .@amount = min(atoi(.@atcmd_parameters$[1]), 30000); if (.@atcmd_parameters$[2] != "") .@map$ = .@atcmd_parameters$[2]; announce "<SYSTEM> GM "+strcharinfo(0)+" gave "+.@amount+"x "+getitemname(.@item_id)+" everyone in "+.@map$+".", bc_all; addrid(5, 0 , .@map$); getitem .@item_id, .@amount; end; } @giveitem <item_id> <amount> {<map>}
-
prontera,173,176,4 script Emperium Breaker 743,{ // What Map will be used set .Map$,"job3_arch01"; // How many Top Breaker will be Recorded set .TopRank,10; // Message to Inform Players while inside the Room setarray .Instruction$[0], "Please Listen here carefully.", "This is Emperium Breaker Test Room , which is use to test your Breaking Time.", "Prepare youself...and do your best to Break it...", "Okay that's All i want to say , get Ready yourself and it will Start Soon."; while( 1 ){ mes "This is Emperium Breaker test Room. "; mes "You are able to calculate your Emperium Breaking Speed in this Room."; next; switch( select( ( getmapusers( .Map$ ) )?"^FF0000NOT Available":"^0000FFAvailable^000000", "Top ^FF0000"+.TopRank+"^000000 Breaker Ladder", ( getgmlevel() < 90 )?"":"^FF0000[GM]^000000 Reset Room", ( getgmlevel() < 90 )?"":"^FF0000[GM]^000000 Reset Ladder" )){ Case 1: if( getmapusers( .Map$ ) ){ mes "There is another player inside it now."; next; break; } warp .Map$,0,0; killmonster .Map$,"All"; // removemapflag .Map$,mf_noskill; donpcevent strnpcinfo(0)+"::OnReady"; end; Case 2: mes "^ED1ADCLatest Record^000000 : "+LatestRecord/1000+"."+LatestRecord%1000+" Seconds."; for( set .@i,0; .@i < .TopRank; set .@i,.@i + 1 ){ if( !$TopRankTime[.@i] ) break; mes "^FF0000Top "+( .@i + 1 )+" : ^0000FF"+$TopName$[.@i]+" "; mes "^FF0000Time Taken : ^ED1ADC[ "+$TopRankTime[.@i]/1000+"."+$TopRankTime[.@i]%1000+" Sec. ]^000000 "; } next; break; Case 3: mapannounce .Map$,"A GM has RESET the Breaker Test Room.",0,0x00FF00; killmonster .Map$,"All"; sleep2 3000; mapwarp .Map$,"prontera",156,175; mes "Done Reset. and Player who are inside are warped out."; next; break; Case 4: switch( select( "^0000FFAll Player^000000:^FF0000One Player^000000" ) ){ Case 1: deletearray $TopRankTime[0],getarraysize( $TopRankTime ); deletearray $TopName$[0],getarraysize( $TopName$ ); mes "RESETED WHOLE LADDER."; break; Case 2: mes "Please input the ^FF0000EXACT NAME^000000 of player you want to delete."; input .Name$; for( set .@i,0; .@i < .TopRank; set .@i,.@i + 1 ){ if( .Name$ == $TopName$[.@i] ){ deletearray $TopName$[.@i],1; deletearray $TopRankTime[.@i],1; mes "Removed ^FF0000"+.Name$+"^000000 from the List."; } } } next; break; } } OnReady: sleep 3000; for( set .@i,0; .@i < getarraysize( .Instruction$ ); set .@i,.@i + 1 ){ mapannounce .Map$,.Instruction$[.@i],0,0x00FF00; sleep 2500; } for( set .@i,5; .@i > 0; set .@i,.@i - 1 ){ mapannounce .Map$,"Count Down : "+.@i+" Seconds.",0,0x00FF00; sleep 1000; } //mapannounce .Map$,"Hit the Emperium Now and Skills Disabled.",0,0x00FF00; setmapflag .Map$,mf_noskill; monster .Map$,29,27,"Breaker Test",1288,1,strnpcinfo(0)+"::OnBreaked"; set .Record,0; sleep 500; initnpctimer; end; OnTimer600000: if( !mobcount( .Map$,strnpcinfo(0)+"::OnBreaked" ) ) end; mapannounce .Map$,"You spent too much time. i think you are AFK , so you are out.",0,0xED1ADC; sleep 3000; mapwarp .Map$,"prontera",156,175; stopnpctimer; end; OnBreaked: set .Time,getnpctimer(0); copyarray .@tempName$[0],$TopName$[0],getarraysize( $TopName$ ); copyarray .@tempRecord[0],$TopRankTime[0],getarraysize( $TopRankTime[0] ); set LatestRecord,.Time; for( set .@i,0; .@i < .TopRank; set .@i,.@i + 1 ){ if( .Time < $TopRankTime[.@i] || !$TopRankTime[.@i] ){ set $TopRankTime[.@i],.Time; set $TopName$[.@i],strcharinfo(0); copyarray $TopRankTime[.@i + 1],.@tempRecord[0],getarraysize( .@tempRecord ); copyarray $TopName$[.@i + 1],.@tempName$[0],getarraysize( .@tempName$ ); announce "[ "+strcharinfo(0)+" ] Achieved Top "+( .@i + 1 )+" in Emperium Breaking with "+.Time/1000+"."+.Time%1000+" Seconds !!!",bc_all,0xED1ADC; break; } } stopnpctimer; announce "Current Time Taken : "+.Time/1000+"."+.Time%1000+" Seconds. ",bc_self,0xED1ADC; // removemapflag .Map$,mf_noskill; sleep2 5000; mapwarp .Map$,"prontera",156,175; end; } job3_arch01 mapflag nocommand 50 job3_arch01 mapflag gvg on job3_arch01 mapflag gvg_castle job3_arch01 mapflag monster_noteleport job3_arch01 mapflag nosave SavePoint
-
if you're using the default script, then you shall change this instead. npc/guild2/agit_main_se.txt#L1492-L1505 OnGuardianStoneDied: set .@num, atoi(charat(strnpcinfo(1),2)); set .@var$,"$agit_"+substr(strnpcinfo(2),0,1)+substr(strnpcinfo(2),8,9); setd .@var$+"["+(.@num-1)+"]",1; if (getd(.@var$+"[0]") == 1 || getd(.@var$+"[0]") == 2) set .@destroyed, .@destroyed+1; if (getd(.@var$+"[1]") == 1 || getd(.@var$+"[1]") == 2) set .@destroyed, .@destroyed+1; if (playerattached()) mapannounce strnpcinfo(2),"The "+((.@num == 1)?"1st":"2nd")+" Guardian Stone has been destroyed by "+strcharinfo(3)+"!",bc_map,"0x00ff00"; else mapannounce strnpcinfo(2),"The "+((.@num == 1)?"1st":"2nd")+" Guardian Stone has been destroyed!",bc_map,"0x00ff00"; if (.@destroyed == 2) { mapannounce strnpcinfo(2),"All of the Guardian Stones have been destroyed!",bc_map,"0x00ff00"; donpcevent "RL0#"+strnpcinfo(2)+"::OnDisable"; } donpcevent "gard"+.@num+"#"+strnpcinfo(2)+"::OnReset"; initnpctimer; end;
-
Question||Script column maximum text||possible to increase or not
Emistry replied to AinsLord's question in Source Support
you can try adjust the limit to higher, not sure if its safe to use, but why would you need more than 1000 characters, you are probably doing something wrong. -
Aqua Benedicta / GAT Type 3 weirdness
Emistry replied to maraskan_user's question in General Support
Yes, its known issue that probably will never get a fix or updates. WeeMapCache would generate wrong mapcache. Use the default mapcache builder that provided by rAthena instead. -
Killing MOB A, everyone in the map gets item
Emistry replied to cmsm94's question in Script Requests
- script sample -1,{ OnInit: .map$ = "prontera"; monster .map$,0,0,"--ja--",1002,1, strnpcinfo(3)+"::OnKill"; end; OnKill: addrid(5, 0, .map$); .@rate = rand(100); if (.@rate < 20) { // 20% getitem 512, 1; } else if (.@rate < 35) { // 15% getitem 909, 2; } else if (.@rate < 45) { // 10% getitem 985, 3; } end; }- 1 reply
-
- 1
-