Jump to content

pajodex

Members
  • Posts

    436
  • Joined

  • Last visited

  • Days Won

    25

Everything posted by pajodex

  1. You can double the number of monsters spawned. You can freely use and edit this script as you wish.
  2. OnClock0000: query_sql("UPDATE `char_reg_num` SET `value` = '0' WHERE `key` ='dailysupply'"); addrid(0); dailysupply = 0; end;
  3. For support, please leave me DM in discord instead. There will be an optimized version of this soon. For those who have already had a copy of this, just wait for the update.
  4. 1. I can always put a ranker npc which can reset all mmr data every month/week as desired. 2. Mmr is set to 1. You can never get any value less than 1. Unless desired. 3. All brackets can be modified. If there is less population in the server. You can set only 3 brackets or less. And the bracket values are also modifiable as desired. 4. It will take tons of effort to do that. There will be calibration matches to check what would be thr starting mmr. Also, there is an anti abuse system in calibration match. Which includes IP check if both players in map are in same IP. No arguments with players playing in shop / cafe. It also includes data record to check the matches in calibration. I can also add that in Solo rank mode. If you have any more questions or suggestions. Please feel free to let me know for the betterment of this project. ?
  5. Yeah, I guess I have long way to go! Thanks for the tip @AnnieRuru. I will edit my first post.
  6. Here, forgot to add check if player is lower than lvl 99. Tick solve and upvote if I helped you, Thanks. // by pajodex // Optimized by AnnieRuru prontera,150,150,0 script Race-To-99 100,{ if (BaseLevel < 99) { npctalk "Sorry, Only Lvl 99 can claim the reward!"; end; } if ($ItemGive == 100) { npctalk "Sorry, all rewards has been taken!"; end; } if (getreward) { npctalk "Sorry, Nothing for you!"; end; } announce "Congratulations! "+strcharinfo(0)+" has claimed his reward for Race to 99 Event", bc_all; getitem 501, 100; ++$ItemGive; getreward = 1; sleep 2000; announce "There are "+(100 - $ItemGive)+" rewards left to give!", bc_all; end; }
  7. exactly what I did. Test it.
  8. // by pajodex prontera,150,150,0 script Race-To-99 100,{ .@item = 501; // Item ID .@amount = 100; // Amount if($ItemGive != 100 && BaseLevel == 99) { if(getreward != 1) { Announce "Congratulations! "+strcharinfo{0}+" has claimed his reward for Race to 99 Event", 0; getitem .@item, .@amount; $ItemGive++; getreward++; sleep 2000; announce "There are "+100 - $ItemGive+" rewards left to give!"; end; } else npctalk "Sorry, Nothing for you!"; end; } else { npctalk "Sorry, all rewards has been taken!"; end; } } Not yet tested, but it should work.
  9. I'll check on this once I get home. Thanks for reporting. EDIT: Hi, I checked the script again. I cant seem to reproduce the problem. Did you somehow edit the script? If not, please do specify (step-by-step if possible) on how did the bug happened. @iubantot
  10. For me, harmony was a total rip-off. Since some programs were able to bypass it. Gepard, in the other hand, is pretty credible, reasonable and @Functoris really active. I made some searches in Google about bypassing gepard to test its credibility. From a site I accessed (I forgot which one), they said that gepard is totally difficult to bypass. So far, as much as I know, no third-party software is able to do so, yet. Regardless, choosing something that's currently developing and active is the most realistic solution for your needs. Don't go over to something that even it's developers have lost interest in maintaining it.
  11. View File Ragnarok Event - Battleground This is my first battleground script being release for free. Hope you Enjoy it, Here is a FREE release of Rune War (Ragnarok Event v2) You can edit this part: OnInit: // Registration time .RegistrationTime = 5; // Duration of the event $@rWarDuration = 10; Then load it on your server! Enjoy! https://github.com/pajodex/ScriptCollections/blob/master/RagnaEvent.txt Note: I have a 2nd (Original) version of this which features the ff: 1. Added more flexible configurations such as: .RegistrationTime = 5; $@min_level = 80; $@rWarDuration = 10; $@re_map$ = "prt_are01"; $@RedDye = 407; $@BlueDye = 380; $@Item_ID = 7773; setarray $@Amt, 10, 5; // <WIN>, <LOSE> $@bonus_max = 10; // Max additional reward receive to players who killed many enemies. $@resuDelay = 10; // delay on resurrection (in seconds) setarray $@redTeam_Spawn, 251, 149; setarray $@blueTeam_Spawn, 47, 149; 2. GM activation via "@startre" 3. Bonus rewards - calculated via enemy kill counts 4. Auto-change Team cloth color (Red) or (Blue) 5. Rune Spawn during match (Like DOTA2) - makes the game more fun and exciting! a. Invisibility Rune b. Haster Rune c. Double Damage Rune d. Illusion Rune e. Regenaration Rune I can also incorporate this to my BG Queue System. For those who are seriously interested with the v2, please do leave me a DM here of in Discord Thank you! Here is a FREE release of Rune War (Ragnarok Event v2) https://github.com/pajodex/ScriptCollections/blob/master/RuneWar.txt By downloading this file, you agree with my Terms of Service: • You are not allowed remove my signature from any of the included files. • You are not allowed sell, resell or in any form for money or rewards using my work. • You are not allowed claim my work as yours. • I have the rights to change all the terms above without prior notice. Submitter pajodex Submitted 04/02/2018 Category PvP, GvG, WoE, Battleground Video Content Author pajodex  
  12. Version 1.1.0

    359 downloads

    This is my first battleground script being release for free. Hope you Enjoy it, Here is a FREE release of Rune War (Ragnarok Event v2) You can edit this part: OnInit: // Registration time .RegistrationTime = 5; // Duration of the event $@rWarDuration = 10; Then load it on your server! Enjoy! https://github.com/pajodex/ScriptCollections/blob/master/RagnaEvent.txt Note: I have a 2nd (Original) version of this which features the ff: 1. Added more flexible configurations such as: .RegistrationTime = 5; $@min_level = 80; $@rWarDuration = 10; $@re_map$ = "prt_are01"; $@RedDye = 407; $@BlueDye = 380; $@Item_ID = 7773; setarray $@Amt, 10, 5; // <WIN>, <LOSE> $@bonus_max = 10; // Max additional reward receive to players who killed many enemies. $@resuDelay = 10; // delay on resurrection (in seconds) setarray $@redTeam_Spawn, 251, 149; setarray $@blueTeam_Spawn, 47, 149; 2. GM activation via "@startre" 3. Bonus rewards - calculated via enemy kill counts 4. Auto-change Team cloth color (Red) or (Blue) 5. Rune Spawn during match (Like DOTA2) - makes the game more fun and exciting! a. Invisibility Rune b. Haster Rune c. Double Damage Rune d. Illusion Rune e. Regenaration Rune I can also incorporate this to my BG Queue System. For those who are seriously interested with the v2, please do leave me a DM here of in Discord Thank you! Here is a FREE release of Rune War (Ragnarok Event v2) https://github.com/pajodex/ScriptCollections/blob/master/RuneWar.txt By downloading this file, you agree with my Terms of Service: • You are not allowed remove my signature from any of the included files. • You are not allowed sell, resell or in any form for money or rewards using my work. • You are not allowed claim my work as yours. • I have the rights to change all the terms above without prior notice.
    Free
  13. True, but it will take enormous amount of hardwork to do that. Well, its also a challenge of other players to defend their MMR Points and make sure not to lose to anyone.
  14. Exactly my thoughts. I had the idea because I don't want pvp ladders be abused by feeding your main character with dummy accounts. That method doesn't even really count if you are really skillful. Only determine if you are hardworking on feeding your main char with kills. Or you fight against less skilled players and just raping them with your skills
  15. This impossible to happen. Low mmr will only face against mmr with same bracket and so on. Prior to entering the ranked match, players will have to undergo a calibration matches which will assess them on what will be their starting mmr points. So, this what happens. Players with mmr less than 100 points will be fighting against each other. 101-200 mmr players will be on same bracket. 201-300 mmr players and so on.. But these mmr bracket can be configured by the likings of the server admin.
  16. - script checkguild -1,{ OnPCLoadMapEvent: addrid(0); for ( .@q = 0; .@q < getarraysize(.maps$); .@q++) if(strcharinfo(3) != .map$[.@q]) end; for ( .@i = 0; .@i < getarraysize(.guild_id); .@i++) if ( getcharid(2) != .guild_id[.@i]) mes "mes"; end; OnInit: setarray .guild_id, 76, 77; // enter guild id setarray .maps$,"prtg_cas04","prtg_cas02"; // add maps end; }
  17. - script checkguild -1,{ OnPCLoadMapEvent: for ( .@q = 0; .@q < getarraysize(.maps$); .@q++) if(strcharinfo(3) != .map$[.@q]) end; for ( .@i = 0; .@i < getarraysize(.guild_id); .@i++) if ( getcharid(2) != .guild_id[.@i]) warp "SavePoint",0,0; end; OnInit: setarray .guild_id, <ID>, <ID>; // enter guild id setarray .maps$,"prontera","geffen"; // add maps end;
  18. Not tested - script checkguild -1,{ OnPCLoadMapEvent: for ( .@i = 0; .@i < getarraysize(.guild_id); .@i++) if ( getcharid(2) != .guild_id[.@i]) warp "SavePoint",0,0; end; OnInit: setarray .guild_id, <ID>, <ID>; // enter guild id setarray .maps$,"prontera","geffen"; for ( .@i = 0; .@i < getarraysize(.maps$); .@i++) setmapflag .maps$[.@i],mf_loadevent; end; } or this: - script checkguild -1,{ OnPCLoadMapEvent: for ( .@i = 0; .@i < getarraysize(.guild_id); .@i++) if ( getcharid(2) != .guild_id[.@i]) warp "SavePoint",0,0; end; OnInit: setarray .guild_id, <ID>, <ID>; // enter guild id end; } prontera mapflag loadevent geffen mapflag loadevent
  19. What are your base and job exp rates?
  20. //===== 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
  21. Did you, by chance, changed anything on the script?
  22. 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.
  23. check your: trunk/npc/custom/quests/hunting_missions.txt
×
×
  • Create New...