Jump to content

blakbord

Members
  • Posts

    108
  • Joined

  • Last visited

Everything posted by blakbord

  1. thanks for the fast reply, it's working now.. thank you so much for your help and for this script..
  2. it's working, thanks a lot for this script you made.. but there is a problem with the script, GM ACCOUNT is affected.. how can I disable this for only GM ACCOUNT?
  3. this is cool, great work ToZorMan.. are you making some GM SPRITES too? I hope you share it too.. thanks..
  4. I want a script that has to do with groupid(), scenario goes like this: when a player make a new account his groupid is groupid(0) as default when he LOGIN in the game, I want his groupid to be groupid(1) groupid(1) = special account that is good for 1 week hope that someone can help me about this script.. thanks in advance..
  5. oh thanks, but it's only from monday to friday.. what about saturday and sunday?
  6. I have found a floating script and I want to edit it like this.. floating rates everyday start at 4pm till 6pm - script triple_exp -1,{ OnInit: // original Base/Job Exp and Drop Rates set .bexp_rate, 1; //Put you rate... set .jexp_rate, 1; //put you rate... OnHour16: OnHour23: if( gettime(4) != 0 && gettime(4) != 6 || ( gettime(4) == 1 && gettime(3) >= 16 ) ) { // Monday to Friday if( gettime(3) >= 23 || gettime(3) < 16 ) { announce "Double Event is finished!",bc_all,0xFF6060; callsub L_ratio, 1; } else { announce "Double Event Starting!", bc_all; callsub L_ratio, 2; } } OnHour12: if( !gettime(4) || ( gettime(4) == 6 && gettime(3) >= 12 ) || ( gettime(4) == 1 && gettime(3) < 12 ) ) { announce "Triple Event is Starting!",bc_all,0xFF6060; callsub L_ratio, 3; } else if( gettime(4) == 1 && gettime(3) == 12 ) { announce "Triple Event is finished!",bc_all,0xFF6060; callsub L_ratio, 1; } else callsub L_ratio, 1; end; L_ratio: setbattleflag "base_exp_rate", .bexp_rate * 100 * getarg( 0 ); setbattleflag "job_exp_rate", .jexp_rate * 100 * getarg( 0 ); atcommand "@reloadmobdb"; end; } hope that you guys can help me.. thanks in advance..
  7. I have a clean data folder and made it into grf files.. all is running well, but when I patched it.. this happen.. see attached files.. hope someone can help me with my problem thanks in advance.. bump* please anyone?
  8. I want to reduce the damages of the following in trunk/src/map/battle.c SONIC BLOW DAMAGE (skill is spammable) ASURA DAMAGE (how to change max SP limit to 6k?) hope that someone know how to edit this..
  9. I have search the whole forum and I found this.. refer to post #20 by AnnieRuru this works for me.. thanks..
  10. blakbord

    in-game clock

    @Emistry where should I put this script in this WOE CONTROLLER SCRIPT? //===== rAthena Script ======================================= //= Euphy's WOE Controller //===== By: ================================================== //= Euphy //===== Current Version: ===================================== //= 1.5 //===== Compatible With: ===================================== //= rAthena SVN r16958+ //===== Description: ========================================= //= A controller for War of Emperium designed for //= simplicity and ease of use. //= Many concepts taken from ToastOfDoom's script, //= and "rewards" function originally by Goddameit. //===== Additional Comments: ================================= //= Be sure to disable the default agit controllers! //== npc\guild\agit_controller.txt //== npc\guild2\agit_start_se.txt //============================================================ // Information NPC //============================================================ maintown,156,124,4 script WOE Information 836,{ doevent "WOE_CONTROL::OnMenu"; end; OnAgitStart: while(agitcheck()) { specialeffect EF_BEGINSPELL6; sleep 425; } end; } // Script Core //============================================================ - script WOE_CONTROL -1,{ function Disp_Owner; function Add_Zero; OnInit: // ----------------------------------------------------------- // Configuration settings. // ----------------------------------------------------------- set .CastleWarp,0; // 1: Always enable all castle warps. | 0: Warp only to active castles. set .AutoKick,1; // Automatically kick players from inactive castles during WOE? (1:yes / 0:no) set .NoOwner,0; // Automatically kick players from unconquered castles outside of WOE? (1:yes / 0:no) set .ExitWarp,1; // Warp all players from castles when WOE ends? (1:yes / 0:no) set .GMAccess,99; // GM level required to access Session Manager. // ----------------------------------------------------------- // Reward options. // ----------------------------------------------------------- // [1] Enable rewards. // [2] Mail all rewards. // - If not set, players receive items in their inventory. // - Only ONE item can be sent via mail, plus Zeny. // - Note that offline players do NOT receive rewards. // [4] Only reward Guild Masters. // - If not set, all guild members are rewarded. // - If mailing is enabled (option 2), offline Guild Masters WILL receive rewards. // [8] Duplicate IP check. // - Members in a guild with the same IP address are not rewarded. // - If Guild Masters is enabled (option 4), this feature is not used. // ----------------------------------------------------------- // Combine values as needed (e.g. 1|8 = 1+8 = 9). set .Options, 1; // Rewards per castle. // -- when given directly: <itemID>,<amount>{,<itemID>,<amount>,...} // -- via mail (option 2): <itemID>,<amount>,<Zeny> setarray .Reward[0],30272,10; // ----------------------------------------------------------- // Constants (leave this section alone). // ----------------------------------------------------------- setarray .Castles$[0], "prtg_cas01","prtg_cas02","prtg_cas03","prtg_cas04","prtg_cas05", "payg_cas01","payg_cas02","payg_cas03","payg_cas04","payg_cas05", "gefg_cas01","gefg_cas02","gefg_cas03","gefg_cas04","gefg_cas05", "aldeg_cas01","aldeg_cas02","aldeg_cas03","aldeg_cas04","aldeg_cas05", "arug_cas01","arug_cas02","arug_cas03","arug_cas04","arug_cas05", "schg_cas01","schg_cas02","schg_cas03","schg_cas04","schg_cas05"; setarray .EndLabel$[0],"ar01","ar02","ar03","ar04","ar05","sc01","sc02","sc03","sc04","sc05"; setarray .Days$[0],"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"; setarray .Regions$[0],"Prontera","Payon","Geffen","Aldebaran","Arunafeltz","Schwaltzvalt"; setarray .Map$[0],"prt_gld","pay_gld","gef_fild13","alde_gld","aru_gld","sch_gld"; setarray .MapX[0],134,240,153,111,208,121,295,317,140,204,214,308,143,193,305,48, 95,142,239,264,158,83, 68,299,292,293,288, 97,137, 71; setarray .MapY[0], 65,128,137,240,240,233,116,293,160,266, 75,240,240,278, 87,83,249, 85,242, 90,272,47,155,345,107,100,252,196, 90,315; // ----------------------------------------------------------- set .Size, getarraysize($WOE_CONTROL); if (.AutoKick || .NoOwner) for(set .@i,0; .@i<30; set .@i,.@i+1) { setmapflag .Castles$[.@i], mf_loadevent; setd "."+.Castles$[.@i], .@i; } if (!agitcheck() && !agitcheck2()) sleep 4000; set .Init,1; OnMinute00: freeloop(1); if (agitcheck() || agitcheck2()) { for(set .@i,0; .@i<.Size; set .@i,.@i+4) if (gettime(4) == $WOE_CONTROL[.@i] && gettime(3) == $WOE_CONTROL[.@i+2]) { OnWOEEnd: announce "The War Of Emperium is over!",bc_all|bc_woe; AgitEnd; AgitEnd2; sleep 1000; for(set .@j,0; .@j<30; set .@j,.@j+1) { if (.Active[0]&(1<<.@j)) Disp_Owner(.Castles$[.@j],1); if (.ExitWarp) maprespawnguildid .Castles$[.@j],0,3; } if (.Options&1 && .Active[0] && .ForceEnd != 2) callsub OnReward, .Active[0]; deletearray .Active[0],2; if (.ForceEnd) { set .ForceEnd,0; end; } break; } } if ((!agitcheck() && !agitcheck2()) || .Init) { if (!agitcheck() && !agitcheck2()) set .Init,0; for(set .@i,0; .@i<.Size; set .@i,.@i+4) if (gettime(4) == $WOE_CONTROL[.@i] && gettime(3) >= $WOE_CONTROL[.@i+1] && gettime(3) < $WOE_CONTROL[.@i+2]) { deletearray .Active[0],2; set .Active[0], $WOE_CONTROL[.@i+3]; if (.Init) { AgitEnd; AgitEnd2; } else announce "The War Of Emperium has begun!",bc_all|bc_woe; sleep 1000; AgitStart; AgitStart2; for(set .@j,0; .@j<30; set .@j,.@j+1) { if (.Active[0]&(1<<.@j)) { if (!.Init) Disp_Owner(.Castles$[.@j],0); set .Active[1], .Active[1] | (1<<((.@j/5)+1)); } else { if (.@j<20) { donpcevent "Agit#"+.Castles$[.@j]+"::OnAgitEnd"; killmonster .Castles$[.@j], "Agit#"+.Castles$[.@j]+"::OnAgitBreak"; } else { donpcevent "Manager#"+.Castles$[.@j]+"::OnAgitEnd2"; killmonster .Castles$[.@j], "Steward#"+.EndLabel$[.@j-20]+"::OnStartArena"; } } } break; } } set .Init,0; end; function Disp_Owner { set .@o, getcastledata(getarg(0),1); if (.@o) announce "The ["+getcastlename(getarg(0))+"] castle "+((getarg(1))?"has been conquered":"is currently held")+" by the ["+getguildname(.@o)+"] guild.",bc_all|bc_woe; else announce "The ["+getcastlename(getarg(0))+"] castle is currently unoccupied.",bc_all|bc_woe; return; } function Add_Zero { return ((getarg(0)<10)?"0":"")+getarg(0)+(getarg(1,0)?".":":")+"00"; } OnReward: set .@sql$, ((.Options&4)?"position = 0":"online = 1"); if (.Options&2) set .@str$,gettimestr("%B %d, %Y",21); freeloop(1); for(set .@i,0; .@i<30; set .@i,.@i+1) if (getarg(0)&(1<<.@i)) { set .@gid, getcastledata(.Castles$[.@i],1); if (!.@gid) continue; set .@size, query_sql("SELECT account_id,char_id FROM `guild_member` WHERE guild_id = '"+.@gid+"' AND "+.@sql$,.@aid,.@cid); for(set .@j,0; .@j<.@size; set .@j,.@j+1) { if (.Options&8 && !(.Options&4)) { set .@ip$, replacestr(getcharip,(.@aid[.@j]),".","a"); if (getd(".@ip_"+.@i+"_"+.@ip$)) continue; setd ".@ip_"+.@i+"_"+.@ip$,1; } if (.Options&2) { query_sql("INSERT INTO `mail` (send_name,dest_id,title,message,nameid,amount,identify,zeny,time) VALUES ("+ "'no-reply',"+.@cid[.@j]+",'** Siege Reward: "+getcastlename(.Castles$[.@i])+" **',"+ "'Brave one,% % Congratulations!% Your guild has successfully occupied% territory in the War of Emperium on% "+.@str$+".% % % % % [ Your reward is attached. ]',"+ .Reward[0]+","+.Reward[1]+",0,"+.Reward[2]+",UNIX_TIMESTAMP(NOW()))"); if (!getd(".@str_"+.@cid[.@j]) && isloggedin(.@aid[.@j],.@cid[.@j])) { setd ".@str_"+.@cid[.@j],1; message rid2name(.@aid[.@j]),"You've got mail! Please re-login to update your mailing list."; } } else if (isloggedin(.@aid[.@j])) { for(set .@k,0; .@k<getarraysize(.Reward); set .@k,.@k+2) getitem .Reward[.@k], .Reward[.@k+1], .@aid[.@j]; message rid2name(.@aid[.@j]),"You have been rewarded for conquering "+getcastlename(.Castles$[.@i])+"."; } } } if (.Options&2) query_sql("UPDATE `mail` SET message = REPLACE(message,'%',CHAR(13)) WHERE send_name = 'no-reply'"); return; OnPCLoadMapEvent: if (!compare(strcharinfo(3),"g_cas")) end; if (((.AutoKick && .Active[0]) || (.NoOwner && !getcastledata(strcharinfo(3),1))) && !(.Active[0]&(1<<getd("."+strcharinfo(3))))) { if (getcharid(2) && getcastledata(strcharinfo(3),1) == getcharid(2)) end; sleep2 1000; message strcharinfo(0), getcastlename(strcharinfo(3))+" is currently inactive."; sleep2 5000; if (compare(strcharinfo(3),"g_cas")) warp "SavePoint",0,0; } end; OnMenu: while(1) { mes "[WOE Information]"; if (agitcheck() || agitcheck2()) { if (.Active[0]) { for(set .@i,0; .@i<.Size; set .@i,.@i+4) if (gettime(4) == $WOE_CONTROL[.@i] && gettime(3) >= $WOE_CONTROL[.@i+1] && gettime(3) < $WOE_CONTROL[.@i+2]) { set .@i, $WOE_CONTROL[.@i+2]; break; } mes "The War of Emperium is ^0055FFactive^000000 until ^FF0000"+Add_Zero(.@i)+"^000000 in the following regions:"; mes " "; for(set .@i,0; .@i<6; set .@i,.@i+1) if (.Active[1]&(1<<(.@i+1))) mes " > ^777777"+.Regions$[.@i]+"^000000"; } else mes "The War of Emperium is ^0055FFactive^000000."; } else { for(set .@i,0; .@i<.Size; set .@i,.@i+4) if ((gettime(4) == $WOE_CONTROL[.@i] && gettime(3) <= $WOE_CONTROL[.@i+1]) || gettime(4) < $WOE_CONTROL[.@i]) { setarray .@time[0],$WOE_CONTROL[.@i],$WOE_CONTROL[.@i+1]; break; } if (!getarraysize(.@time)) setarray .@time[0],$WOE_CONTROL[0],$WOE_CONTROL[1]; mes "The War of Emperium is ^777777inactive^000000."; if (.Size) { mes " "; mes "The next session will begin"; mes "on ^0055FF"+.Days$[.@time[0]]+"^000000 at "+Add_Zero(.@time[1])+"^000000."; } } next; switch(select(""+((.CastleWarp || .Active[1])?" ~ Warp to castles...":"")+": ~ Check schedule...: ~ View castle owners...:"+((getgmlevel()<.GMAccess || !getgmlevel())?"":" ~ Manage sessions...")+": ~ ^777777Cancel^000000")) { case 1: if (.CastleWarp) set .@clr$,"^0055FF"; set .@menu$,""; for(set .@i,0; .@i<6; set .@i,.@i+1) { if (.CastleWarp || .Active[1]&(1<<(.@i+1))) set .@menu$, .@menu$+" ~ "+((.Active[1]&(1<<(.@i+1)))?.@clr$:"^777777")+.Regions$[.@i]+" Castles^000000"; set .@menu$, .@menu$+":"; } set .@i, select(.@menu$)-1; set .@menu$,""; for(set .@j,.@i*5; .@j<(.@i*5)+5; set .@j,.@j+1) { if (.CastleWarp || .Active[0]&(1<<.@j)) set .@menu$, .@menu$+" ~ "+((.Active[0]&(1<<.@j))?.@clr$:"^777777")+getcastlename(.Castles$[.@j])+"^000000"; set .@menu$, .@menu$+":"; } set .@j, select(.@menu$)-1; warp .Map$[.@i],.MapX[(.@i*5)+.@j],.MapY[(.@i*5)+.@j]; close; case 2: mes "[Schedule]"; if (.Size) { freeloop(1); for(set .@i,0; .@i<.Size; set .@i,.@i+4) { mes "> ^FF0000"+.Days$[$WOE_CONTROL[.@i]]+" ("+Add_Zero($WOE_CONTROL[.@i+1])+"-"+Add_Zero($WOE_CONTROL[.@i+2])+")^000000"; for(set .@j,0; .@j<30; set .@j,.@j+1) if ($WOE_CONTROL[.@i+3]&(1<<.@j)) mes " ~ "+getcastlename(.Castles$[.@j])+" ^777777("+.Castles$[.@j]+")^000000"; if (.@i+4 < .Size) mes " "; } freeloop(0); } else mes "No times are configured."; next; break; case 3: mes "[Castle Ownership]"; for(set .@i,0; .@i<6; set .@i,.@i+1) { set .@k, .@i*5; mes "> ^FF0000"+.Regions$[.@i]+"^000000"; for(set .@j,.@k; .@j<(.@k+5); set .@j,.@j+1) { set .@t, getcastledata(.Castles$[.@j],1); mes " ~ "+getcastlename(.Castles$[.@j])+": "+((.@t)?"^0055FF"+getguildname(.@t):"^777777unoccupied")+"^000000"; } if (.@i < 5) mes " "; } next; break; case 4: while(1) { mes "[Session Manager]"; mes "There are ^0055FF"+(.Size/4)+" session(s)^000000 configured."; mes "What would you like to do?"; next; switch(select(" ~ Add a session...: ~ Delete a session...: ~ Reload settings...:"+((agitcheck() || agitcheck2())?" ~ End WOE session...":"")+": ~ ^777777Go back^000000")) { case 1: mes "[New Session]"; if (.Size > 127) { mes "You have already reached the maximum of 32 sessions."; next; break; } mes "Select a day."; next; set .@Day, select(" ~ "+implode(.Days$,": ~ "))-1; mes "[New Session]"; mes "Select a start time for ^0055FF"+.Days$[.@Day]+"^000000."; next; set .@menu$,""; for(set .@i,0; .@i<23; set .@i,.@i+1) set .@menu$, .@menu$+" ~ "+Add_Zero(.@i,1)+":"; set .@Start, select(.@menu$)-1; mes "[New Session]"; mes "Select an end time for ^0055FF"+.Days$[.@Day]+"^000000."; next; set .@menu$,""; for(set .@i,.@Start+1; .@i<24; set.@i,.@i+1) set .@menu$, .@menu$+" ~ "+Add_Zero(.@i,1)+":"; set .@End, select(.@menu$)+.@Start; for(set .@i,0; .@i<.Size; set .@i,.@i+4) if (.@Day == $WOE_CONTROL[.@i] && ((.@Start >= $WOE_CONTROL[.@i+1] && .@Start < $WOE_CONTROL[.@i+2]) || (.@End > $WOE_CONTROL[.@i+1] && .@End <= $WOE_CONTROL[.@i+2]) || (.@Start <= $WOE_CONTROL[.@i+1] && .@End >= $WOE_CONTROL[.@i+2]))) { mes "[New Session]"; mes "The chosen times overlap with an existing session."; next; set .@d,1; break; } if (.@d) { set .@d,0; break; } set .@Castle,0; while(1) { mes "[New Session]"; mes "^0055FF"+.Days$[.@Day]+" ("+Add_Zero(.@Start)+"-"+Add_Zero(.@End)+")^000000"; mes " > Castles:"; if (!.@Castle) mes " ~ ^777777(none selected)^000000"; else for(set .@i,0; .@i<30; set .@i,.@i+1) if (.@Castle&(1<<.@i)) mes " ~ "+getcastlename(.Castles$[.@i])+" ("+.Castles$[.@i]+")"; next; set .@menu$,((.@Castle)?" ~ ^FF0000Finished...^000000":"")+":"; for(set .@i,0; .@i<30; set .@i,.@i+1) set .@menu$, .@menu$+" ~ "+((.@Castle&(1<<.@i))?"^0055FF":"")+getcastlename(.Castles$[.@i])+" ("+.Castles$[.@i]+")^000000:"; set .@i, select(.@menu$)-1; if (.@i) set .@Castle, .@Castle^(1<<(.@i-1)); else { mes "[New Session]"; mes "Are you sure?"; next; switch(select(" ~ ^0055FFAdd session...^000000: ~ Continue selecting castles...: ~ ^777777Cancel^000000")) { case 1: for(set .@i,0; .@i<.Size; set .@i,.@i+4) if ((.@Day == $WOE_CONTROL[.@i] && .@End <= $WOE_CONTROL[.@i+1]) || .@Day < $WOE_CONTROL[.@i]) { set .@d,1; break; } if (!.@d) { set .@d,1; set .@i,.Size; } copyarray $WOE_CONTROL[.@i+4], $WOE_CONTROL[.@i], .Size-.@i; setarray $WOE_CONTROL[.@i], .@Day, .@Start, .@End, .@Castle; set .Size, getarraysize($WOE_CONTROL); case 3: mes "[New Session]"; mes ((.@d)?"Session added.":"Cancelled."); next; set .@d,1; case 2: break; } if (.@d) { set .@d,0; break; } } } break; case 2: mes "[Remove Session]"; if (!.Size) { mes "There are no sessions configured."; next; break; } mes "Select a session to remove."; next; set .@menu$,""; for(set .@i,0; .@i<.Size; set .@i,.@i+4) set .@menu$, .@menu$+" ~ "+.Days$[$WOE_CONTROL[.@i]]+" ("+Add_Zero($WOE_CONTROL[.@i+1],1)+"-"+Add_Zero($WOE_CONTROL[.@i+2],1)+"):"; set .@menu$, .@menu$+" ~ ^777777Cancel^000000"; set .@i, select(.@menu$)-1; if (.@i == (.Size/4)) break; mes "[Remove Session]"; mes "Delete ^0055FF"+.Days$[$WOE_CONTROL[.@i*4]]+"'s^000000 session?"; mes "This action cannot be undone."; next; set .@j, select(" ~ ^FF0000Delete session...^000000: ~ ^777777Cancel^000000"); mes "[Remove Session]"; if (.@j == 2) mes "Cancelled."; else { deletearray $WOE_CONTROL[.@i*4],4; set .Size, getarraysize($WOE_CONTROL); mes "Session deleted."; } next; break; case 3: mes "[Reload Settings]"; mes "This will trigger all events related to new session configurations, if any."; if (agitcheck() || agitcheck2()) { mes " "; mes "Be aware that this will disrupt the current WOE session."; } next; set .@i, select(" ~ ^0055FFReload settings...^000000: ~ ^777777Cancel^000000"); mes "[Reload Settings]"; if (.@i == 2) mes "Cancelled."; else { set .Init,1; donpcevent "WOE_CONTROL::OnMinute00"; mes "Variables have been re-initialized."; } next; break; case 4: mes "[Force Agit End]"; if (!agitcheck() && !agitcheck2()) { mes "WOE has already ended."; next; break; } mes "This command will safely execute all AgitEnd events."; mes " "; mes "Kill the current WOE session?"; next; set .@i, select(" ~ ^FF0000End session...^000000:"+((.Options&1)?" ~ ^FF0000End session without rewards...^000000":"")+": ~ ^777777Cancel^000000"); mes "[Force Agit End]"; if (.@i == 3) mes "Cancelled."; else { set .ForceEnd, .@i; donpcevent "WOE_CONTROL::OnWOEEnd"; mes "WOE session terminated."; } next; break; case 5: set .@d,1; break; } if (.@d) { set .@d,0; break; } } break; case 5: close; } } }
  11. bat_b01,390,10,0 script teamwarprize#1 -1,2,2,{ OnTouch: getitem 30230,5; //edit the prize <item>,<amount> warp "maintown",157,114; close; } bat_b01,88,75,0 script teamwarprize#2 -1,2,2,{ OnTouch: getitem 30230,2; //edit the prize <item>,<amount> warp "maintown",157,114; close; } turbo_room,100,120,4 script 3 vs 3::teamwar 796,{ if (getgmlevel() >= 99){ menu "standard menu",standard,"reset",lend1; } standard: set $@members,1; // number of party members change this to your party size you want set $@start,0; getpartymember(getcharid(1)); set @partymembercount,$@partymembercount; if ( $@start==1) { mes "The Sign Ups are currently unavailable because a match is in progress. Don't hesitate to try again in a few minutes!"; close; } if ( @partymembercount==$@members) { mes "Hello "+strcharinfo(0)+" what do you want?"; if (($@TeamID1!=0) && ($@TeamID2!=0)) { mes "The Sign Ups are currently unavailable because a match is in progress. Don't hesitate to try again in a few minutes!"; close; } if ( getpartyleader(getcharid(1),2) != getcharid(0) ) { mes "Only party leader have the right to sign up / out from the game with me.."; close; } mes "Choose your team to register."; switch(select("Red Team - [" + GetPartyName($@TeamID1) + "] :Blue Team - [" + GetPartyName($@TeamID2) + "]")) { case 1: mes "[ Team War ]"; if ($@TeamID1==0 || getpartyname($@TeamID1)=="null") { getpartymember(getcharid(1)),1; getpartymember(getcharid(1)),2; copyarray $@partymembercidt1[0],$@partymembercid[0],$@members; copyarray $@partymemberaid1[0],$@partymemberaid[0],$@members; for (set .@i,0; .@i<$@members; set .@i,.@i+1) { if(isloggedin($@partymemberaid1[.@i],$@partymembercidt1[.@i])) set .@count,.@count+1; } if(.@count < $@members) { mes "You need all your party members to be online to Register"; close; } set $@TeamID1, getcharid(1); initnpctimer; mes "Your Party is now subscribed, good luck!"; announce "Team 1 : [ " +getpartyname($@TeamID1)+ " ] has sign up For the Team War!",bc_blue|bc_map; doevent "teamwar::OnSubscriptionTeam"; close; } else { mes "I'm sorry! Another Team has sign up before you..."; close; } case 2: mes "[ Team War ]"; if ($@TeamID2==0 || getpartyname($@TeamID2)=="null") { getpartymember(getcharid(1)),1; getpartymember(getcharid(1)),2; copyarray $@partymembercidt2[0],$@partymembercid[0],$@members; copyarray $@partymemberaid2[0],$@partymemberaid[0],$@members; for (set .@i,0; .@i<$@members; set .@i,.@i+1) { if(isloggedin($@partymemberaid2[.@i],$@partymembercidt2[.@i])) set .@count,.@count+1; } if(.@count < $@members) { mes "You need all your party members to be online to Register"; close; } set $@TeamID2, getcharid(1); initnpctimer; mes "Your Party is now subscribed, good luck!"; announce "Team 2 : [ " +getpartyname($@TeamID2)+ " ] has sign up For the Team War!",bc_blue|bc_map; doevent "teamwar::OnSubscriptionTeam"; close; } else { mes "I'm sorry! Another Team has sign up before you..."; close; } } } else { mes "[Event Handler]"; mes "Please contact your party leader."; mes "Your team must have a party consisting of "+$@members+" members."; close; } OnSubscriptionTeam: getpartymember($@TeamID2),1; getpartymember($@TeamID2),2; copyarray $@partymembercidtc2[0],$@partymembercid[0],$@members; copyarray $@partymemberaidc2[0],$@partymemberaid[0],$@members; for (set .@i,0; .@i<$@members; set .@i,.@i+1) { if(isloggedin($@partymemberaidc2[.@i],$@partymembercidtc2[.@i])) set .@countx,.@countx+1; } if(.@countx < $@members) { announce "Team War : "+getpartyname($@TeamID2)+"are not all online the match has been canceled",0; announce "Team War : registration for 2 new teams are now available",0; goto lend; close; } for (set .@i,0; .@i<$@members; set .@i,.@i+1) { if ( isloggedin( $@partymemberaidc2[.@i], $@partymembercidtc2[.@i] ) ) { attachrid $@partymemberaidc2[.@i]; //set pvp3vs3_ori_look, getlook(7); //setlook 7, 521; } } getpartymember($@TeamID1),1; getpartymember($@TeamID1),2; copyarray $@partymembercidtc1[0],$@partymembercid[0],$@members; copyarray $@partymemberaidc1[0],$@partymemberaid[0],$@members; for (set .@i,0; .@i<$@members; set .@i,.@i+1) { if(isloggedin($@partymemberaidc1[.@i],$@partymembercidtc1[.@i])) set .@countz,.@countz+1; } if(.@countz < $@members) { announce "Team War : "+getpartyname($@TeamID1)+"are not all online the match has been canceled",0; announce "Team War : registration for 2 new teams are now available",0; goto lend; close; } for (set .@i,0; .@i<$@members; set .@i,.@i+1) { if ( isloggedin( $@partymemberaidc1[.@i], $@partymembercidtc1[.@i] ) ) { attachrid $@partymemberaidc1[.@i]; //set pvp3vs3_ori_look, getlook(7); //setlook 7, 520; } } if($@TeamID1!=0 && $@TeamID2!=0){ announce "Team War : We have 2 Teams signed up now : "+getpartyname($@TeamID1)+" and "+getpartyname($@TeamID2)+".",bc_blue|bc_map; set @win1, 0; set @win2, 0; goto onstart; } end; OnTimer50000: if (($@TeamID1!=0) && ($@TeamID2!=0)) { end; } stopnpctimer; set $@TeamID1, 0; set $@TeamID1, 0; announce "Team War : we lack teams to start registration for two teams are now available",0; end; onstart: sc_end sc_ALL; warpparty "guild_vs4",7,49,$@TeamID1; warpparty "guild_vs4",92,49,$@TeamID2; set $@start,1; end; lend: stopnpctimer; set $@TeamID1,0; set $@TeamID2,0; set $@start,0; set @win1,0; set @win2,0; set @partymembercount,$@members; end; lend1: stopnpctimer; set $@TeamID1,0; set $@TeamID2,0; set $@start,0; set @win1,0; set @win2,0; set @partymembercount,$@members; announce "Team War has been reset, you may register your team now",0; close; end; OnTimer250000: Announce "Team War : No Party won due to time limit!",0; mapwarp "guild_vs4","maintown",157,114; goto lend; end; OnPCDieEvent: OnPCLogoutEvent: if(strcharinfo(3) != "guild_vs4") end; //setlook 7, pvp3vs3_ori_look; //pvp3vs3_ori_look = 0; atcommand "@alive"; warp "turbo_room",100,99; for(set .@i, 0; .@i < $@members; set .@i, .@i + 1) { if ( $@partymembercidt1[.@i] == getcharid(0)) { deletearray $@partymembercidt1[.@i], 1; if( getarraysize($@partymembercidt1) == 0 ) { set @win2,$@partymembercount; goto onwin; } } if ( $@partymembercidt2[.@i] == getcharid(0) ) { deletearray $@partymembercidt2[.@i], 1; if( getarraysize($@partymembercidt2) == 0 ) { set @win1,$@partymembercount; goto onwin; } } } end; onwin: if (@win1==0) { warpparty "bat_b01",390,10,$@TeamID2; warpparty "bat_b01",88,75,$@TeamID1; Announce "Team War :"+GetPartyName($@TeamID2)+" won againts "+GetPartyName($@TeamID1)+"",0; goto lend; end; } if (@win2==0) { warpparty "bat_b01",390,10,$@TeamID1; warpparty "bat_b01",88,75,$@TeamID2; Announce "Team War :"+GetPartyName($@TeamID1)+" won againts "+GetPartyName($@TeamID2)+"",0; goto lend; end; } end; } guild_vs4 mapflag nosave guild_vs4 mapflag nomemo guild_vs4 mapflag nobranch guild_vs4 mapflag pvp_noguild guild_vs4 mapflag noicewall guild_vs4 mapflag pvp I know that this script is working but there is a bug on the script.. ex. I have 1 party, members of 3 (only my party) sample partyname is [ tryout1 ] when I register at Team 1 and reregister again at Team 2 this is what happen Team 1 = tryout1 Team 2 = tryout1 <<--------(again?) players can abuse the prize, how to fixed this registration? thanks in advance
  12. I will try that.. thanks by the way.. but I hope that can anyone solve this problem with r16815..
  13. how about on r16815? can you help me?
  14. I'm having a problem with Finger Offensive, Sonic Blow, And Clown Skills.. on Finger Offensive - this skill is OVER POWERED when equip with Thanatos Card.. even if they have Asura Strike to kill.. how to reduce this? on Sonic Blow - skill can go over 400% how to reduce this also? on Clown Skills - Tarot Card Dispell can ignore GTB card.. Tarot Card Coma, how to reduce the chance? Please Dont Forget Me, can slow GUILDMATES, PARTYMATES.. how to fix this? I've been looking on this forum but I can't find the right answer.. I'm using r16815, thanks in advance..
  15. @sandbox and @euphy can you help me guys here? its not working with the getgroupid().. all group id can warp and get buffed with my npc.. thanks in advance.. maintown,141,120,6, script Premium User 403,{ mes "[^FF0000 Premium User ^000000]"; mes ""; mes "What do you want me to do?"; next; menu "Warp to Bossnia",L_Warp,"Full Buffs",L_FB,"Nothing",L_No; L_No: mes "[^FF0000 Premium User ^000000]"; mes "Okay Bye!!"; close; L_Warp: if(getgroupid() > 5) { warp "bossnia_01",0,0; end; } L_FB: if(getgroupid() > 5) { mes "[^FF0000 Premium User ^000000]"; mes "There you go!"; if( @delay_buff ) end; percentheal 100,100; skilleffect 383,0; sc_start SC_WINDWALK,360000,5; skilleffect 8,0; sc_start SC_ENDURE,360000,10; skilleffect 45,0; sc_start SC_CONCENTRATE,360000,10; skilleffect 459,0; sc_start SC_ADRENALINE2,360000,1; skilleffect 114,0; sc_start SC_MAXIMIZEPOWER,360000,5; skilleffect 361,0; sc_start SC_ASSUMPTIO,360000,5; skilleffect 34,0; sc_start SC_BLESSING,360000,10; skilleffect 29,0; sc_start SC_INCREASEAGI,360000,10; skilleffect 74,0; sc_start SC_MAGNIFICAT,360000,5; skilleffect 75,0; sc_start SC_GLORIA,360000,5; skilleffect 66,0; sc_start SC_IMPOSITIO,360000,5; skilleffect 67,0; sc_start SC_SUFFRAGIUM,360000,3; sc_start SC_ASPDPOTION2,360000,0; sc_start SC_STRFood,360000,10; sc_start SC_AGIFood,360000,10; sc_start SC_VITFood,360000,10; sc_start SC_INTFood,360000,10; sc_start SC_DEXFood,360000,10; sc_start SC_LUKFood,360000,10; sc_start SC_HitFood,1200000,30; sc_start SC_FleeFood,1200000,30; sc_start SC_BATKFood,1200000,10; sc_start SC_MATKFood,120000,10; switch ( basejob ) { case Job_Alchemist: set .@spirit, 445; break; case Job_Monk: set .@spirit, 447; break; case Job_Star_Gladiator: set .@spirit, 448; break; case Job_Sage: set .@spirit, 449; break; case Job_Crusader: set .@spirit, 450; break; case Job_SuperNovice: set .@spirit, 451; break; case Job_Knight: set .@spirit, 452; break; case Job_Wizard: set .@spirit, 453; break; case Job_Priest: set .@spirit, 454; break; case Job_Bard: case Job_Dancer: set .@spirit, 455; break; case Job_Rogue: set .@spirit, 456; break; case Job_Assassin: set .@spirit, 457; break; case Job_Blacksmith: set .@spirit, 458; break; case Job_Hunter: set .@spirit, 460; break; case Job_Soul_Linker: set .@spirit, 461; break; default: if ( upper == 1 && baselevel < 70 ) set .@spirit, 494; } if ( .@spirit ) { sc_start4 sc_spirit, 360000, 5, .@spirit,0,0; skilleffect .@spirit, 5; } @delay_buff++; sleep2 1000; @delay_buff = 0; close; } close; end; }
  16. maintown,156,209,5 script 3 vs 3 Recruiter 56,{ function isreq; callsub L_check; select( "Register ?" ); if( !getcharid(1) ) { mes "you're not in a party"; close; } else if( .party1 == getcharid(1) || .party2 == getcharid(1) ) { mes "you're already on my list"; close; } getpartymember getcharid(1); if( $@partymembercount != 3 || !instance_check_party( getcharid(1),3 ) ) { mes "you need 3 players online in your party"; close; } callsub L_check; if( !.party2 ) .party2 = getcharid(1); else .party1 = getcharid(1); dispbottom "your party is now on my list"; if( !.party1 || !.party2 ) end; .start = 1; warpparty .map_event$, 7,50, .party1; warpparty .map_event$, 92,50, .party2; initnpctimer; end; OnPCKillEvent: .@self = getcharid(3); .@killed = killedrid; .@is_reg = isreq(); attachrid( .@killed ); if( !isreq() ) end; getpartymember getcharid(1),1; getpartymember getcharid(1),2; for( .@i = 0; .@i < $@partymembercount; .@i++ ) { if( isloggedin( $@partymemberaid[.@i], $@partymembercid[.@i] ) ) { attachrid( $@partymemberaid[.@i] ); sleep2 1; if( strcharinfo(3) == .map_event$ ) { .@is_online += 1; if( Hp < 1 ) .@count += 1; } } } if( .@is_online != .@count ) { attachrid( .@killed ); sleep2( .wait * 1000 ); //atcommand "@alive"; end; } else if( !.@is_reg ) end; attachrid( .@self ); sleep2 2; announce "team "+ getpartyname( getcharid(1) ) +" win the event !", 0; getpartymember getcharid(1); getpartymember getcharid(1),1; getpartymember getcharid(1),2; for( .@i = 0; .@i < $@partymembercount; .@i++ ) if( isloggedin( $@partymemberaid[.@i], $@partymembercid[.@i] ) ) { getmapxy .@map$, .@x, .@y, 0, $@partymembername$[.@i]; if( .@map$ == .map_event$ ) getitem .item_id, .item_count, $@partymemberaid[.@i]; } stopnpctimer; sleep 3000; OnTimer300000: // 5 min then end of event .start = .party1 = .party2 = 0; mapwarp .map_event$,"turbo_room",100,99; end; L_check: if( .start ) end; else if( getpartyname( .party1 ) == "null" ) .party1 = 0; else if( getpartyname( .party2 ) == "null" ) .party2 = 0; else if( getpartyname( .party1 ) != "null" ) { getpartymember .party1; if( $@partymembercount != .count_req || !instance_check_party( .party1,.count_req ) ) .party1 = 0; } else if( getpartyname( .party2 ) != "null" ) { getpartymember .party2; if( $@partymembercount != .count_req || !instance_check_party( .party2,.count_req ) ) .party2 = 0; } return; function isreq { if( strcharinfo(3) == .map_event$ && .start && ( getcharid(1) == .party1 || getcharid(1) == .party2 ) ) return 1; return 0; } OnInit: waitingroom "3 vs 3 Registration", 0; .map_event$ = "guild_vs1"; // your event map .count_req = 1; // count required in the party to start the event //.wait = 20; // time in secs to be rezu .item_id = 7539; // item id gained .item_count = 5; // item count gained setmapflag .map_event$,mf_noteleport; setmapflag .map_event$,mf_nowarp; setmapflag .map_event$,mf_nowarpto; setmapflag .map_event$,mf_nomemo; setmapflagnosave .map_event$,"maintown",156,203; setmapflag .map_event$,mf_partylock; setmapflag .map_event$,mf_pvp; end; } if 1 player is killed will automatically warp at maintown the winning party will automatically warp at bat_b01 10 290 and the loser will warp at bat_b01 390 9 thanks in advance..
  17. blakbord

    TAROT

    how can I lower the chance of coma on tarot ? thanks in advance..
  18. I know that its working sir Emistry, but the script goes like this.. When I warp at that map (prt_maze03) Anti-Bot shows.. (input the right code and done) prt_maze03 has many portal, when I enter at the portal the Anti-Bot appears again.. All I want is: Warp to the MAP and then Anti-Bot show.. (input the right code and done..) After 1 Hour the Anti-Bot show again.. (input again) Every 1 Hour the Anti-Bot shows and so on and so on..
  19. - script Anti-Bot -1,{ OnInit: set .Map$,"prt_maze03"; setmapflag .Map$,mf_loadevent; end; OnPCLoadMapEvent: if(strcharinfo(3) == .Map$){ dispbottom "This is only to find out if you're a BOT"; atcommand "@battleignore"; atcommand "@adjgroup -1"+strcharinfo(0); atcommand "@option 2"; sc_start SC_FREEZE,10000000,1; sc_start SC_HIDE,10000000,1; mes "Please Enter Red Color Key in the Code..."; set .Code,rand(1000,99999); mes "^0000FF"+rand(1,9999)+"^FF0000"+.Code+"^0000FF"+rand(1,9999)+"^000000"; input @Code; if( @Code != .Code ){ atcommand "@kick "+strcharinfo(0); } else { atcommand "@battleignore"; atcommand "@option 0"; sc_end SC_FREEZE; sc_end SC_HIDE; dispbottom "Sorry for INTERRUPTING you, Thank You!"; } close; } } •I want to make this script everytime I warp at the map this will trigger •I want to make also this script triggers every hour can anyone help me? thanks..
  20. @boom man my head is aching with this script.. sorry.. but can you make it for me? im not good with this.. Thanks in advance..
  21. i didn't get this part.. and im going to search for this to know more with scripting.. can you give me an example flow for this? thx for helping Boom..
  22. map,x,x,x script Party Vs Party 56,{ function isreq; callsub L_check; select( "Register ?" ); if( !getcharid(1) ) { mes "you're not in a party"; close; } else if( .party1 == getcharid(1) || .party2 == getcharid(1) ) { mes "you're already on my list"; close; } getpartymember getcharid(1); if( $@partymembercount != 3 || !instance_check_party( getcharid(1),3 ) ) { mes "you need 3 players online in your party"; close; } callsub L_check; if( !.party2 ) .party2 = getcharid(1); else .party1 = getcharid(1); dispbottom "your party is now on my list"; if( !.party1 || !.party2 ) end; .start = 1; warpparty .map_event$, x,x, .party1; warpparty .map_event$, x,x, .party2; initnpctimer; end; OnPCKillEvent: .@self = getcharid(3); .@killed = killedrid; .@is_reg = isreq(); attachrid( .@killed ); if( !isreq() ) end; getpartymember getcharid(1),1; getpartymember getcharid(1),2; for( .@i = 0; .@i < $@partymembercount; .@i++ ) { if( isloggedin( $@partymemberaid[.@i], $@partymembercid[.@i] ) ) { attachrid( $@partymemberaid[.@i] ); sleep2 1; if( strcharinfo(3) == .map_event$ ) { .@is_online += 1; if( Hp < 1 ) .@count += 1; } } } if( .@is_online != .@count ) { attachrid( .@killed ); sleep2( .wait * 1000 ); atcommand "@alive"; end; } else if( !.@is_reg ) end; attachrid( .@self ); sleep2 2; announce "team "+ getpartyname( getcharid(1) ) +" win the event !", 0; getpartymember getcharid(1); getpartymember getcharid(1),1; getpartymember getcharid(1),2; for( .@i = 0; .@i < $@partymembercount; .@i++ ) if( isloggedin( $@partymemberaid[.@i], $@partymembercid[.@i] ) ) { getmapxy .@map$, .@x, .@y, 0, $@partymembername$[.@i]; if( .@map$ == .map_event$ ) getitem .item_id, .item_count, $@partymemberaid[.@i]; } stopnpctimer; sleep 3000; OnTimer300000: // 5 min then end of event .start = .party1 = .party2 = 0; mapwarp .map_event$,"map",x,x; end; L_check: if( .start ) end; else if( getpartyname( .party1 ) == "null" ) .party1 = 0; else if( getpartyname( .party2 ) == "null" ) .party2 = 0; else if( getpartyname( .party1 ) != "null" ) { getpartymember .party1; if( $@partymembercount != .count_req || !instance_check_party( .party1,.count_req ) ) .party1 = 0; } else if( getpartyname( .party2 ) != "null" ) { getpartymember .party2; if( $@partymembercount != .count_req || !instance_check_party( .party2,.count_req ) ) .party2 = 0; } return; function isreq { if( strcharinfo(3) == .map_event$ && .start && ( getcharid(1) == .party1 || getcharid(1) == .party2 ) ) return 1; return 0; } OnInit: .map_event$ = "map"; // your event map .count_req = 1; // count required in the party to start the event .wait = 20; // time in secs to be rezu .item_id = 7539; // item id gained .item_count = 5; // item count gained setmapflag .map_event$,mf_noteleport; setmapflag .map_event$,mf_nowarp; setmapflag .map_event$,mf_nowarpto; setmapflag .map_event$,mf_nomemo; setmapflagnosave .map_event$,"prontera",0,0; setmapflag .map_event$,mf_partylock; setmapflag .map_event$,mf_pvp; end; } How to add this? • When the player DIED, it will automatically warp out of the MAP • When 1 PLAYER LOGOUT the party will automatically be the LOSER • Add another NPC which can give the SET PRIZE • When the event is OVER each party will be recall to the NPC EVENT PRIZE GIVER • Each member of the party that didn't won can have only 1 PRIZE is this POSSIBLE? XD thanks in advance.. NOTE: this script is not mine.. I forgot the LINK.. sorry for this..
  23. @emistry why not showing what monster to kill or hunt? im also using this script.. can you help us?
  24. blakbord

    VIP

    @blue jem or you can just add a special items (not tradable nor dropping it only account bound) so the VIP's can buffs.. just like my server.. VIP's had a special items..
×
×
  • Create New...