-
Posts
794 -
Joined
-
Last visited
-
Days Won
3
Content Type
Profiles
Forums
Downloads
Jobs Available
Server Database
Third-Party Services
Top Guides
Store
Everything posted by AinsLord
-
Changing Max Refine from 10 to 50 || Latest Rathena version
AinsLord posted a question in General Support
1st i already change status.hpp then what would be the next?? 2nd will the refiner NPC on prontera will enhance the item to up to +50 or should i create an custom NPC for refining 1 to 50?? 3rd if i need custom NPC on it anyone have that NPC?? thnx in advance -
i found this code here and edit it - script KoE -1,{ OnInit: disablenpc "The King#KoE"; disablenpc "Exit#KoE"; end; OnWhisperGlobal: if ( getgmlevel() < 99 ) end; else if ( compare ( @whispervar0$, "on" ) ) goto L_start; else if ( compare ( @whispervar0$, "off" ) ) goto L_end; else end; OnClock2230: L_end: announce "The King of Emperium Hill is over!", 0; set .koe_start, 0; enablenpc "Exit#KoE"; disablenpc "The King#KoE"; killmonsterall "guild_vs1"; end; OnClock2225: //etc if( gettime(4) != 1 && gettime(4) != 3 && gettime(4) != 5 && gettime(4) != 0 ) end; L_start: announce "The King of Emperium Hill has begun!", 0; set .koe_start, 1; enablenpc "The King#KoE"; disablenpc "Exit#KoE"; set $koegid, 0; donpcevent "::OnRevKoE"; maprespawnguildid "guild_vs1", $koegid, 6; monster "guild_vs1",49,49,"EMPERIUM",1288,1,"KoE::OnEmpDead"; end; OnEmpDead: set $koegid, getcharid(2); announce "The current King of Emperium Hill is the [" + strcharinfo(2) + "] guild.", 0; donpcevent "::OnRevKoE"; maprespawnguildid "guild_vs1", $koegid, 6; sleep 500; if ( .koe_start ) monster "guild_vs1",49,49,"EMPERIUM",1288,1,"KoE::OnEmpDead"; end; } // KoE Entrance prontera,119,158,4 script The King#KoE 58,{ mes "[The King]"; if ( getcharid(2) == 0 ) { mes "You must have a guild to participate in the ^FF0000King of Emperium Hill Tournament^000000."; close; } mes "Hello."; mes "Would you like to participate in the ^FF0000King of Emperium Hill Tournament^000000?"; if ( select ( "Yes", "No" ) == 2 ) close; switch( rand(1,4) ){ case 1: warp "guild_vs1", 50, 88; end; case 2: warp "guild_vs1", 88, 50; end; case 3: warp "guild_vs1", 50, 11; end; case 4: warp "guild_vs1", 11, 50; end; } } // KoE Exit guild_vs1,49,56,5 script Exit#KoE 51,{ mes "[Exit]"; mes "See ya."; if ( getcharid(2) == $koegid ) getitem 501, 1; // configure prize here set Zeny,Zeny + 50000000; next; warp "Save",0,0; close; } // Flags guild_vs1,49,38,4 script King of Emperium Hill#1::koe_flag 722,{ set .@gid, $koegid; if ( .@gid == 0 ) end; mes "[King of Emperium Hill]"; mes "The Current King of Emperium Hill is the ["+ getguildname(.@gid) +"] guild."; close; OnRevKoE: flagemblem $koegid; end; } guild_vs1,61,49,6 duplicate(koe_flag) King of Emperium Hill#2 722 guild_vs1,38,49,2 duplicate(koe_flag) King of Emperium Hill#3 722 guild_vs1,49,61,0 duplicate(koe_flag) King of Emperium Hill#4 722 prontera,137,183,5 duplicate(koe_flag) King of Emperium Hill#5 722 guild_vs1 mapflag gvg guild_vs1 mapflag nobranch guild_vs1 mapflag nomemo guild_vs1 mapflag nopenalty guild_vs1 mapflag noreturn guild_vs1 mapflag nosave SavePoint guild_vs1 mapflag noteleport guild_vs1 mapflag gvg_noparty guild_vs1 mapflag nowarp guild_vs1 mapflag nowarpto 1. this KoE start 7pm til 730 did i put the right codes?? 2. is this KoE starts every monday/wednesday/friday/sunday? 3. how can i make when KoTH end it will announce the KoTH Winner? thnx for the help
-
callfunc on item help || give specific item that is character bounded
AinsLord replied to AinsLord's question in Scripting Support
thnx @Emistry ur d'best -
here is the script i found here by @Euphy this is a weapon box that they can choose weapon function script Shinbox { setarray .@Jobs$[0], "Spear:Shuriken"; setarray .@Items[0], 47001, 47002; set .@menu$,""; for(set .@i,0; .@i<getarraysize(.@Jobs$); set .@i,.@i+1) set .@menu$, .@menu$+.@Jobs$[.@i]+":"; getitem .@Items[select(.@menu$)], 1; return; } here's my concern 1. when i click the item and shows the list i clicked shuriken item 2 doesnt show and give this error on my console [Error]: buildin_getitem: Nonexistant item 0 requested. [Debug]: Source (NPC): FAKE_NPC (invisible/not on a map) 2. when i clicked the spear selection the item 2 will come out not the 1st item 3. how can i make the items bounded on character thnx for the help
-
KoE script bug || able to attack emp by the same guild even its already capture
AinsLord replied to AinsLord's question in Scripting Support
will this work on the latest rev on github?? -
PVP points per kill script help || PVP points add and minus if dies
AinsLord replied to AinsLord's question in Scripting Support
thnx man -
PVP points per kill script help || PVP points add and minus if dies
AinsLord posted a question in Scripting Support
i got this script here - script PVP -1,{ OnInit: set .Delay,180; end; OnPCKillEvent: if( @Delay < gettimetick(2) ){ set .@Amount,rand(1,4); set #CASHPOINTS,#CASHPOINTS + .@Amount; dispbottom "Gained "+.@Amount+" Cash Point. Total = "+#CASHPOINTS+" Cash Points."; if( .Delay ) set @Delay,gettimetick(2) + .Delay; } end; } 1. just wonder this script also works in GVG maps right?? 2. How can i make it PVP points not CP ill just change the #CASHPOINTS to #PVPPOINTS?? 3. How can i add if the player killed he will be lose 1 PVP points?? thnx for the help -
here is the script i found here - script KoE -1,{ OnInit: disablenpc "The King#KoE"; disablenpc "Exit#KoE"; end; OnWhisperGlobal: if ( getgmlevel() < 99 ) end; else if ( compare ( @whispervar0$, "on" ) ) goto L_start; else if ( compare ( @whispervar0$, "off" ) ) goto L_end; else end; L_end: announce "The King of Emperium Hill is over!", 0; set .koe_start, 0; enablenpc "Exit#KoE"; disablenpc "The King#KoE"; killmonsterall "guild_vs1"; end; OnClock1930: OnClock2100: //etc if( gettime(4) != 1 && gettime(4) != 3 && gettime(4) != 5 && gettime(4) != 0 ) end; L_start: announce "The King of Emperium Hill has begun!", 0; set .koe_start, 1; enablenpc "The King#KoE"; disablenpc "Exit#KoE"; set $koegid, 0; donpcevent "::OnRevKoE"; maprespawnguildid "guild_vs1", $koegid, 6; monster "guild_vs1",49,49,"EMPERIUM",1288,1,"KoE::OnEmpDead"; end; OnEmpDead: set $koegid, getcharid(2); announce "The current King of Emperium Hill is the [" + strcharinfo(2) + "] guild.", 0; donpcevent "::OnRevKoE"; maprespawnguildid "guild_vs1", $koegid, 6; sleep 500; if ( .koe_start ) monster "guild_vs1",49,49,"EMPERIUM",1288,1,"KoE::OnEmpDead"; end; } // KoE Entrance prontera,119,158,4 script The King#KoE 58,{ mes "[The King]"; if ( getcharid(2) == 0 ) { mes "You must have a guild to participate in the ^FF0000King of Emperium Hill Tournament^000000."; close; } mes "Hello."; mes "Would you like to participate in the ^FF0000King of Emperium Hill Tournament^000000?"; if ( select ( "Yes", "No" ) == 2 ) close; switch( rand(1,4) ){ case 1: warp "guild_vs1", 50, 88; end; case 2: warp "guild_vs1", 88, 50; end; case 3: warp "guild_vs1", 50, 11; end; case 4: warp "guild_vs1", 11, 50; end; } } // KoE Exit guild_vs1,49,56,5 script Exit#KoE 51,{ mes "[Exit]"; mes "See ya."; if ( getcharid(2) == $koegid ) getitem 501, 1; // configure prize here set Zeny,Zeny + 50000000; next; warp "Save",0,0; close; } // Flags guild_vs1,49,38,4 script King of Emperium Hill#1::koe_flag 722,{ set .@gid, $koegid; if ( .@gid == 0 ) end; mes "[King of Emperium Hill]"; mes "The Current King of Emperium Hill is the ["+ getguildname(.@gid) +"] guild."; close; OnRevKoE: flagemblem $koegid; end; } guild_vs1,61,49,6 duplicate(koe_flag) King of Emperium Hill#2 722 guild_vs1,38,49,2 duplicate(koe_flag) King of Emperium Hill#3 722 guild_vs1,49,61,0 duplicate(koe_flag) King of Emperium Hill#4 722 guild_vs1 mapflag gvg guild_vs1 mapflag nobranch guild_vs1 mapflag nomemo guild_vs1 mapflag nopenalty guild_vs1 mapflag noreturn guild_vs1 mapflag nosave SavePoint guild_vs1 mapflag noteleport guild_vs1 mapflag gvg_noparty guild_vs1 mapflag nowarp guild_vs1 mapflag nowarpto its like this when Guild A killed the emp guild A are still able to hit the emp is it KoE works like that??? EDIT: it shows here https://rathena.org/board/topic/69723-king-of-emperium-script/ that its a point system but that one is different
-
i enable the mission hunting quest on rathena i got this error [Warning]: script:op_2num: overflow detected op=C_MUL i1=47 i2=690130000 [Debug]: Source (NPC): Hunting Missions at prontera (145,172) [Warning]: script:op_2num: overflow detected op=C_MUL i1=47 i2=307900000 [Debug]: Source (NPC): Hunting Missions at prontera (145,172) here is the script //===== rAthena Script ======================================= //= Hunting Missions //===== By: ================================================== //= Euphy //===== Current Version: ===================================== //= 1.4 //===== Compatible With: ===================================== //= rAthena Project //===== Description: ========================================= //= Random hunting missions. //= Rewards are based on quest difficulty. //= //= NOTE: Requires SQL mob database. //===== Additional Comments: ================================= //= 1.0 Initial script. //= 1.1 Small improvements and fixes. //= 1.2 Added party support and replaced blacklists with an //= SQL query, both thanks to AnnieRuru. //= 1.3 Re-added a blacklist adapted for the SQL query. //= 1.3a Added mission reset options. //= 1.3b Function updates. //= 1.4 Check for deleted characters, thanks to AnnieRuru. //= Syntax updates and style cleaning. //============================================================ prontera,145,172,5 script Hunting Missions 951,{ function Chk; mes "[Hunting Missions]"; mes "Hello, " + strcharinfo(0) + "!"; if (!#Mission_Delay) { next; mes "[Hunting Missions]"; mes "I can't find any records..."; mes "You must be new here!"; emotion e_omg; next; callsub Mission_Info; emotion e_go; #Mission_Delay = 1; close; } mes rand(2) ? "Working hard, as always..." : "Not slacking, I hope..."; mes "Is there anything I can help"; mes "you with?"; mes " "; mes "^777777~ You've completed " + callfunc("F_InsertPlural",Mission_Total,"mission",0,"^0055FF%d^777777 %s") + ". ~^000000"; next; switch(select( ((!Mission0) ? " ~ New Mission::" : ": ~ Mission Status: ~ Abandon Mission") + ": ~ Information: ~ Mission Shop: ~ View Top Hunters: ~ ^777777Cancel^000000" )) { case 1: mes "[Hunting Missions]"; if (#Mission_Count) { mes "You've started a mission"; mes "on another character."; if (!@hm_char_del_check) { // check for deleted character query_sql("SELECT 1 FROM `char_reg_num` WHERE `key` = 'Mission0' AND `char_id` IN(SELECT `char_id` FROM `char` WHERE `account_id` = " + getcharid(3) + ")", .@i); if (!.@i) { next; mes "[Hunting Missions]"; mes "I can't seem to find any records"; mes "for that character, though..."; mes "One moment, please."; emotion e_hmm; #Mission_Count = 0; } @hm_char_del_check = 1; } close; } if (#Mission_Delay > gettimetick(2) && .Delay) { mes "I'm afraid you'll have to wait " + callfunc("Time2Str",#Mission_Delay) + " before taking another mission."; close; } mes "You must hunt:"; query_sql("SELECT ID FROM `" + .mob_db$ + "` WHERE left(Sprite, 4) != 'meta' AND left(Sprite, 2) != 'E_' AND ~Mode & 32 AND EXP > 0 AND MVP1id = 0 AND DropCardid > 4000 AND DropCardid < 5000 AND ID < 2000 AND instr('"+.Blacklist$+"',ID) = 0 ORDER BY rand() LIMIT " + .Quests, .@mob); for (.@i = 0; .@i < .Quests; .@i++) { setd "Mission" + .@i, .@mob[.@i]; setd "Mission" + .@i +"_", 0; } #Mission_Count = rand(.Count[0], .Count[1]); callsub Mission_Status; next; mes "[Hunting Missions]"; mes "Report back when"; mes "you've finished."; mes "Good luck!"; close; case 2: mes "[Hunting Missions]"; mes "Mission status:"; callsub Mission_Status; close; case 3: mes "[Hunting Missions]"; mes "Do you really want to"; mes "abandon your mission?"; if (.Reset < 0 && .Delay) mes "Your delay time will not be reset."; else if (.Reset > 0) mes "It will cost " + callfunc("F_InsertComma",.Reset) + " Zeny."; next; switch(select(" ~ Abandon...: ~ ^777777Cancel^000000")) { case 1: if (.Reset > 0) { if (Zeny < .Reset) { mes "[Hunting Missions]"; mes "You don't have enough"; mes "Zeny to drop this mission."; emotion e_sry; close; } Zeny -= .Reset; emotion e_cash; } mes "[Hunting Missions]"; mes "Alright, I've dropped"; mes "your current mission."; specialeffect2 EF_STORMKICK4; for (.@i = 0; .@i < .Quests; .@i++) { setd "Mission"+.@i, 0; setd "Mission"+.@i+"_", 0; } #Mission_Count = 0; if (.Reset < 0 && .Delay) #Mission_Delay = gettimetick(2) + (.Delay * 3600); close; case 2: mes "[Hunting Missions]"; mes "I knew you were kidding!"; mes "Keep up the good work."; emotion e_heh; close; } case 4: callsub Mission_Info; close; case 5: mes "[Hunting Missions]"; mes "You have ^0055FF" + #Mission_Points + "^000000 Mission Points."; mes "Use them well!"; callshop "mission_shop",1; npcshopattach "mission_shop"; end; case 6: mes "[Hunting Missions]"; mes "The top hunters are:"; query_sql("SELECT char_id AS id, (SELECT `name` FROM `char` WHERE char_id = id),`value` FROM `char_reg_num` WHERE `key` = 'Mission_Total' ORDER BY CAST(`value` AS SIGNED) DESC LIMIT 5", .@id, .@name$, .@val); for (.@i = 0; .@i < 5; .@i++) mes " [Rank " + (.@i+1) + "] " + ((.@name$[.@i] == "") ? "^777777none" : "^0055FF" + .@name$[.@i]+"^000000 : ^FF0000" + .@val[.@i] + " pt.") + "^000000"; close; case 7: mes "[Hunting Missions]"; mes "Nothing? Okay..."; emotion e_hmm; close; } end; Mission_Status: @f = 0; deletearray .@j[0], getarraysize(.@j); for (.@i = 0; .@i < .Quests; .@i++) { .@j[.@i] = getd("Mission" + .@i); .@j[.Quests] = .@j[.Quests] + strmobinfo(3,.@j[.@i]); .@j[.Quests+1] = .@j[.Quests+1] + (strmobinfo(6,.@j[.@i]) / (getbattleflag("base_exp_rate") / 100) * .Modifier[0]); .@j[.Quests+2] = .@j[.Quests+2] + (strmobinfo(7,.@j[.@i]) / (getbattleflag("job_exp_rate") / 100) * .Modifier[1]); mes " > "+Chk(getd("Mission"+.@i+"_"),#Mission_Count) + strmobinfo(1,.@j[.@i]) + " (" + getd("Mission"+.@i+"_") + "/" + #Mission_Count + ")^000000"; } // Reward formulas: .@Mission_Points = 3 + (.@j[.Quests] / .Quests / 6); .@Base_Exp = #Mission_Count * .@j[.Quests+1] / 5; .@Job_Exp = #Mission_Count * .@j[.Quests+2] / 5; .@Zeny = #Mission_Count * .Quests * .@j[.@i] * .Modifier[2]; next; mes "[Hunting Missions]"; mes "Mission rewards:"; mes " > Mission Points: ^0055FF" + .@Mission_Points + "^000000"; mes " > Base Experience: ^0055FF" + callfunc("F_InsertComma",.@Base_Exp) + "^000000"; mes " > Job Experience: ^0055FF" + callfunc("F_InsertComma",.@Job_Exp) + "^000000"; mes " > Zeny: ^0055FF" + callfunc("F_InsertComma",.@Zeny) + "^000000"; if (@f) { @f = 0; return; } next; mes "[Hunting Missions]"; mes "Oh, you're done!"; mes "Good work."; mes "Here's your reward."; emotion e_no1; specialeffect2 EF_ANGEL; specialeffect2 EF_TRUESIGHT; #Mission_Points += .@Mission_Points; BaseExp += .@Base_Exp; JobExp += .@Job_Exp; Zeny += .@Zeny; for (.@i = 0; .@i < .Quests; .@i++) { setd "Mission" + .@i, 0; setd "Mission" + .@i+"_", 0; } #Mission_Count = 0; if (.Delay) #Mission_Delay = gettimetick(2) + (.Delay * 3600); Mission_Total++; if (Mission_Total == 1) query_sql("INSERT INTO `char_reg_num` (`char_id`,`key`,`index`,`value`) VALUES (" + getcharid(0) + ",'Mission_Total','0',1)"); else query_sql("UPDATE `char_reg_num` SET `value` = " + Mission_Total + " WHERE `char_id` = " + getcharid(0) + " AND `key` = 'Mission_Total'"); close; Mission_Info: mes "[Hunting Missions]"; mes "If you so choose, I can assign"; mes "you a random hunting quest."; mes "Some are easier than others, but"; mes "the rewards increase with difficulty."; next; mes "[Hunting Missions]"; mes "Missions points are shared"; mes "amongst all your characters."; if (.Delay) mes "Delay time is, too."; mes "You can't take missions on"; mes "multiple characters at once."; next; mes "[Hunting Missions]"; mes "You can start a quest"; mes (.Delay ? "every " + ((.Delay == 1) ? "hour." : .Delay + " hours.") : "whenever you want."); mes "That's everything~"; return; function Chk { if (getarg(0) < getarg(1)) { @f = 1; return "^FF0000"; } else return "^00FF00"; } OnBuyItem: @cost = 0; for (.@i = 0; .@i < getarraysize(@bought_nameid); .@i++) for (.@j = 0; .@j < getarraysize(.Shop); .@j += 2) if (@bought_nameid[.@i] == .Shop[.@j]) { set @cost, @cost + (.Shop[.@j+1] * @bought_quantity[.@i]); break; } mes "[Hunting Missions]"; if (@cost > #Mission_Points) mes "You don't have enough Mission Points."; else { for (.@i = 0; .@i < getarraysize(@bought_nameid); .@i++) { getitem @bought_nameid[.@i], @bought_quantity[.@i]; dispbottom "Purchased " + @bought_quantity[.@i] + "x " + getitemname(@bought_nameid[.@i]) + "."; } #Mission_Points -= @cost; mes "Deal completed."; emotion e_cash; } @cost = 0; deletearray @bought_nameid[0], getarraysize(@bought_nameid); deletearray @bought_quantity[0], getarraysize(@bought_quantity); close; OnNPCKillEvent: if (!getcharid(1) || !.Party) { if (!#Mission_Count || !Mission0) end; for (.@i = 0; .@i < .Quests; .@i++) { if (strmobinfo(1,killedrid) == strmobinfo(1,getd("Mission" + .@i))) { if (getd("Mission" + .@i + "_") < #Mission_Count) { dispbottom "[Hunting Mission] Killed " + (set(getd("Mission" + .@i + "_"),getd("Mission" + .@i + "_") + 1)) + " of " + #Mission_Count + " " + strmobinfo(1,killedrid) + "."; end; } } } } else if (.Party) { .@mob = killedrid; getmapxy(.@map1$,.@x1,.@y1,UNITTYPE_PC); getpartymember getcharid(1),1; getpartymember getcharid(1),2; for (.@i = 0; .@i < $@partymembercount; .@i++) { if (isloggedin($@partymemberaid[.@i], $@partymembercid[.@i])) { set .@Mission_Count, getvar(#Mission_Count, $@partymembercid[.@i]); set .@Mission0, getvar(Mission0, $@partymembercid[.@i]); set .@HP, readparam(HP, $@partymembercid[.@i]); if (.@Mission_Count && .@Mission0 && .@HP > 0) { getmapxy(.@map2$,.@x2,.@y2,UNITTYPE_PC); if ((.@map1$ == .@map2$ || .Party == 1) && (distance(.@x1,.@y1,.@x2,.@y2) <= 30 || .Party < 3)) { for (.@j = 0; .@j < .Quests; .@j++) { .@my_mob_id = getvar( getd("Mission"+.@j),$@partymembercid[.@i] ); .@my_count = getvar( getd("Mission"+.@j+"_"), $@partymembercid[.@i] ); if (strmobinfo(1,.@mob) == strmobinfo(1,.@my_mob_id)) { if (.@my_count < .@Mission_Count) { setd "Mission"+.@j+"_", (.@my_count+1), $@partymembercid[.@i]; dispbottom "[Hunting Mission] Killed " + (.@my_count+1) + " of " + .@Mission_Count + " " + strmobinfo(1,.@mob) + ".", 0x777777, $@partymembercid[.@i]; break; } } } } } } } } end; OnInit: .Delay = 6; // Quest delay, in hours (0 to disable). .Quests = 4; // Number of subquests per mission (increases rewards). .Party = 0; // Party options: 0 (exclude party kills), 1 (include party kills), 2 (same map only), 3 (screen area only) .Reset = -1; // Reset options: -1 (abandoning mission sets delay time), 0 (no delay time), [Zeny] (cost to abandon mission, no delay time) setarray .Count[0], // Min and max monsters per subquest (increases rewards). 40,50; setarray .Modifier[0], // Multipliers for Base Exp, Job Exp, and Zeny rewards. getbattleflag("base_exp_rate")/100,getbattleflag("job_exp_rate")/100,60; .mob_db$ = // Table name of SQL mob database (checkre(0))?"mob_db_re":"mob_db"; setarray .Shop[0], // Reward items: <ID>,<point cost> (about 10~20 points per hunt). 49992,100; .Blacklist$ = // Blacklisted mob IDs. "1062,1088,1183,1186,1200,1212,1220,1221,1234,1235,"+ "1244,1245,1250,1268,1290,1293,1294,1296,1298,1299,"+ "1300,1301,1303,1304,1305,1306,1308,1309,1311,1313,"+ "1515,1588,1618,1676,1677,1678,1679,1796,1797,1974,"+ "1975,1976,1977,1978,1979,1203,1108,1270,1289,1096,"+ "1388,1641,1873,1830,1839,1307,1283,1302,1582,1091,"+ "1093,1205,1783,1681,1120,1259,1990,1626,1643,1645,"+ "1720,1920,1918,1921,1919,1833,1640,1090,1262,1956,"+ "1700,1894,1701,1644,1703,1829,1991,1710,1705,1707,"+ "1712,1711,1706,1704,1709,1960,1961,1959,1958,1204,"+ "1089,1092,1765,1642,1929"; npcshopdelitem "mission_shop",512; for (.@i = 0; .@i < getarraysize(.Shop); .@i += 2) npcshopadditem "mission_shop", .Shop[.@i], .Shop[.@i+1]; end; } - shop mission_shop -1,512:-1
-
i'v tried everything here and it seems doesnt work fine im using the latest emu on github any new or updated src mod for soul link single strip bypass thnx for the help
-
FCP bypass by single strip when soul link
AinsLord replied to BlazingSpear's question in Source Support
i got error on this one // By pass FCP when using single strip skills by 15%(requires Glistening Coat). if ( sd && tsc && sd->sc.data[SC_SPIRIT] && sd->sc.data[SC_SPIRIT]->val2 == SL_ROGUE && rand()%100 < 75 && ( skill_id == RG_STRIPWEAPON && tsc->data[SC_CP_WEAPON] || skill_id == RG_STRIPSHIELD && tsc->data[SC_CP_SHIELD] || skill_id == RG_STRIPARMOR && tsc->data[SC_CP_ARMOR] || skill_id == RG_STRIPHELM && tsc->data[SC_CP_HELM] ) ) { int item_id = 7139; // Glistening Coat int ii; ARR_FIND( 0, MAX_INVENTORY, ii, sd->inventory.u.items_inventory[ii].nameid == item_id ); if ( ii < MAX_INVENTORY ) { pc_delitem( sd, ii, 1, 0, 0, LOG_TYPE_CONSUME); switch ( skill_id ) { case RG_STRIPWEAPON: status_change_end( bl, SC_CP_WEAPON, INVALID_TIMER ); sc_start(NULL,bl,SC_WEAPON,100,skill_lv,skill_get_time(skill_id,skill_lv))); break; case RG_STRIPSHIELD: status_change_end( bl, SC_CP_SHIELD, INVALID_TIMER ); sc_start(NULL,bl,SC_WEAPON,100,skill_lv,skill_get_time(skill_id,skill_lv))); break; case RG_STRIPARMOR: status_change_end( bl, SC_CP_ARMOR, INVALID_TIMER ); sc_start(NULL,bl,SC_WEAPON,100,skill_lv,skill_get_time(skill_id,skill_lv))); break; case RG_STRIPHELM: status_change_end( bl, SC_CP_HELM, INVALID_TIMER ); sc_start(NULL,bl,SC_WEAPON,100,skill_lv,skill_get_time(skill_id,skill_lv))); break; } clif_skill_nodamage( src, bl, skill_id, skill_lv, i ); break; } } here's the error skill.c: In function ‘skill_castend_nodamage_id’: skill.c:7678:31: warning: suggest parentheses around ‘&&’ within ‘||’ [-Wparentheses] ( skill_id == RG_STRIPWEAPON && tsc->data[SC_CP_WEAPON] || ^ skill.c:7680:28: warning: suggest parentheses around ‘&&’ within ‘||’ [-Wparentheses] skill_id == RG_STRIPARMOR && tsc->data[SC_CP_ARMOR] || ^ skill.c:7681:27: warning: suggest parentheses around ‘&&’ within ‘||’ [-Wparentheses] skill_id == RG_STRIPHELM && tsc->data[SC_CP_HELM] ) ) { ^ In file included from clan.h:12:0, from pc.h:19, from skill.c:17: skill.c:7690:22: error: ‘SC_WEAPON’ undeclared (first use in this function) sc_start(NULL,bl,SC_WEAPON,100,skill_lv,skill_get_time(skill_id,skill_lv))) ^ status.h:2316:78: note: in definition of macro ‘sc_start’ c_start(src, bl, type, rate, val1, tick) status_change_start(src,bl,type,100*(r ^ skill.c:7690:22: note: each undeclared identifier is reported only once for each function it appears in sc_start(NULL,bl,SC_WEAPON,100,skill_lv,skill_get_time(skill_id,skill_lv))) ^ status.h:2316:78: note: in definition of macro ‘sc_start’ c_start(src, bl, type, rate, val1, tick) status_change_start(src,bl,type,100*(r ^ skill.c:7690:79: error: expected ‘;’ before ‘)’ token sc_start(NULL,bl,SC_WEAPON,100,skill_lv,skill_get_time(skill_id,skill_lv))); ^ skill.c:7690:79: error: expected statement before ‘)’ token skill.c:7694:79: error: expected ‘;’ before ‘)’ token sc_start(NULL,bl,SC_WEAPON,100,skill_lv,skill_get_time(skill_id,skill_lv))); ^ skill.c:7694:79: error: expected statement before ‘)’ token skill.c:7698:79: error: expected ‘;’ before ‘)’ token sc_start(NULL,bl,SC_WEAPON,100,skill_lv,skill_get_time(skill_id,skill_lv))); ^ skill.c:7698:79: error: expected statement before ‘)’ token skill.c:7702:79: error: expected ‘;’ before ‘)’ token sc_start(NULL,bl,SC_WEAPON,100,skill_lv,skill_get_time(skill_id,skill_lv))); ^ skill.c:7702:79: error: expected statement before ‘)’ token make[1]: *** [obj/skill.o] Error 1 make[1]: Leaving directory `/root/rathena/src/map' make: *** [map] Error 2 -
ill try this one later thnx sader1992
-
Shield Chain Can be endowed by converters || is it Possible
AinsLord replied to AinsLord's question in General Support
ok sir ill test -
Shield Chain Can be endowed by converters || is it Possible
AinsLord posted a question in General Support
im actually trying to figure out if shield chain can be endowed using converters? if its possible how to do it thnx in advance -
still none but im using it
-
MATK damage question || Lowering Down the Formula of MATK
AinsLord posted a question in General Support
is there any way to lower down the MATK of mages?? and increasing the damage of Archers??? thnx for helping -
This is the NPC script pvp_n_4-5 mapflag restricted 7 prontera,127,212,0 script Emperium Breaker Test 1288,{ set .@gm, getgmlevel(); explode( .@b$, $empbrk_record$, "|" ); // Display records // --------------- mes "^FF0000~~ Emperium Breaker Test ~~^000000"; mes "Breaker Top 5 :"; if( !getarraysize( .@b$ ) ) mes "^777777*empty*^000000"; for( set .@i, 0; .@i < getarraysize( .@b$ ); set .@i, .@i + 1 ) mes "^777777"+ ( .@i + 1 ) +"- ^5050A0"+ .@b$[ .@i ] +"^000000"+ callsub( L_time_, $empbrk_record[ .@i ] ); if( empbrk_record ) { mes "______________________________"; set .@rec$, callsub( L_time_, empbrk_record ); mes "Your Own Record:"+ .@rec$; } next; mes "^FF0000~~ Emperium Breaker Test ~~^000000"; mes "Would you like to try a new record?"; if( empbrk_record ) { mes "______________________________"; mes "Your Own Record:"+ .@rec$; } next; menu "^777777~ Yes^000000", -, ( empbrk_record ? "^777777~ Reset my record^000000" : "" ), L_resc, ( .@gm > 98 && $empbrk_record$ != "" ? "^777777~ [ GM ] Reset all^000000" : "" ), L_reset, ( .@gm > 98 ? "^777777~ [ GM ] Reset Rooms^000000" : "" ), L_emptyrooms, "^777777~ Exit^000000", L_exit; deletearray .arena$; // Area arena for getareausers // --------------------------- setarray .@A1, 94,128,105,139; setarray .@A2, 60,94,71,105; setarray .@A3, 94,60,105,71; setarray .@A4, 128,94,139,105; mes "^FF0000~~ Emperium Breaker Test ~~^000000"; for( set .@i, 1; .@i <= 4; set .@i, .@i + 1 ) { if ( getareausers("pvp_n_4-5", getd( ".@A"+ .@i +"[ 0 ]" ), getd( ".@A"+ .@i +"[ 1 ]" ), getd( ".@A"+ .@i +"[ 2 ]" ), getd( ".@A"+ .@i +"[ 3 ]" ) ) ) mes "Emp n° ^0000DF"+ .@i +" ^FF0000 <Busy>^000000"; else { mes "Emp n° ^0000DF"+ .@i +" ^00A000 <Free>^000000"; set .arena$[ .@i -1 ],"^0000DFRoom n°"+ .@i +"^000000"; } } next; getmapxy( @mpempbrk$, @empbrkx, @empbrky, 0 ); // menu arena // ---------- set .@a, select( .arena$[0], .arena$[1], .arena$[2], .arena$[3], "Quit" ); if( .@a == 5 ) close; // x, y for user warp / arena ; x1, y1, x2, y2... // ---------------------------------------------- setarray .@xy[ 2 ], 99, 128, 68, 99, 100, 68, 130, 99; // select arena is empty ? // ----------------------- if ( !getareausers("pvp_n_4-5", getd( ".@A"+ .@a +"[ 0 ]" ), getd( ".@A"+ .@a +"[ 1 ]" ), getd( ".@A"+ .@a +"[ 2 ]" ), getd( ".@A"+ .@a +"[ 3 ]" ) ) ) { warp "pvp_n_4-5", .@xy[ .@a * 2 ], .@xy[ .@a * 2 + 1 ]; killmonster "pvp_n_4-5","EmpBrk#"+ .@a +"::OnThisMobDeath"; donpcevent "EmpBrk#"+ .@a +"::OnEmpBreak"; sc_end SC_ALL; } else mes "Room is now BUSY"; close; // reset top 5 // ----------- L_reset: mes "^FF0000~~ Emperium Breaker Test ~~^000000"; mes "Are you sure to reset official record ?"; if( select( "Yes", "No" ) -1 ) close; mes "All records had been reset."; set $empbrk_record, 0; set $empbrk_record$, ""; close; // reset your record ( + reset record if in top 5 ) // ------------------------------------------------ L_resc: mes "^FF0000~~ Emperium Breaker Test ~~^000000"; mes "Are you sure to reset your record?"; if( select( "Yes", "No" ) -1 ) close; if( $empbrk_record$ != "" ) { explode( .@b$, $empbrk_record$, "|" ); for( set .@i, 0; .@i < getarraysize( .@b$ ); set .@i, .@i + 1 ) if( .@b$[ .@i ] == strcharinfo(0) ) { deletearray .@b$[ .@i ], 1; deletearray $empbrk_record[ .@record ], 1; } set $empbrk_record$, implode( .@b$, "|" ); } mes "Your record has been reset."; set empbrk_record, 0; close; // warp all people out of arena // ---------------------------- L_emptyrooms: mapwarp "pvp_n_4-5","prontera",0,0; L_exit: close; // return time of record ( min sec ms ) // ------------------------------------ L_time_: set .@time, getarg(0); set .@m, .@time / 60000; set .@time, .@time - ( .@m * 60000 ); set .@s, .@time /1000; set .@time, .@time - ( .@s * 1000 ); set .@text$, " ^000080"+ .@m +"^000000m ^000080"+ .@s +"^000000s ^000080"+ .@time +"^000000ms"; return .@text$; } pvp_n_4-5,99,125,0 script EmpBrk#1 -1,2,1,{ OnTouch: killmonster "pvp_n_4-5", strnpcinfo(0) +"::OnThisMobDeath"; mes "^FF0000~~ Emperium Breaker Test ~~^000000"; mes " "; mes "You cannot exit from small square."; close2; stopnpctimer; set getd( "$@someonegotin"+ strnpcinfo(2) ), 0; warp .map_npc$, .x_npc, .y_npc; end; // Spawn emp // --------- OnEmpBreak: copyarray .@xy[ 0 ], getd( ".xy" + strnpcinfo(2) +"[ 0 ]" ), 6; sleep 3000; if ( !getareausers("pvp_n_4-5", .@xy[ 0 ], .@xy[ 1 ], .@xy[ 2 ], .@xy[ 3 ] ) ) end; areaannounce "pvp_n_4-5", .@xy[ 0 ], .@xy[ 1 ], .@xy[ 2 ], .@xy[ 3 ],"Let's ready to break the Emperium",0; sleep 5000; if ( !getareausers("pvp_n_4-5", .@xy[ 0 ], .@xy[ 1 ], .@xy[ 2 ], .@xy[ 3 ] ) ) end; for( set .@i, 5; .@i > 0; set .@i, .@i - 1 ) { areaannounce "pvp_n_4-5", .@xy[ 0 ], .@xy[ 1 ], .@xy[ 2 ], .@xy[ 3 ], (.@i +""),0; sleep 1000; } if ( !getareausers("pvp_n_4-5", .@xy[ 0 ], .@xy[ 1 ], .@xy[ 2 ], .@xy[ 3 ] ) ) end; areaannounce "pvp_n_4-5", .@xy[ 0 ], .@xy[ 1 ], .@xy[ 2 ], .@xy[ 3 ],"GO!!!",0; monster "pvp_n_4-5", .@xy[ 4 ], .@xy[ 5 ],"Emperium",1288,1,"EmpBrk#"+ strnpcinfo(2) +"::OnThisMobDeath"; initnpctimer; end; OnThisMobDeath: copyarray .@xy[ 0 ], getd( ".xy" + strnpcinfo(2) +"[ 0 ]" ), 6; stopnpctimer; set .@time, getnpctimer( 0,"EmpBrk#"+ strnpcinfo(2) ); if ( .@time < empbrk_record || !empbrk_record ) { areaannounce "pvp_n_4-5", .@xy[ 0 ], .@xy[ 1 ], .@xy[ 2 ], .@xy[ 3 ],"New Own Record!!!",0; set empbrk_record, .@time; } // set top 5 record ; GM level > 50 excluded // ----------------------------------------- if( getgmlevel() < 50 ) { if ( .@time < $empbrk_record[ 0 ] && !$empbrk_record[ 0 ] ) { areaannounce "pvp_n_4-5", .@xy[ 0 ], .@xy[ 1 ], .@xy[ 2 ], .@xy[ 3 ],"New Official Record!!!",0; announce strcharinfo(0)+" is now the NO. 1 Emperium Breaker!!",0; } explode( .@b$, $empbrk_record$, "|" ); if( $empbrk_record$ == "" ) set .@no_mark, 1; else { for( set .@i, 0; .@i < 5; set .@i, .@i + 1 ) { if( .@b$[ .@i ] == strcharinfo(0) ) { if( .@time < $empbrk_record[ .@i ] ) { deletearray .@b$[ .@i ], 1; deletearray $empbrk_record[ .@i ], 1; set .@no_mark, 1; } else set .@no_mark, 0; break; } else if( .@time < $empbrk_record[ .@i ] || !$empbrk_record[ .@i ] ) set .@no_mark, 1; } } } if( .@no_mark ) { for( set .@i, 0; .@i < 5; set .@i, .@i + 1 ) if ( .@time < $empbrk_record[ .@i ] || !$empbrk_record[ .@i ] ) { if( .@i != 4 ) { copyarray .@b$[ .@i+1 ], .@b$[ .@i ], 4 - .@i; copyarray $empbrk_record[ .@i+1 ], $empbrk_record[ .@i ], 4 - .@i; set .@b$[ .@i ], strcharinfo(0); set $empbrk_record[ .@i ], .@time; } else { set .@b$[ getarraysize( .@b$ ) -1 ], strcharinfo(0); set $empbrk_record[ getarraysize( .@b$ ) -1 ], .@time; } set $empbrk_record$, implode( .@b$, "|" ); break; } } set .@m, .@time / 60000; set .@time, .@time - (.@m * 60000); set .@s, .@time /1000; set .@time, .@time - (.@s * 1000); areaannounce "pvp_n_4-5", .@xy[ 0 ], .@xy[ 1 ], .@xy[ 2 ], .@xy[ 3 ],"Your time is "+ .@m +"m "+ .@s +"s "+ .@time +"ms",0; sleep 2000; // Debug : warp 20 min later if afk // -------------------------------- OnTimer1200000: areawarp "pvp_n_4-5", .@xy[ 0 ], .@xy[ 1 ], .@xy[ 2 ], .@xy[ 3 ], .map_npc$, .x_npc, .y_npc; stopnpctimer; end; OnInit: getmapxy( .map_npc$, .x_npc, .y_npc, 1, "Emperium Breaker Test" ); // set area for announce + x, y to spawn emp // ----------------------------------------- switch( strnpcinfo(2) ) { case 1: setarray .xy1, 94, 128, 105, 139, 100, 134; break; case 2: setarray .xy2, 60, 94, 71, 105, 65, 99; break; case 3: setarray .xy3, 94, 60, 105, 71, 99, 65; break; case 4: setarray .xy4, 128, 94, 139, 105, 134, 99; } end; } pvp_n_4-5,74,99,0 duplicate(EmpBrk#1) EmpBrk#2 -1,1,2 pvp_n_4-5,100,74,0 duplicate(EmpBrk#1) EmpBrk#3 -1,1,2 pvp_n_4-5,125,100,0 duplicate(EmpBrk#1) EmpBrk#4 -1,1,2 i've tried my best to check whats wrong with it this is the error i got on my console [Error]: status_calc_mob: No castle set at map pvp_n_4-5 thnx for the help
-
does this PVP is a automated i dont feel like its automated
-
ok ill try all of it??
-
heres the code //================================= // Credits to the Original Creator // Modified by [Gerome] //=================================== prontera,146,175,5 script Dice Event 874,{ cutin "zonda_01",2; if (getgmlevel() < 99) { goto L_Player_View; } mes "^3399FF[Dice Event]^000000"; mes "Hello GameMaster!"; mes "What do you want to do?"; switch(select("Start Event:Set prize^E50000 ["+getitemname($diceprize)+"]^000000 ^E50000 ["+ $diceprizecount + "]^000000:Test Player View:Nothing")) { case 1: { next; mes "^3399FF[Dice Event]^000000"; mes "Please confirm by typing START."; input .@confirm$; if (.@confirm$ == "START") { donpcevent "Dannouncer::OnMinute30"; close2; cutin "",255; end; } mes "Confirmation failed"; close2; cutin "",255; end; break; } case 2: { next; mes "^3399FF[Dice Event]^000000"; mes "Please type in the new prize id."; input .@guessprizeid; if (getitemname(.@guessprizeid) == "null" || getitemname(.@guessprizeid) == "") {next; mes "^3399FF[Dice Event]^000000"; mes "Error"; mes "This item does not exist in the database..."; close;} set $diceprize, .@guessprizeid; next; mes "^3399FF[Dice Event]^000000"; mes "Please type in the amount."; input .@guessprizeamount; if (!.@guessprizeamount) set .@guessprizeamount,1 ; set $diceprizecount,.@guessprizeamount; next; mes "^3399FF[Dice Event]^000000"; mes "Prize has been set to ^E50000 "+ getitemname($diceprize)+ "^000000 and the amount to ^E50000 " +$diceprizecount+"^000000"; close2; cutin "",255; end; } case 3: { goto L_Player_View; } case 4: { next; mes "^3399FF[Dice Event]^000000"; mes "Good bye"; close2; cutin "",255; end; } } L_Player_View: next; mes "^3399FF[Dice Event]^000000"; mes "-=Starts Every 30 Minutes=-"; mes "Current Prize is ^000099"+$diceprizecount+" "+getitemname($diceprize)+"^000000."; close2; cutin "",255; end; } - script Dannouncer -1,{ OnInit: disablenpc "prtevent"; disablenpc "Mr Dice"; //setarray $kroitem[0],5316,5336,5337,5338,5346,5401,5297,5393,5423,5381,5417,5467,5495,5450,5506,5507,5508,5499,5500,5474,5472,5471,5738,5537,5538,5528,5527,5526,5554,5535,7179; end; OnMinute30: announce "Dice: We are going to have a Dice event.",0; sleep2 10000; announce "Dice: For those who wants to join, Please proceed to the center of Prontera and enter the Warp Portal.",0; sleep2 10000; announce "Dice: After 1 Minute the Portal will close.",0; sleep2 10000; announce "Dice: So please go to the middle of Prontera and enter the Warp Portal now if you want to join.",0; enablenpc "prtevent"; initnpctimer; end; OnTimer30000: announce "Dice: Last 30 seconds.",0; sleep2 5000; announce "Dice: If you want to join please enter the Warp Portal here in Prontera.",0; end; OnTimer50000: announce "Dice: Last 10 seconds.",0; end; OnTimer55000: announce "Dice: 5.",0; end; OnTimer56000: announce "Dice: 4.",0; end; OnTimer57000: announce "Dice: 3.",0; end; OnTimer58000: announce "Dice: 2.",0; end; OnTimer59000: announce "Dice: 1.",0; end; OnTimer60000: announce "Dice: Time's up.",0; end; OnTimer61000: disablenpc "prtevent"; donpcevent "Mr Dice::OnStart"; stopnpctimer; end; OnTimer62000: announce "Dice: The next Dice event will begin after 30 minutes.",0; end; } //-------------------------------------------------- prontera,156,159,0 warp prtevent 2,2,quiz_01,204,90 //-------------------------------------------------- quiz_01,204,93,6 script Mr Dice 874,{ //-------------------------------------------------- cutin "zonda_01",2; mes "[Dice]"; mes "Congrats. You've won."; close2; announce "Dice: We have a winner, "+strcharinfo(0)+".",0; //Random KRO items. //set $@rannumber, rand(1,31); //getitem $kroitem[$@rannumber],1; getitem $diceprize,$diceprizecount; warp "prontera",150,173; disablenpc "Mr Dice"; end; OnStart: if(getmapusers("quiz_01") == 1) goto _WIN; mapannounce "quiz_01","Dice: We are about to start the Dice event.",0; sleep2 10000; mapannounce "quiz_01","Dice: But before we start the event here's how to play the game. . .",0; sleep2 10000; mapannounce "quiz_01","Dice: I'm only gonna say this once so read carefully.",0; sleep2 10000; mapannounce "quiz_01","Dice: I'm going to pick a number, 1 to 4. Then I'll do a count down from 5 to 0.",0; sleep2 10000; mapannounce "quiz_01","Dice: All you have to do is go to the box of the number you want.",0; sleep2 10000; mapannounce "quiz_01","Dice: Example, If I get the number of 4, All the players standing on numbers 1 to 3 will be warped back to town.",0; sleep2 10000; mapannounce "quiz_01","Dice: We will do it again and again until we only have 1 player left on the map.",0; sleep2 10000; mapannounce "quiz_01","Dice: Oh yeah! Before I forget you MUST GO INSIDE THE BOX, because if you're caught standing on the stairs you'll be automatically disqualified.",0; sleep2 10000; mapannounce "quiz_01","Dice: That's that.. Now let's play...",0; sleep2 10000; goto L_Start; end; L_Start: if(getmapusers("quiz_01") == 1) goto L_Champ; if(getmapusers("quiz_01") == 0) goto L_None; if(getmapusers("quiz_01") > 1) { announce "Dice: . . . . .",0; set $@number, rand(1,4); sleep2 10000; announce "Dice: I have a number now. Please go to the box of the number you want.... GO!",0; sleep2 10000; announce "Dice: 5",0; sleep2 5000; announce "Dice: 4",0; sleep2 4000; announce "Dice: 3",0; sleep2 3000; announce "Dice: 2",0; sleep2 2000; announce "Dice: 1",0; sleep2 1000; announce "Dice: Time's up.",0; donpcevent "devent::OnEnable"; announce "Dice: Winning number "+$@number+".",0; if(($@number != 1) && ($@number != 2) && ($@number != 3)) goto L_Lose1; if(($@number != 1) && ($@number != 2) && ($@number != 4)) goto L_Lose2; if(($@number != 1) && ($@number != 3) && ($@number != 4)) goto L_Lose3; if(($@number != 2) && ($@number != 3) && ($@number != 4)) goto L_Lose4; end; } L_Lose1: areawarp "quiz_01",183,81,191,60,"prontera",155,182; areawarp "quiz_01",195,81,203,60,"prontera",155,182; areawarp "quiz_01",207,81,215,60,"prontera",155,182; goto L_Start; end; L_Lose2: areawarp "quiz_01",183,81,191,60,"prontera",155,182; areawarp "quiz_01",195,81,203,60,"prontera",155,182; areawarp "quiz_01",219,81,227,60,"prontera",155,182;; goto L_Start; end; L_Lose3: areawarp "quiz_01",183,81,191,60,"prontera",155,182; areawarp "quiz_01",207,81,215,60,"prontera",155,182; areawarp "quiz_01",219,81,227,60,"prontera",155,182; goto L_Start; end; L_Lose4: areawarp "quiz_01",195,81,203,60,"prontera",155,182; areawarp "quiz_01",207,81,215,60,"prontera",155,182; areawarp "quiz_01",219,81,227,60,"prontera",155,182; goto L_Start; end; L_Champ: mapannounce "quiz_01","Dice: Come to me and tell me your name.",0; enablenpc "Mr Dice"; end; _WIN: mapannounce "quiz_01","Dice: Come to me and tell me your name.",0; enablenpc "Mr Dice"; end; L_None: disablenpc "Mr Dice"; end; } - script devent -1,{ OnEnable: areawarp "quiz_01",182,94,228,88,"prontera",155,182; areawarp "quiz_01",185,87,188,82,"prontera",155,182; areawarp "quiz_01",197,87,200,82,"prontera",155,182; areawarp "quiz_01",209,87,212,82,"prontera",155,182; areawarp "quiz_01",221,87,224,82,"prontera",155,182; end; } //------------------Map Flags-------------------------------------------------------- quiz_01 mapflag nowarpto quiz_01 mapflag nowarp quiz_01 mapflag noskill quiz_01 mapflag nosave quiz_01 mapflag nomemo quiz_01 mapflag noteleport //----------------------------------------------------------------------------------- i got this error everytime the NPC announced [Error]: buildin_sleep2: no unit is attached [Debug]: Source (NPC): Dannouncer (invisible/not on a map) [Error]: buildin_sleep2: no unit is attached [Debug]: Source (NPC): Mr Dice at quiz_01 (204,93) [Error]: buildin_sleep2: no unit is attached [Debug]: Source (NPC): Mr Dice at quiz_01 (204,93) [Error]: buildin_sleep2: no unit is attached [Debug]: Source (NPC): Mr Dice at quiz_01 (204,93) [Error]: buildin_sleep2: no unit is attached dunno what causing it thnx for the help
-
party pvp provided by emistry script collection problem
AinsLord replied to AinsLord's question in Scripting Support
thnx -
party pvp provided by emistry script collection problem
AinsLord replied to AinsLord's question in Scripting Support
is there any bad effect on it if i comment that out??? but thnx -
party pvp provided by emistry script collection problem
AinsLord posted a question in Scripting Support
i got this error everytime PVP end or has a winner [Error]: buildin_sleep2: no unit is attached [Debug]: Source (NPC): 10v10 PVP at prontera (147,140) heres the script i found prontera,147,145,5 script Party PVP 757,{ mes "I am Party Match Manager."; mes "Party Leader may create a PVP Match here."; next; switch( select( ( .Created )?"Join Game[ ^FF0000"+.No+"vs"+.No+"^000000 ]":"Create Game", ( ( getgmlevel() >= .GMLevel || getcharid(0) == getpartyleader( getcharid(1),2 ) ) && .Created )?"^FF0000Remove Game^000000":"" )){ Case 1: switch( .Created ){ Case 0: getpartymember getcharid(1),1; if( getcharid(0) != getpartyleader( getcharid(1),2 ) || !getcharid(1) ){ mes "Sorry, but only a ^FF0000Party Leader^000000 can register a game here."; }else{ mes "How many Players for each Party Team ?"; mes "Min = 1 Max = "+$@partymembercount; mes "Because you only have "+$@partymembercount+" member right now."; next; input .No,1,$@partymembercount; announce "[ "+.No+"vs"+.No+" Party Match ] created by "+strcharinfo(0)+", you may register to join.",0; set .Team[0],getcharid(1); set .Created,1; } close; Case 1: if( !.Team[1] && getcharid(1) == .Team[0] ){ mes "Please wait for ^FF0000Team 2^000000 to Register."; }else{ if( getcharid(0) != getpartyleader( getcharid(1),2 ) || !getcharid(1) ){ mes "Sorry, but only a ^FF0000Party Leader^000000 can register a game here."; close; } getpartymember getcharid(1),1; if( $@partymembercount < .No ){ mes "You didnt have enough of "+.No+" Member for the Game."; mes "You only have "+$@partymembercount+" Member."; }else{ mes "Confirm Registration ?"; if( select("Yes:No") == 1 ){ set .Team[1],getcharid(1); set .Created,2; setarray .Members[0],.No,.No; for( set .@party,0; .@party < 2; set .@party,.@party + 1 ){ getpartymember .Team[.@party],1; for( set .@i,0; .@i < .No; set .@i,.@i + 1 ) warpchar .Map$,0,0,$@partymembercid[.@i]; } end; } } } close; Case 2: mes "^FF0000The Game is in Progress.^000000"; mes "[ A "+.No+" vs "+.No+" Game ]"; mes "Team ^FF0000"+getpartyname( .Team[0] )+"^000000 vs Team ^FF0000"+getpartyname( .Team[1] )+"^000000 ."; close; } close; Case 2: mes "Done, Match will be terminated right away."; mapannounce .Map$,"Match has been Cancelled by a GM.",0; close2; OnReset: deletearray .Team[0],getarraysize( .Team ); deletearray .Members[0],getarraysize( .Members ); if( .Winner ){ getpartymember .Winner,2; for( set .@i,0; .@i < .No; set .@i,.@i + 1 ){ getitem 512,100,$@partymemberaid[.@i]; getitem 607,1,$@partymemberaid[.@i]; } set .Winner,0; } sleep2 2000; set .Created,0; mapwarp .Map$,"prontera",155,181; end; } close; OnPCDieEvent: OnPCLogoutEvent: if( strcharinfo(3) == .Map$ && .Created ){ for( set .@i,0; .@i < 2; set .@i,.@i + 1 ) if( getcharid(1) == .Team[.@i] ) set .Members[.@i],.Members[.@i] - 1; if( .Members[0] < 1 ) set .Winner,.Team[1]; else if( .Members[1] < 1 ) set .Winner,.Team[0]; if( .Winner ){ mapannounce .Map$,"Team "+getpartyname( .Winner )+" Win the "+.No+"vs"+.No+" Game.",0; donpcevent strnpcinfo(0)+"::OnReset"; }else{ warp "prontera",155,181; } } end; OnInit: set .GMLevel,80; set .Map$,"06guild_01"; end; } 06guild_01 mapflag nobranch 06guild_01 mapflag nowarpto 06guild_01 mapflag nowarp 06guild_01 mapflag nogo 06guild_01 mapflag pvp 06guild_01 mapflag noreturn 06guild_01 mapflag nosave 06guild_01 mapflag nomemo thnx for the help