Jump to content

pajodex

Members
  • Posts

    439
  • Joined

  • Last visited

  • Days Won

    26

Posts posted by pajodex

  1. 7 hours ago, iubantot said:

    tested this script it can only run once when the event ends the next event wont warp the players on the BG map, no errors appearing tho

    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

  2. 1 hour ago, Poring King said:

    As far as i know rAthena and Hercules says that the best gameguard for RO is Harmony  but they did not recommend it due to recently inactive. Thats why im confuse witch gameguard should i use .

    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. 

    • Upvote 1
  3. 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) 

    Quote

    //===== rAthena Script =======================================
    //= Ragnarok Event 
    //===============  by: =============================
    //= pajodex
    //===== Current Version: =====================================
    //= 1.1
    //===== Compatible With: =====================================
    //= rAthena Project (pajodex)
    //===== Description: =========================================
    /*
    Ragnarok Event
            
        Battleground script that runs OnClockxxxx time on server.
    An npc will appear at prontera for registration. After some time
    RegistrationNPC will disappear. All registered players will
    be divided into 2 teams.

        Players have to eliminate the enemy to gain points. Team
    with the most points accumulated wins.

        * disclaimer * this runs like the War Over Rune but it is
    my own version. Since this is free, i did not add any special
    features. 

     
        Enjoy!

    */
    //=====******** Note ********=================================
    //= if you find bugs or problem, please do tell DM me at
    //= Discord (pajodex#1328) or rAthena (pajodex) 
    //= open for suggestions
    //===== Additional Comments: =================================
    /*     
        1.0 - Initial release
        1.1 - Optimized version    
              Free release of v2 (Rune War) 
             https://github.com/pajodex/ScriptCollections/blob/master/RuneWar.txt
    */
    //=============================================================

    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. 

     


     

    • Upvote 1
  4. 4 minutes ago, Secrets said:

    At some point, the character in question will reach the MMR required to face other high MMR player though

    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.

  5. 4 hours ago, philfix.sai said:

    I love the idea/concept. Really nice! /no1

    LOOKING FORWARD ON THIS:

    - An enhance pvp match making feature wherein (this x level can only be match with the same level)

    This will surely kill the main char feeding. /gg 

    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 

  6. 4 hours ago, Secrets said:

    What would you do in the situation where a fully-geared player transfer his items to another char with lower MMR? Assuming he has equal skill to other high MMR player, use the "smurf" char and defeat other high MMR players to greatly reduce their MMR due to how MMR or ELO rating is calculated.

    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. 

  7. 1 hour ago, melv0 said:

    sir not working script didn't read guild id, player still can enter without guild or guild not list in my array :(

    
    -	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]) 
    		mes "mes";
                                                 
    	end;
    
    	
    OnInit:
    	setarray .guild_id, 76, 77; // enter guild id
    	setarray .maps$,"prtg_cas04","prtg_cas02"; // add maps
    	end;	
    }

    this is what i was try

    -	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;	
    }

     

     

  8. 20 minutes ago, melv0 said:

    actually I will implement these scripts in the map castle which already have mapflag loadevent, so if I use this script, all the maps that have a loadevent mapflag will be affected.
    is there any solution so that only affects the maps I want only

    -	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;

     

  9. 1 hour ago, melv0 said:

    somebody can make me script to filter guild in certain map and only guild id set in list array can enter that map another will be warp to savepoint

    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

     

  10. 2 minutes ago, celeron0134 said:

    nope.. i did not changed anything on the script.. 

    //===== rAthena Script =======================================
    //= Hunting Missions
    //===== By: ==================================================
    //= Euphy
    //===== Current Version: =====================================
    //= 1.4
    //===== Compatible With: ===================================== 
    //= rAthena Project
    //===== Description: =========================================
    //= Random hunting missions.
    //= Rewards are based on quest difficulty.
    //= 
    //= NOTE: Requires SQL mob database.
    //===== Additional Comments: =================================
    //= 1.0 Initial script.
    //= 1.1 Small improvements and fixes.
    //= 1.2 Added party support and replaced blacklists with an
    //=     SQL query, both thanks to AnnieRuru.
    //= 1.3 Re-added a blacklist adapted for the SQL query.
    //= 1.3a Added mission reset options.
    //= 1.3b Function updates.
    //= 1.4 Check for deleted characters, thanks to AnnieRuru.
    //=     Syntax updates and style cleaning.
    //============================================================
    
    prontera,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

  11. 2 minutes ago, celeron0134 said:

    tried importing mob_db.sql and mob_db_re.sqlerror.png.93cf6897e7dd5cb304595e1ae490f22b.png

    [Error]: script:op_2num: division by zero detected op=C_DIV i1=148700 i2=0
    [Debug]: Source (NPC): Hunting Missions at prontera (145,187)

    Did you, by chance, changed anything on the script?

  12. 1 minute ago, celeron0134 said:

    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

    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.

  13. 2 hours ago, celeron0134 said:

    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

     

     

     

    check your: trunk/npc/custom/quests/hunting_missions.txt

  14. Update (03/29/18):

    • Capture the Flag: A 5v5 Party Pvp in which players has to capture enemy's flags and put it in your goal area. First team to clear all the flags from the other team wins the event.
    • Ancient Defense: A 5v5(configurable) Battleground mode in which players has to destroy the opponent's Ancient. But you still need to kill 2 pillars protecting the Ancient Crystals in order to make it vulnerable. Ancient is also defended by Guardian Defenders but you still need to activate them by breaking the seal located near the enemy's base.
  15. 25 minutes ago, celeron0134 said:

    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..

     

     

     

    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

  16. Item Harvest Event


    Quote
    //===== rAthena Script =======================================
    //= Item Harvest Event
    //=========================  by: =============================
    //= pajodex
    //===== Current Version: =====================================
    //= 1.0
    //===== Compatible With: =====================================
    //= rAthena Project (pajodex)
    //===== Description: =========================================
    /*
    Automated event that runs every 30 mins. Players will enter via
    'item harvest farmer' NPC in prontera. Plants will be spawn on
    the event map. Each plant will give random items.
    Enjoy!
    */
    //=====******** Note ********=================================
    //= if you find bugs or problem, please do tell DM me at
    //= Discord (pajodex#1328) or rAthena (pajodex)
    //= open for suggestions
    //===== Additional Comments: =================================
    /*
     1.0 - Initial release
    */
    //=============================================================

    Config part:

    	// set items
    	setarray .item_drop,501,502,503,504,505;
    	
    	// set map
    	.map$ = "pvp_n_1-2";
    	
    	// warp players out when already killed a plant (1 = on || 0 = off)
    	.warp_ = 1; 

    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.


     

  17. Another Freebies NPC with easy char/acc bound settings


    OnInit:
    	// settings
    	.char_bound = 1; // enable character bound rewards (1 = on || 0 = off)
    	.account_bound = 1; // enable account bound rewards (1 = on || 0 = off)
    	// set item (char bound)
    	setarray .char_reward, 501, 502, 503; // item
    	setarray .char_reward_amt, 1, 2, 4; // amount
    	// set item (acc bound)
    	setarray .acc_reward, 501, 502, 503; // item
    	setarray .acc_reward_amt, 1, 2, 4; // amount

    Use and edit this to any ways you need.

    I just made another simple freebies npc.. This is in reponse to many new server owners who kept asking "how to make freebies account bound/char bound?" or such. I made it easier for them to choose whether to enable char/acc bound rewards or not.

    Enjoy


    • Submitter
    • Submitted
      03/12/2018
    • Category
    • Video
    • Content Author
      pajodex

     

    • Love 1
×
×
  • Create New...