celeron0134
-
Posts
194 -
Joined
-
Last visited
Content Type
Profiles
Forums
Downloads
Jobs Available
Server Database
Third-Party Services
Top Guides
Store
Crowdfunding
Posts posted by celeron0134
-
-
this is what i did didnt test it yet @AnnieRuru
//===== rAthena Script ======================================= //= Battleground: PVP //===== By: ================================================== //= AnnieRuru //===== Current Version: ===================================== //= 1.0 //===== Compatible With: ===================================== //= rAthena Project //===== Description: ========================================= //= A simple battleground script: //= Kill players from the other team. //===== Additional Comments: ================================= //= 1.0 First version, edited. [Euphy] //============================================================ - script bg_pvp#control -1,{ OnInit: .minplayer2start = 1; // minimum players to start (ex. if 3vs3, set to 3) .eventlasting = 20*60; // event duration before auto-reset (20 minutes * seconds) setarray .rewarditem[0], // rewards for the winning team: <item>,<amount>,... 7828, 10; setarray .rewarditemloss[0], // rewards for the lossing team: <item>,<amount>,... 7828, 5; end; OnStart: if ( getwaitingroomstate( 0, .rednpcname$ ) < .minplayer2start || getwaitingroomstate( 0, .bluenpcname$ ) < .minplayer2start ) end; // create Battleground and teams .red = waitingroom2bg( "guild_vs3", 13,50, strnpcinfo(0)+"::OnRedQuit", strnpcinfo(0)+"::OnRedDead", .rednpcname$ ); copyarray .team1aid, $@arenamembers, $@arenamembersnum; .team1count = .minplayer2start; .blue = waitingroom2bg( "guild_vs3", 86,50, strnpcinfo(0)+"::OnBlueQuit", strnpcinfo(0)+"::OnBlueDead", .bluenpcname$ ); copyarray .team2aid, $@arenamembers, $@arenamembersnum; .team2count = .minplayer2start; delwaitingroom .rednpcname$; delwaitingroom .bluenpcname$; setwall "guild_vs3", 19,55,12, 4, 0, "bg_pvp_town_blue"; setwall "guild_vs3", 80,55, 12, 4, 0, "bg_pvp_town_red"; bg_warp .red, "guild_vs3", 13,50; bg_warp .blue, "guild_vs3", 86,50; .score[1] = .score[2] = .minplayer2start; bg_updatescore "guild_vs3", .score[1], .score[2]; sleep 6000; mapannounce "guild_vs3", "Rules are simple. The first one to break the opponent's emperium will get a score.", 0; sleep 3000; mapannounce "guild_vs3", "Score "+ .winningscore +" rounds to win ! ... GET READY", 0; sleep 2000; mapannounce "guild_vs3", "start!", 0; delwall "bg_pvp_town_red"; delwall "bg_pvp_town_blue"; // match duration sleep .eventlasting * 1000; // end match, destroy Battleground, reset NPCs if ( .score[1] > .score[2] ) { mapannounce "guild_vs3", "- Red Team is victorious! -", bc_map; callsub L_Reward, 1, 2; } else if ( .score[1] < .score[2] ) { mapannounce "guild_vs3", "- Blue Team is victorious! -", bc_map; callsub L_Reward, 2, 1; } else mapannounce "guild_vs3", "- The match has ended in a draw! -", bc_map; bg_warp .red, "prontera",152,178; bg_warp .blue, "prontera",154,178; bg_destroy .red; bg_destroy .blue; donpcevent .rednpcname$ +"::OnStart"; donpcevent .bluenpcname$ +"::OnStart"; end; L_Reward: for ( .@i = 0; .@i < getd(".team"+ getarg(0) +"count"); .@i++ ) getitem .rewarditem[0], .rewarditem[1], getd(".team"+ getarg(0) +"aid["+ .@i +"]" ); for ( .@i = 0; .@i < getd(".team"+ getarg(1) +"count"); .@i++ ) getitem .rewarditemloss[0], .rewarditemloss[1], getd(".team"+ getarg(1) +"aid["+ .@i +"]" ); return; // "OnDeath" event OnRedDead: callsub L_Dead, 1; OnBlueDead: callsub L_Dead, 2; L_Dead: .score[ getarg(0) ]--; bg_updatescore "guild_vs3", .score[1], .score[2]; while ( getd( ".team"+ getarg(0) +"aid["+ .@i +"]" ) != getcharid(3) && .@i < getd(".team"+ getarg(0) +"count") ) .@i++; deletearray getd( ".team"+ getarg(0) +"aid["+ .@i +"]" ), 1; setd ".team"+ getarg(0) +"count", getd(".team"+ getarg(0) +"count") -1; bg_leave; if ( !.score[ getarg(0) ] ) awake strnpcinfo(0); sleep2 1250; percentheal 100,100; end; // "OnQuit" event OnRedQuit: callsub L_Quit, 1; OnBlueQuit: callsub L_Quit, 2; L_Quit: .score[ getarg(0) ]--; bg_updatescore "guild_vs3", .score[1], .score[2]; percentheal 100, 100; while ( getd( ".team"+ getarg(0) +"aid["+ .@i +"]" ) != getcharid(3) && .@i < getd(".team"+ getarg(0) +"count") ) .@i++; deletearray getd( ".team"+ getarg(0) +"aid["+ .@i +"]" ), 1; setd ".team"+ getarg(0) +"count", getd(".team"+ getarg(0) +"count") -1; if ( !.score[ getarg(0) ] ) awake strnpcinfo(0); end; } quiz_02,247,383,5 script Red Team#bg_pvp 733,{ end; OnInit: sleep 1; set getvariableofnpc( .rednpcname$, "bg_pvp#control" ), strnpcinfo(0); OnStart: waitingroom "Red Team", getvariableofnpc( .minplayer2start, "bg_pvp#control" ) +1, "bg_pvp#control::OnStart", getvariableofnpc( .minplayer2start, "bg_pvp#control" ); end; } quiz_02,252,383,5 script Blue Team#bg_pvp 734,{ end; OnInit: sleep 1; set getvariableofnpc( .bluenpcname$, "bg_pvp#control" ), strnpcinfo(0); OnStart: waitingroom "Blue Team", getvariableofnpc( .minplayer2start, "bg_pvp#control" ) +1, "bg_pvp#control::OnStart", getvariableofnpc( .minplayer2start, "bg_pvp#control" ); end; } guild_vs3 mapflag battleground 2 guild_vs3 mapflag nosave SavePoint guild_vs3 mapflag nowarp guild_vs3 mapflag nowarpto guild_vs3 mapflag noteleport guild_vs3 mapflag nomemo guild_vs3 mapflag nopenalty guild_vs3 mapflag nobranch guild_vs3 mapflag noicewall guild_vs3 mapflag hidemobhpbar - script BattleBadge#2 -1,{ OnPCKillEvent: if (strcharinfo(3)=="guild_vs3" && killedrid != getcharid(3)) getitem 7828,1; end; }
-
Just now, pajodex said:
What are your base and job exp rates?
ok got it now thanks.. at first. i was "why base and job exp rates" and i remembered a script that i haven't fixed yet .. worldboss.txt which makes the servers base and job exp rate to 0x0x0x .. i disabled it and tried the hunting mission and it worked..
thankyou so much pajodex.. im still new and still learning how to script.. thankyou again here's the SS
-
1 minute ago, pajodex said:
//===== 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,152,187,6 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 ET_HUK; next; callsub Mission_Info; emotion ET_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 ET_SCRATCH; #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 ET_SORRY; close; } Zeny -= .Reset; emotion ET_MONEY; } 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 ET_SMILE; 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 ET_SCRATCH; 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 ET_BEST; 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 ET_MONEY; } @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 = 12; // Quest delay, in hours (0 to disable). .Quests = 4; // Number of subquests per mission (increases rewards). .Party = 3; // 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,70; 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). 512,1,513,1,514,1,538,5,539,5,558,10,561,10; .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"; 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
Try use that
same error =(
-
Just now, pajodex said:
Did you, by chance, changed anything on the script?
nope.. i did not changed anything on the script..
-
6 minutes ago, pajodex said:
You don't need to enable use of sql_db for it to work. Just add the mob_db.sql on your sql database and it should work.
tried importing mob_db.sql and mob_db_re.sql
[Error]: script:op_2num: division by zero detected op=C_DIV i1=148700 i2=0
[Debug]: Source (NPC): Hunting Missions at prontera (145,187) -
1 hour ago, pajodex said:
check your: trunk/npc/custom/quests/hunting_missions.txt
thanks pajodex but i can't understand the meaning of this //= NOTE: Requires SQL mob database.
i tried Downloading mob_db.sql/mob_db_pre.sql and enabled use sql_db to yes on inter_athena.conf
then when i run the server.. it spams me with error messages.. i tried and search on the forums.. maybe my keywords are not correct
- on hunting mission npc - when i select new mission.. i got an error script: op2num division by zero detected
-
22 hours ago, pajodex said:
I don't know why you want to make a script instead of manually doing /lb command.
but try this: (Not tested)
https://github.com/pajodex/ScriptCollections/blob/master/gmannouncer.txt
// GM Announcer // By pajodex - script GMAnnouncer -1,{ OnResetAnnounce: OnAtCmd: if(select("Announce:Nothing") == 2 ) close; mes "What messaage to announce?"; input .@announce$; next; mes "Announce: "+.@announce$+" ?"; if(select("Yes:No") == 2) callsub OnResetAnnounce; .announce$ = .@announce$; mes "Announce Interval? (in minutes)"; mes "- How many times will the broadcast be repeated?"; input .@interval; next; mes "Are you sure broadcast interval will be every "+.@interval+" mins?"; if(select("Yes:No") == 2) callsub OnResetAnnounce; .interval = .@interval; donpcevent strnpcinfo(3)+"::OnAnnounce"; mes "Done!"; close; OnAnnounce: announce .announce$, 0; initnpctimer; end; OnTimer60000: .timer++; if(.interval == .timer) { announce .announce$, 0; .timer = 0; end; } setnpctimer 0; end; OnInit: .interval = 0; .announce$ = ""; .timer = 0; bindatcmd "gmbroadcast",strnpcinfo(3)+"::OnAtCmd",0,60; end; }
i think its working.. i fixed some typos tho.. "+.@interval+" and the OnTimer60000:
thank you again pajodex for the fast replies and for helping us newbies thanks alot more power
-
Unfortunately i can't make other hunting mission to work..
So maybe you guys can help me out..
i need a hunting mission script that
1. you can only do the quest once a day for example
on Easy Menu - poring,poporing,drops,marin(you can do all those quest once a day per account) - (and you must finish first the quest before taking another quest)
so the players wont get all the quest at once(one at a time)
2.if you already finished killing poring.. it will say you already did this quest at "--:--" this time come back at 24hours
3.There would be 3 menus for this "Easy","Normal","Hard"
easy = 100kills / normal = 250kills / Hard = 1000kills
5. players can party for faster kills
6 Rewards for easy = TCG x 1 normal TCG x 2 Hard TCG x 3
7 "Top 10 Hunters" - Rankings for the Top Quest Hunters ( Name With a total of (the number of how many quest the player has finished) points
8. players can party for faster kills
9. Daily Rewards for the top 10 hunters - Top 1 = 10 TCG top 2 9tcg --- top 10 = 1tcg
10. Announcer if a player took a spot from the top 10.. ( Name has been promoted to top 2 Hunter)
thankyou so much rathena community
-
i need a NPC script that
*Only GMs can access the NPC*
*Menu (Announce,Nothing)
*onAnnounce = Broadcast the typed Message every 30 mins*(configurable)
*onAnnounce(Again) = removed previous Annouce and Broadcast the new announced message
thanks thats it for now..
-
10 hours ago, pajodex said:
https://github.com/pajodex/ScriptCollections/blob/master/mvp_kill.txt
here thanks for report
Thanks it worked.. more power
-
17 hours ago, pajodex said:
Fix the Reset function.. (i killed 1 MVP then it shows on the rankings "[1] GM - blabla ~ 1 kills") then i used reset function.. it turned to "~ 0 kills"
and after i killed an MVP again.. instead of showing "~ 1 kills" it showed " ~ 2 kills " it continued the MVP kills after the reset
-
On 4/23/2014 at 12:46 AM, Capuche said:
you take this script from a previous request ; the guy wanted to reset the points when the player gets more than 200 points
prontera,162,152,4 script MVP Ladder 619,{ query_sql( "DELETE FROM `mvp_ranking` WHERE `name` NOT IN ( SELECT `name` FROM `char` )" ); set .@size, query_sql( "select name, points from mvp_ranking where points > 0 order by points desc limit "+ .top, .@name$, .@points ); mes "[^FF0000MvP ^0000FFRank ^996600Top ^FF0000" + .top +"^000000]"; for (set .@c, 0; .@c < .@size; set .@c, .@c + 1) mes "Top ^FF0000" +(.@c + 1) +"^000000 ^0000FF" + .@name$[.@c] +"^000000 with ^FF0000" + .@points[.@c] +"^000000 MvP killed."; close; OnInit: // Script Configuration set .a, 1; // Broadcast who killed the MvP and wich MvP and wick Map [0 Off - 1 On] set .top, 10; // Max. Top Rank (Hihgly recommended between 5~10, more maybe bug the server (limited variables) waitingroom "MvP Rank",0; end; OnNPCKillEvent: // Script execution if ( getmonsterinfo( killedrid,MOB_MODE ) & 0x0020 == 0 ) end;// not an mvp if (.a) // If announce On announce "Player [" +strcharinfo(0) +"] had killed MVP [" +getmonsterinfo(killedrid,0) +"] in [" +strcharinfo(3) +"]",bc_blue|bc_all; query_sql "insert into `mvp_ranking` value ( "+ getcharid(0) +", '"+ escape_sql( strcharinfo(0) ) +"', 1 ) on duplicate key update `points` = `points` + 1"; end; }
The NPC reads all mobs poring - MVP as MVP.. and announces all mobs you kill
kindly help me
-
//===== rAthena Script ======================================= //= Battleground: PVP //===== By: ================================================== //= AnnieRuru //===== Current Version: ===================================== //= 1.0 //===== Compatible With: ===================================== //= rAthena Project //===== Description: ========================================= //= A simple battleground script: //= Kill players from the other team. //===== Additional Comments: ================================= //= 1.0 First version, edited. [Euphy] //============================================================ - script bg_pvp#control -1,{ OnInit: .minplayer2start = 5; // minimum players to start (ex. if 3vs3, set to 3) .eventlasting = 20*60; // event duration before auto-reset (20 minutes * seconds) setarray .rewarditem[0], // rewards for the winning team: <item>,<amount>,... 7828, 10; setarray .rewarditemloss[0], // rewards for the lossing team: <item>,<amount>,... 7828, 5; end; OnStart: if ( getwaitingroomstate( 0, .rednpcname$ ) < .minplayer2start || getwaitingroomstate( 0, .bluenpcname$ ) < .minplayer2start ) end; // create Battleground and teams .red = waitingroom2bg( "guild_vs3", 13,50, strnpcinfo(0)+"::OnRedQuit", strnpcinfo(0)+"::OnRedDead", .rednpcname$ ); copyarray .team1aid, $@arenamembers, $@arenamembersnum; .team1count = .minplayer2start; .blue = waitingroom2bg( "guild_vs3", 86,50, strnpcinfo(0)+"::OnBlueQuit", strnpcinfo(0)+"::OnBlueDead", .bluenpcname$ ); copyarray .team2aid, $@arenamembers, $@arenamembersnum; .team2count = .minplayer2start; delwaitingroom .rednpcname$; delwaitingroom .bluenpcname$; bg_warp .red, "guild_vs3", 13,50; bg_warp .blue, "guild_vs3", 86,50; .score[1] = .score[2] = .minplayer2start; bg_updatescore "guild_vs3", .score[1], .score[2]; // match duration sleep .eventlasting * 1000; // end match, destroy Battleground, reset NPCs if ( .score[1] > .score[2] ) { mapannounce "guild_vs3", "- Red Team is victorious! -", bc_map; callsub L_Reward, 1, 2; } else if ( .score[1] < .score[2] ) { mapannounce "guild_vs3", "- Blue Team is victorious! -", bc_map; callsub L_Reward, 2, 1; } else mapannounce "guild_vs3", "- The match has ended in a draw! -", bc_map; bg_warp .red, "prontera",152,178; bg_warp .blue, "prontera",154,178; bg_destroy .red; bg_destroy .blue; donpcevent .rednpcname$ +"::OnStart"; donpcevent .bluenpcname$ +"::OnStart"; end; L_Reward: for ( .@i = 0; .@i < getd(".team"+ getarg(0) +"count"); .@i++ ) getitem .rewarditem[0], .rewarditem[1], getd(".team"+ getarg(0) +"aid["+ .@i +"]" ); for ( .@i = 0; .@i < getd(".team"+ getarg(1) +"count"); .@i++ ) getitem .rewarditemloss[0], .rewarditemloss[1], getd(".team"+ getarg(1) +"aid["+ .@i +"]" ); return; // "OnDeath" event OnRedDead: callsub L_Dead, 1; OnBlueDead: callsub L_Dead, 2; L_Dead: .score[ getarg(0) ]--; bg_updatescore "guild_vs3", .score[1], .score[2]; while ( getd( ".team"+ getarg(0) +"aid["+ .@i +"]" ) != getcharid(3) && .@i < getd(".team"+ getarg(0) +"count") ) .@i++; deletearray getd( ".team"+ getarg(0) +"aid["+ .@i +"]" ), 1; setd ".team"+ getarg(0) +"count", getd(".team"+ getarg(0) +"count") -1; bg_leave; if ( !.score[ getarg(0) ] ) awake strnpcinfo(0); sleep2 1250; percentheal 100,100; end; // "OnQuit" event OnRedQuit: callsub L_Quit, 1; OnBlueQuit: callsub L_Quit, 2; L_Quit: .score[ getarg(0) ]--; bg_updatescore "guild_vs3", .score[1], .score[2]; percentheal 100, 100; while ( getd( ".team"+ getarg(0) +"aid["+ .@i +"]" ) != getcharid(3) && .@i < getd(".team"+ getarg(0) +"count") ) .@i++; deletearray getd( ".team"+ getarg(0) +"aid["+ .@i +"]" ), 1; setd ".team"+ getarg(0) +"count", getd(".team"+ getarg(0) +"count") -1; if ( !.score[ getarg(0) ] ) awake strnpcinfo(0); end; } quiz_02,247,383,5 script Red Team#bg_pvp 733,{ end; OnInit: sleep 1; set getvariableofnpc( .rednpcname$, "bg_pvp#control" ), strnpcinfo(0); OnStart: waitingroom "Red Team", getvariableofnpc( .minplayer2start, "bg_pvp#control" ) +1, "bg_pvp#control::OnStart", getvariableofnpc( .minplayer2start, "bg_pvp#control" ); end; } quiz_02,252,383,5 script Blue Team#bg_pvp 734,{ end; OnInit: sleep 1; set getvariableofnpc( .bluenpcname$, "bg_pvp#control" ), strnpcinfo(0); OnStart: waitingroom "Blue Team", getvariableofnpc( .minplayer2start, "bg_pvp#control" ) +1, "bg_pvp#control::OnStart", getvariableofnpc( .minplayer2start, "bg_pvp#control" ); end; } guild_vs3 mapflag battleground 2 guild_vs3 mapflag nosave SavePoint guild_vs3 mapflag nowarp guild_vs3 mapflag nowarpto guild_vs3 mapflag noteleport guild_vs3 mapflag nomemo guild_vs3 mapflag nopenalty guild_vs3 mapflag nobranch guild_vs3 mapflag noicewall guild_vs3 mapflag hidemobhpbar
Can you add Countdown timer before it begin.. 5 4 3 2 1 Start!! like that and a setwall so it blocks players before the countdown
after the count down disable walls Thankyou verry much
if i posted it on the wrong section letme know thanks
-
i don't know if this is possible .. i dont even know how to do it.. but maybe you guys can..
Rebirth System:
upon reaching level 99 job 70.. you will have an option to rebirth again to Novice High lvl 1 and you will gain 10 hmm lets say Item ID# 7729 (Rok_Star_Badge)
Rebirth has no limit you can rebirth as long as you can.. but on the 5th rebirth.. you're sprite will change to 3rd job sprite with transcended only features
thanks
-
Can you give me a ranking script for bg_emp.txt and bg_pvp.txt found at npc/custom/battleground
bg_emp rankings Top 10
Rankings on BG emp is based on kills and Empbreaks
Killing enemy player = 1 point while breaking emperium will be 10 points
also add when killing the enemy you will gain Valor Badge Item ID# 7829 x1
Breaking emperium you will receive Valor Badge Item ID# 7829 x10pcs
bg.pvp
rankings on bg_pvp is based on Team kills
The team that will win will gain 15 points and Bravery Badge Item ID# 7828 x15
The loosing Team will gain 5points and Bravery Badge Item ID# 7828 x5
bg_emp_rankings
BGEpoints,BGEshop
bg_pvp_rankings
BGE
-
- script bg_emp#control -1,{ OnInit: .minplayer2start = 1; // minimum player to start .winningscore = 2; // final score to win .eventlasting = 20 * 60; // abort the system if there's no progress, 20 mins * seconds setarray .rewarditem, 673, 5; // reward to the winning team end; OnStart: if ( getwaitingroomstate( 0, .rednpcname$ ) < .minplayer2start || getwaitingroomstate( 0, .bluenpcname$ ) < .minplayer2start ) end; .red = waitingroom2bg( "bat_a01", 171,346, strnpcinfo(0)+"::OnRedQuit", strnpcinfo(0)+"::OnRedDead", .rednpcname$ ); copyarray .team1aid, $@arenamembers, $@arenamembersnum; .team1count = .minplayer2start; .blue = waitingroom2bg( "bat_a01", 162,50, strnpcinfo(0)+"::OnBlueQuit", strnpcinfo(0)+"::OnBlueDead", .bluenpcname$ ); copyarray .team2aid, $@arenamembers, $@arenamembersnum; .team2count = .minplayer2start; delwaitingroom .rednpcname$; delwaitingroom .bluenpcname$; disablenpc .rednpcname$; disablenpc .bluenpcname$; bg_warp .red, "bat_a01", 171,346; bg_warp .blue, "bat_a01", 162,50; setwall "bat_a01", 154,51, 6, 4, 0, "bg_emp_town_blue"; setwall "bat_a01", 164,347, 6, 4, 0, "bg_emp_town_red"; bg_updatescore "bat_a01", 0, 0; sleep 6000 * !.skip; mapannounce "bat_a01", "Rules are simple. The first one to break the opponent's emperium will get a score.", 0; sleep 3000 * !.skip; mapannounce "bat_a01", "Score "+ .winningscore +" rounds to win ! ... GET READY", 0; sleep 2000 * !.skip; while (1) { for ( .@i = 5; .@i > 0; .@i-- ) { mapannounce "bat_a01", "["+ .@i +"]", 0; sleep 1000 * !.skip; } if ( .score[1] == .winningscore -1 && .score[2] == .winningscore -1 ) mapannounce "bat_a01", "Final Round start!", 0; else mapannounce "bat_a01", "Round "+ .round++ +" start!", 0; bg_monster .red,"bat_a01",171,346, "--ja--",1915, strnpcinfo(3)+"::OnRedDown"; bg_monster .blue,"bat_a01",162,50, "--ja--",1914, strnpcinfo(3)+"::OnBlueDown"; delwall "bg_emp_town_red"; delwall "bg_emp_town_blue"; sleep .eventlasting * 1000 * !.skip; bg_updatescore "bat_a01", .score[1], .score[2]; killmonster "bat_a01", strnpcinfo(3)+"::OnRedDown"; killmonster "bat_a01", strnpcinfo(3)+"::OnBlueDown"; if ( getstrlen( .empkiller$ ) ) mapannounce "bat_a01", .empkiller$ +" has Destroy "+( ( .winside == 1 )? "Blue" : "Red" )+"'s side Emperium. "+( ( .winside == 1 )? "Red" : "Blue" )+" team score a point !", 0; if ( .score[1] == .winningscore || .score[2] == .winningscore || !.winside ) break; sleep 5000 * !.skip; bg_warp .red, "bat_a01", 171,346; bg_warp .blue, "bat_a01", 162,50; setwall "bat_a01", 154,51, 6, 4, 0, "bg_emp_town_blue"; setwall "bat_a01", 164,347, 6, 4, 0, "bg_emp_town_red"; sleep 1000 * !.skip; .winside = 0; } if ( .winside ) { mapannounce "bat_a01", " "+ ( ( .winside == 1 )? "Red" : "Blue" ) +" side wins !", 0; for ( .@i = 0; .@i < getd(".team"+ .winside +"count"); .@i++ ) getitem .rewarditem[0], .rewarditem[1], getd(".team"+ .winside +"aid["+ .@i +"]" ); } else mapannounce "bat_a01", "Time Out. Aborting the match.", 0; sleep 5000; bg_warp .red, "prontera", 155,182; bg_warp .blue, "prontera", 158,182; bg_destroy .red; bg_destroy .blue; delwall "bg_emp_town_red"; delwall "bg_emp_town_blue"; deletearray .team1aid; deletearray .team2aid; .round = .winside = .skip = .score[1] = .score[2] = .team1count = .team2count = 0; enablenpc .rednpcname$; enablenpc .bluenpcname$; donpcevent .rednpcname$ +"::OnStart"; donpcevent .bluenpcname$ +"::OnStart"; end; OnRedDown: callsub L_EmpDown, 2; OnBlueDown: callsub L_EmpDown, 1; L_EmpDown: .empkiller$ = strcharinfo(0); .winside = getarg(0); .score[ .winside ]++; awake strnpcinfo(0); end; OnRedDead: callsub L_dead, 2; OnBlueDead: callsub L_dead, 1; L_dead: for ( .@i = 0; .@i < getd(".team"+ getarg(0) +"count"); .@i++ ) getitem 608, 1, getd(".team"+ getarg(0) +"aid["+ .@i +"]" ); // give a ygg leaf here sleep2 1250; percentheal 100,100; end; OnRedQuit: callsub L_quit, 1, "Red", 2; OnBlueQuit: callsub L_quit, 2, "Blue", 1; L_quit: percentheal 100, 100; while ( getd( ".team"+ getarg(0) +"aid["+ .@i +"]" ) != getcharid(3) && .@i < getd(".team"+ getarg(0) +"count") ) .@i++; deletearray getd( ".team"+ getarg(0) +"aid["+ .@i +"]" ), 1; setd ".team"+ getarg(0) +"count", getd(".team"+ getarg(0) +"count") -1; if ( getd(".team"+ getarg(0) +"count") ) end; mapannounce "bat_a01", "All "+ getarg(1) +" team members has Quit !", 0, 0xff3333; // purposely use different color .score[ getarg(2) ] = .winningscore; .winside = getarg(2); .skip = 1; awake strnpcinfo(0); end; } prontera,155,182,5 script Red side#bg_emp 100,{ end; OnInit: sleep 1; set getvariableofnpc( .rednpcname$, "bg_emp#control" ), strnpcinfo(0); OnStart: waitingroom "Red side", getvariableofnpc( .minplayer2start, "bg_emp#control" ) +1, strnpcinfo(0)+"::OnJoin", 1; end; OnJoin: announce "The Red side has ["+ getwaitingroomstate(0) +"/"+ getvariableofnpc( .minplayer2start, "bg_emp#control" ) +"] User", 0; donpcevent "bg_emp#control::OnStart"; end; } prontera,158,182,5 script Blue side#bg_emp 100,{ end; OnInit: sleep 1; set getvariableofnpc( .bluenpcname$, "bg_emp#control" ), strnpcinfo(0); OnStart: waitingroom "Blue side", getvariableofnpc( .minplayer2start, "bg_emp#control" ) +1, strnpcinfo(0)+"::OnJoin", 1; end; OnJoin: announce "The Blue side has ["+ getwaitingroomstate(0) +"/"+ getvariableofnpc( .minplayer2start, "bg_emp#control" ) +"] User", 0; donpcevent "bg_emp#control::OnStart"; end; } bat_a01 mapflag battleground 2 bat_a01 mapflag nosave SavePoint bat_a01 mapflag nowarp bat_a01 mapflag nowarpto bat_a01 mapflag noteleport bat_a01 mapflag nomemo bat_a01 mapflag nopenalty bat_a01 mapflag nobranch bat_a01 mapflag noicewall
hi annie.. can you please help me about this script.. i just want the rednpc and blue npc waiting rooms not to disappear after warping the player on ba_a01.. the purpose is when the BG emp has started.. other players can still join the event until the BG has fisnished .. or is there any other way of doing it? so players can still join the BG emp and also a for the players inside the BG emp that logout should have like a 5min delay to enter again thankyou so much if you have time to spare thanks
@edit.
also the script is working fine at 1st.. but when i reloadnpc again and i entered the waiting rooms.. at rednpc2/2 and blueNPC 2/2 the npc disappeared but not warping the players on bat_a01
-
id like to request a script that summons 20 treasure chests that will scatter around the map for the players to find after killing a custom MVP.. thanks
like
onMVPkilled
summon 1324
summon 1356
summon 1361 etc.. on random coordinates where the MVP was killed example if the MVP killed in prontera 20 chests will scatter around prontera for the people to find thanks
-
51 minutes ago, hendra814 said:
sorry have some typo and error. here already fix the script
prontera,155,176,4 script Map Warper 512,{ mes "Hello, ^0000FF"+strcharinfo(0)+"^000000,"; mes "Where do you want to go?"; next; switch(select("Prontera["+getmapusers("prontera")+"]:izlude["+getmapusers("izlude")+"]:aldebaran["+getmapusers("aldebaran")+"]")){ Case 1: mes "Are you sure?"; next; switch(select("Yes:No")){ Case 1: warp "prontera", 0, 0; close; Case 2: mes "ok bye"; close; } Case 2: mes "Are you sure?"; next; switch(select("Yes:No")){ Case 1: warp "izlude", 0, 0; close; Case 2: mes "ok bye"; close; } Case 3: mes "Are you sure?"; next; switch(select("Yes:No")){ Case 1: warp "aldebaran", 0, 0; close; Case 2: mes "ok bye"; close; } } }
here my ss
ok thankyou so much it worked.. you have so many npcs .. do you own a private server or something?
-
55 minutes ago, hendra814 said:
here, but not i'm not test this script
prontera,164,173,3 script Map Warper 512,{ mes "Hello, ^0000FF"+strcharinfo(0)+"^000000,"; mes "Where do you want to go?"; next; switch(select("Prontera["+getmapusers("prontera")+"]:izlude["+getmapusers("izlude")+"]:aldebaran["+getmapusers("aldebaran")+"]")){ Case 1: mes "Are you sure?"; next; switch(select("Yes:No")){ Case 1: warp "prontera", 0, 0; close; Case 2: mes "ok bye"; close; } Case 2: mes "Are you sure?"; next; switch(select("Yes:No")){ Case 1: warp "izlude", 0, 0; close; Case 2: mes "ok bye"; close; } Case 1: mes "Are you sure?"; next; switch(select("Yes:No")){ Case 1: warp "aldebaran", 0, 0; close; Case 2: mes "ok bye"; close; } } }
it shows -1 and doesnt count players on the map.. i used moc_pryd06 tho.. changed it to switch(select("moc_pryd06["+getmapusers("moc_pryd06")+"]
-
Hi good day rathena community .. can you kindly help me with my script? i want to have a player count on Menu selection..
prontera,164,173,3 script Map Warper 512,{
mes "Hello, ^0000FF"+strcharinfo(0)+"^000000,";
mes "Where do you want to go?";
next;
switch(select("prontera( getmapusers) :izlude( getmapusers):aldebaran( getmapusers)")){Case 1:
mes "Are you sure?";
next;
switch(select("Yes:No")){
Case 1:
warp "prontera", 0, 0;
close;
Case 2:
mes "ok bye";
close;
}
Case 2:
goto Atroce; -
up for this.. Zeny Tracker
-
-
is there a way to reduce exploding time of venom splasher? .. like a item script..bonus tick,AS_SPLASHER,-5; something like that?
venom splasher have soo much time to explode.. help me thanks
-
@Stolao hi sir i used your script.. and it is so awesome.. but there's one problem tho.. whenever i use blessing scroll or food buffs or awakening potions the bonus from the weapon mastery will be disabled and i have to re-equip again my weapon in order to activate it again... can you kindly fix it?? thanks
AnnieRuRu BG_Emp05
in Scripting Support
Posted · Edited by celeron0134
Thanks annie.. tested and here's the error
Walls don't disappear, no Emp/crystal
// ** New ** Now players can join an ongoing battleground ~
maybe it can be like this?
.minplayer2start = 5 // for 5v5
.maxplayer2join = 10 // max players that can join bg_emp .. so if full it will be 10vs10,needs a feature that will make the late commers to alternately join red and blue side
everything else look so fantastic ..