Jump to content

ajaytrix

Members
  • Posts

    84
  • Joined

  • Last visited

Posts posted by ajaytrix

  1. hi is there a tool to check the errors that itemdesctable.txt, idnum2itemdisplaynametable.txt, and other .txt files that's inside the GRF

    My client is crasing because i've changed those two files, i cant seem to find the errors.

     

    PS:

    I haven't added the items inside the item_db2 folder. 

  2. 5 hours ago, Technoken said:

    What do you mean by continuously? Like every week? It will be triggered Every Tuesday, Wednesday, Thursday, Saturday, and Sunday.

    Yes, for all the tuesday, wed, thursday, sat, and sunday. Will it triggered all the time of the year?

  3. 3 hours ago, Technoken said:

    I think you don't need to put OnInit since OnWed2359 is also a executable label.

    Btw what's the sleep for?

    Your script will trigger the hideoffnpc after 5 minutes since it has no 'end'.

    Anyways try this if it will work

    
    -	script	HidingNPC	-1,{
    //OnInit:
    
    //Hides NPC on Wed
    OnWed2359:
    	hideonnpc "Kellvahni#gefg_cas04"; //gefg_cas04 72 46
    	// sleep ( 5 * 60000 );
    	end;
    
    OnTue0000:
    	hideoffnpc "Kellvahni#gefg_cas04";
    	end;
    	
    //Hides on Saturday
    OnSat2359:
    	hideonnpc "Roy#prtg_cas02"; //prtg_cas02 94 61
    	//sleep ( 5 * 60000 );
    	end;
    
    OnThu2300:
    	hideoffnpc "Roy#prtg_cas02";
    	end;
    
    //Hides Hides on sunday 
    OnSun2358:
    	hideonnpc "Nahzarf#aldeg_cas03"; //aldeg_cas03 110 118
    	//sleep ( 5 * 60000 );
    	end;
    
    OnSun0000:
    	hideoffnpc "Nahzarf#aldeg_cas03";
    	end;
    }

     

     

    Hi, this script will work continuously right, not just on a certain week?

  4. Hi rAthena, regarding the hidenpc script. Is my script fine? I've tried it and it has no errors. But the thing is, I wanted the NPCs to hide and return to the said specific day and time throughout the whole server. The NPC is not hiding every wednesday and so on, hope someone can help me. 

    
    -	script	HidingNPC	-1,{
    OnInit:
    
    //Hides NPC on Wed
    OnWed2359:
    	hideonnpc "Kellvahni#gefg_cas04"; //gefg_cas04 72 46
    	sleep ( 5 * 60000 );
    
    OnTue0000:
    	hideoffnpc "Kellvahni#gefg_cas04";
    	end;
    	
    //Hides on Saturday
    OnSat2359:
    	hideonnpc "Roy#prtg_cas02"; //prtg_cas02 94 61
    	sleep ( 5 * 60000 );
    
    OnThu2300:
    	hideoffnpc "Roy#prtg_cas02";
    	end;
    //Hides Hides on sunday 
    OnSun2358:
    	hideonnpc "Nahzarf#aldeg_cas03"; //aldeg_cas03 110 118
    	sleep ( 5 * 60000 );
    
    OnSun0000:
    	hideoffnpc "Nahzarf#aldeg_cas03";
    	end;
    	
    
    	
    }
  5. Hi rAthena, regarding the hidenpc script. Is my script fine? I've tried it and it has no errors. But the thing is, I wanted the NPCs to hide and return to the said specific day and time throughout the whole server. The NPC is not hiding every wednesday and so on, hope someone can help me. 

    
    -	script	HidingNPC	-1,{
    OnInit:
    
    //Hides NPC on Wed
    OnWed2359:
    	hideonnpc "Kellvahni#gefg_cas04"; //gefg_cas04 72 46
    	sleep ( 5 * 60000 );
    
    OnTue0000:
    	hideoffnpc "Kellvahni#gefg_cas04";
    	end;
    	
    //Hides on Saturday
    OnSat2359:
    	hideonnpc "Roy#prtg_cas02"; //prtg_cas02 94 61
    	sleep ( 5 * 60000 );
    
    OnThu2300:
    	hideoffnpc "Roy#prtg_cas02";
    	end;
    //Hides Hides on sunday 
    OnSun2358:
    	hideonnpc "Nahzarf#aldeg_cas03"; //aldeg_cas03 110 118
    	sleep ( 5 * 60000 );
    
    OnSun0000:
    	hideoffnpc "Nahzarf#aldeg_cas03";
    	end;
    	
    
    	
    }

     

  6. I'm using euphy's quest script 1.6c

    Whenever I'm clicking an item this shows up.

     

     

    error.png\

     

     

    here's the script

    //===== rAthena Script =======================================
    //= Euphy's Quest Shop
    //===== By: ==================================================
    //= Euphy
    //===== Current Version: =====================================
    //= 1.6c
    //===== Compatible With: =====================================
    //= rAthena Project
    //===== Description: =========================================
    //= A dynamic quest shop based on Lunar's, with easier config.
    //= Includes support for multiple shops & cashpoints.
    //= Item Preview script by ToastOfDoom.
    //===== Additional Comments: =================================
    //= 1.0 Initial script.
    //= 1.2 Added category support.
    //= 1.3 More options and fixes.
    //= 1.4 Added debug settings.
    //= 1.5 Replaced categories with shop IDs.
    //= 1.6 Added support for purchasing stackables.
    //= 1.6a Added support for previewing costumes and robes.
    //= 1.6b Added 'disable_items' command.
    //= 1.6c Replaced function 'A_An' with "F_InsertArticle".
    //============================================================
    
    // Shop NPCs -- supplying no argument displays entire menu.
    //	callfunc "qshop"{,<shop ID>{,<shop ID>{,...}}};
    //============================================================
    poring_w02,114,82,6	script	Uno	998,{ callfunc "qshop"; }
    
    
    // Script Core
    //============================================================
    -	script	quest_shop	-1,{ 
    function Add; function Chk; function Slot;
    OnInit:
    	freeloop(1);
    
    // -----------------------------------------------------------
    //  Basic shop settings.
    // -----------------------------------------------------------
    
    	set .Announce,0;	// Announce quest completion? (1: yes / 0: no)
    	set .ShowSlot,1;	// Show item slots? (2: all equipment / 1: if slots > 0 / 0: never)
    	set .ShowID,0;  	// Show item IDs? (1: yes / 0: no)
    	set .ShowZeny,0;	// Show Zeny cost, if any? (1: yes / 0: no)
    	set .MaxStack,100;	// Max number of quest items purchased at one time.
    
    // -----------------------------------------------------------
    //  Points variable -- optional quest requirement.
    //	setarray .Points$[0],"<variable name>","<display name>";
    // -----------------------------------------------------------
    
    	setarray .Points$[0],"#CASHPOINTS","Cash Points";
    
    // -----------------------------------------------------------
    //  Shop IDs -- to add shops, copy dummy data at bottom of file.
    //	setarray .Shops$[1],"<Shop 1>","<Shop 2>"{,...};
    // -----------------------------------------------------------
    
    	setarray .Shops$[1],"Headgears","Weapons";
    
    // -----------------------------------------------------------
    //  Quest items -- do NOT use a reward item more than once!
    //	Add(<shop ID>,<reward ID>,<reward amount>,
    //	    <Zeny cost>,<point cost>,
    //	    <required item ID>,<required item amount>{,...});
    // -----------------------------------------------------------
    
    	Add(1,25455,1,0,0,671,2,7151,200,7112,180,7111,200,4033,15);
    
    	Add(2,25536,1,0,0,671,2,521,200,7298,150,7100,180,4230,15);
    
    // -----------------------------------------------------------
    
    	freeloop(0);
    	set .menu$,"";
    	for(set .@i,1; .@i<=getarraysize(.Shops$); set .@i,.@i+1) {
    		set .menu$, .menu$+.Shops$[.@i]+":";
    		npcshopdelitem "qshop"+.@i,909;
    	}
    	end;
    
    OnMenu:
    	set .@size, getarraysize(@i);
    	if (!.@size) set @shop_index, select(.menu$);
    	else if (.@size == 1) set @shop_index, @i[0];
    	else {
    		for(set .@j,0; .@j<.@size; set .@j,.@j+1)
    			set .@menu$, .@menu$+.Shops$[@i[.@j]]+":";
    		set @shop_index, @i[select(.@menu$)-1];
    	}
    	deletearray @i[0],getarraysize(@i);
    	if (.Shops$[@shop_index] == "") {
    		message strcharinfo(0),"An error has occurred.";
    		end;
    	}
    	dispbottom "Select one item at a time.";
    	callshop "qshop"+@shop_index,1;
    	npcshopattach "qshop"+@shop_index;
    	end;
    
    OnBuyItem:
    	// .@q[] : RewardID, BoughtAmt, RewardAmt, BaseAmt, ReqZeny, ReqPts, { ReqItem, ReqAmt, ... }
    	setarray .@q[0],@bought_nameid[0],((@bought_quantity[0] > .MaxStack)?.MaxStack:@bought_quantity[0]);
    	copyarray .@q[3],getd(".q_"+@shop_index+"_"+.@q[0]+"[0]"),getarraysize(getd(".q_"+@shop_index+"_"+.@q[0]));
    	set .@q[2],.@q[1]*.@q[3];
    	if (!.@q[2] || .@q[2] > 30000) {
    		message strcharinfo(0),"You can't purchase that many "+getitemname(.@q[0])+".";
    		end;
    	}
    	mes "[Quest Shop]";
    	mes "Reward: ^0055FF"+((.@q[2] > 1)?.@q[2]+"x ":"")+Slot(.@q[0])+"^000000";
    	mes "Requirements:";
    	disable_items;
    	if (.@q[4]) mes " > "+Chk(Zeny,.@q[4]*.@q[1])+(.@q[4]*.@q[1])+" Zeny^000000";
    	if (.@q[5]) mes " > "+Chk(getd(.Points$[0]),.@q[5]*.@q[1])+(.@q[5]*.@q[1])+" "+.Points$[1]+" ("+getd(.Points$[0])+"/"+(.@q[5]*.@q[1])+")^000000";
    	if (.@q[6]) for(set .@i,6; .@i<getarraysize(.@q); set .@i,.@i+2)
    		mes " > "+Chk(countitem(.@q[.@i]),.@q[.@i+1]*.@q[1])+((.ShowID)?"{"+.@q[.@i]+"} ":"")+Slot(.@q[.@i])+" ("+countitem(.@q[.@i])+"/"+(.@q[.@i+1]*.@q[1])+")^000000";
    	next;
    	setarray @qe[1], getiteminfo(.@q[0],5), getiteminfo(.@q[0],11);
    	if (@qe[2] > 0 && ((@qe[1] & EQP_HEAD_LOW) || (@qe[1] & EQP_HEAD_TOP) || (@qe[1] & EQP_HEAD_MID) || (@qe[1] & EQP_COSTUME_HEAD_TOP) || (@qe[1] & EQP_COSTUME_HEAD_MID) || (@qe[1] & EQP_COSTUME_HEAD_LOW) || (@qe[1] & EQP_GARMENT) || (@qe[1] & EQP_COSTUME_GARMENT)))
    		set .@preview,1;
    	addtimer 1000, strnpcinfo(0)+"::OnEnd";
    	while(1) {
    		switch(select(" ~ Purchase ^0055FF"+getitemname(.@q[0])+"^000000:"+((.@preview && !@qe[7])?" ~ Preview...":"")+": ~ ^777777Cancel^000000")) {
    		case 1:
    			if (@qe[0]) { 
    				mes "[Quest Shop]";
    				mes "You're missing one or more quest requirements.";
    				close;
    			}
    			if (!checkweight(.@q[0],.@q[2])) {
    				mes "[Quest Shop]";
    				mes "^FF0000You need "+(((.@q[2]*getiteminfo(.@q[0],6))+Weight-MaxWeight)/10)+" additional weight capacity to complete this trade.^000000";
    				close;
    			}
    			if (.@q[4]) set Zeny, Zeny-(.@q[4]*.@q[1]);
    			if (.@q[5]) setd .Points$[0], getd(.Points$[0])-(.@q[5]*.@q[1]);
    			if (.@q[6]) for(set .@i,6; .@i<getarraysize(.@q); set .@i,.@i+2)
    				delitem .@q[.@i],.@q[.@i+1]*.@q[1];
    			getitem .@q[0],.@q[2];
    			if (.Announce) announce strcharinfo(0)+" has created "+((.@q[2] > 1)?.@q[2]+"x "+getitemname(.@q[0]):callfunc("F_InsertArticle",getitemname(.@q[0])))+"!",0;
    			specialeffect2 EF_FLOWERLEAF;
    			close;
    		case 2:
    			setarray @qe[3], getlook(LOOK_HEAD_BOTTOM), getlook(LOOK_HEAD_TOP), getlook(LOOK_HEAD_MID), getlook(LOOK_ROBE), 1;
    			if ((@qe[1] & 1) || (@qe[1] & 4096)) changelook LOOK_HEAD_BOTTOM, @qe[2];
    			else if ((@qe[1] & 256) || (@qe[1] & 1024)) changelook LOOK_HEAD_TOP, @qe[2];
    			else if ((@qe[1] & 512) || (@qe[1] & 2048)) changelook LOOK_HEAD_MID, @qe[2];
    			else if ((@qe[1] & 4) || (@qe[1] & 8192)) changelook LOOK_ROBE, @qe[2];
    			break;
    		case 3:
    			close;
    		}
    	}
    
    OnEnd:
    	if (@qe[7]) {
    		changelook LOOK_HEAD_BOTTOM, @qe[3];
    		changelook LOOK_HEAD_TOP, @qe[4];
    		changelook LOOK_HEAD_MID, @qe[5];
    		changelook LOOK_ROBE, @qe[6];
    	}
    	deletearray @qe[0],8;
    	end;
    
    function Add {
    	if (getitemname(getarg(1)) == "null") {
    		debugmes "Quest reward #"+getarg(1)+" invalid (skipped).";
    		return;
    	}
    	setarray .@j[0],getarg(2),getarg(3),getarg(4);
    	for(set .@i,5; .@i<getargcount(); set .@i,.@i+2) {
    		if (getitemname(getarg(.@i)) == "null") {
    			debugmes "Quest requirement #"+getarg(.@i)+" invalid (skipped).";
    			return;
    		} else
    			setarray .@j[.@i-2],getarg(.@i),getarg(.@i+1);
    	}
    	copyarray getd(".q_"+getarg(0)+"_"+getarg(1)+"[0]"),.@j[0],getarraysize(.@j);
    	npcshopadditem "qshop"+getarg(0),getarg(1),((.ShowZeny)?getarg(3):0);
    	return;
    }
    
    function Chk {
    	if (getarg(0) < getarg(1)) {
    		set @qe[0],1;
    		return "^FF0000";
    	} else
    		return "^00FF00";
    }
    
    function Slot {
    	set .@s$,getitemname(getarg(0));
    	switch(.ShowSlot) {
    		case 1: if (!getitemslots(getarg(0))) return .@s$;
    		case 2: if (getiteminfo(getarg(0),2) == 4 || getiteminfo(getarg(0),2) == 5) return .@s$+" ["+getitemslots(getarg(0))+"]";
    		default: return .@s$;
    	}
    }
    }
    
    function	script	qshop	{
    	deletearray @i[0],getarraysize(@i);
    	for(set .@i,0; .@i<getargcount(); set .@i,.@i+1)
    		set @i[.@i],getarg(.@i);
    	doevent "quest_shop::OnMenu";
    	end;
    }
    
    
    // Dummy shop data -- copy as needed.
    //============================================================
    -	shop	qshop1	-1,909:-1
    -	shop	qshop2	-1,909:-1
    -	shop	qshop3	-1,909:-1
    -	shop	qshop4	-1,909:-1
    -	shop	qshop5	-1,909:-1
    
  7. @ajaxtrix

    it's because you enabled these  commands to your players to use it.

    by default the script will work just fine if you had not enabled these command which lead to exploit npc scripts.

    either you remove the command...or you have to disable the command...

     

    @Brynner

    Pet Egg required the char-server to save the data each time you gained 1 pet egg.

    at any normal circumstance, the getitem cant really work for Pet egg if you are giving out multiple pet egg, this is because char-server need time to save the data.

    temporary you can fix it by using this

    for(set @i,0; @i < getarraysize( @bought_nameid ); set @i,@i+1){
    	getitem @bought_nameid[@i],@bought_quantity[@i];
    	sleep2 1;   // add this.  increase to longer if needed.
    }
    

    add a sleep2 right after the getitem command.

     

     

     

    ***ermmm..probably time to do some update on the script to 7.0 version...***

    I  now removed the @refresh from normal characters.

    I am using your latest limited items script.

    You can bypass it by just entering the "limted map", then try to not move for 5mins-6mins.. then click close..

    You can now successfully smuggle the "limited items"

  8. Requesting an item script combo-restrict.

     

    Example:

     

    snglasses[1]+chewing gum = lets call this, CHEW SET.

     

    If you're wearing a CHEW SET you cannot wear a buckler of deaf [gtb card].



    Bump.

  9. I can bypass Limited items 4.0

     

    Reproduce:

     Eg: the limited item ban is GTB card inside a shield.

     

    1. Enter the limited map.

    2. Wait for 3mins.

    3. Use @refresh at alt+m 

    4. Try switching/spam it.

    5. successfully smuggled GTB card inside the limited area.

    
    
    
    -	script	Limited Items	-1,{
    function AddLimitedItem;
    
    OnInit:
    // GM Level to Bypass
    .gm_level = 99;
    // Check Every X Seconds
    .check_delay = 5;
    // Apply on Which Maps and what Zone No.
    setarray .map$, // "<mapname>","<zone number>",
    	"guild_vs1","0",
    	"aldeg_cas02","0",
    	"prtg_cas02","0",
    	"aldeg_cas04","0",
    	"gefg_cas02","0",
    	"payg_cas04","0",
    	"cell_game","1",
    	"guild_vs3","1";
    	
    // Initialize Mapflags
    set .map_size,getarraysize( .map$ );
    for( .@i = 0; .@i < .map_size; .@i += 2 ){
    	setmapflag .map$[.@i],mf_loadevent;
    	set .map_menu$,.map_menu$ + "^0055FF[Zone "+.map$[.@i+1]+"]^000000" + .map$[.@i] +":";
    }
    
    // Zone List + Limited Items for each zone. (max 63 item per zone)
    // AddLimitedItem( <zone>,<item>,<limit>,..,<item>,<limit> );
    AddLimitedItem( 0,25279,0,25327,0,25328,0,25330,0,25331,0,25332,0,25333,0 );
    AddLimitedItem( 1,25076,0,25077,0,25079,0,610,0,4128,0,25279,0,25327,0,25328,0,25330,0,25331,0,25332,0,25333,0);
    
    end;
    
    OnTalk:
    	mes "Please select a Map.";
    	next;
    	.@i = select( .map_menu$ ) - 1;
    	.@zone = atoi( .map$[ 1 + ( .@i * 2 ) ] );
    	mes "[Zone : "+.@zone+"] "+.map$[ .@i * 2 ];
    
    	copyarray .@limit_item[0],getd( ".zone_"+.@zone+"[0]" ),getarraysize( getd( ".zone_"+.@zone ) );
    	.@size = getarraysize( .@limit_item );
    	
    	if( !.@size ){
    		debugmes "Invalid Zone : "+.@zone;
    	}else{
    		.@i = 0;
    		while( .@i < .@size ){
    			.@itemid = .@limit_item[.@i];
    			.@limit = .@limit_item[ .@i+1 ];
    			.@mode = ( ( .@limit < 0 )? -1:1 );
    			.@limit = .@limit * .@mode;
    			
    			.@eq = getiteminfo( .@itemid,2 );
    			.@name$ = getitemname( .@itemid ) + ( ( .@eq == 5 )?" ["+getitemslots( .@itemid )+"]":"" );
    			if( .@mode < 0 ){
    				mes "^FF0000[Min. "+( .@limit )+"] ^777777"+.@name$+"^000000";
    			}else if( .@mode > 0 ){
    				mes "^FF0000["+(( .@limit > 0 )?"Max. "+.@limit:"Disabled" )+"] ^777777"+.@name$+"^000000";
    			}
    			.@i += 2;
    		}
    	}
    	close;
    
    function	AddLimitedItem	{
    	.@arg_count = getargcount();
    	.@zone = getarg(0);
    	
    	.@i =1;
    	while( .@i < .@arg_count && .@size <= 127 ){
    		.@itemid = getarg( .@i );
    		if( getitemname( .@itemid ) != "null" ){
    			setarray .@limit_item[ .@size ],.@itemid,getarg( .@i+1 );
    			.@size += 2;
    			.@i++;
    		}
    		.@i++;
    	}
    	if( .@size ){
    		copyarray getd(".zone_"+.@zone+"[0]"),.@limit_item[0],.@size;
    		// debugmes "Zone "+.@zone+" : Total "+( .@size/2 )+" items";
    	}
    	return;
    }
    
    OnPCLoadMapEvent:
    if( getgmlevel() < .gm_level ){
    	.@map$ = strcharinfo(3);
    	while( .@map < .map_size && .map$[.@map] != .@map$ ) .@map++;
    	dispbottom "Map "+.@map;
    	if( .@map < .map_size ){
    		.@map++;
    		.@zone = atoi( .map$[.@map] );
    		.@size = getarraysize( getd( ".zone_"+.@zone ) );
    		while( strcharinfo(3) == .@map$ && .@size ){
    			.@i = callsub( OnCheckItem,.@zone );
    			if( .@i < 0 ) end;
    			else if( .@i ){
    				mes " ";
    				message strcharinfo(0),"Limited Items Exceeded.";
    				mes "Please ensure all the Items above meet the requirements as stated above.";
    				close2;
    				warp "SavePoint",0,0;
    				end;
    			}
    			sleep2 ( .check_delay * 1000 );
    		}
    	}
    }
    end;
    	
    OnCheckItem:
    	.@zone = getarg(0);
    	copyarray .@limit_item[0],getd( ".zone_"+.@zone+"[0]" ),getarraysize( getd( ".zone_"+.@zone ) );
    	.@size = getarraysize( .@limit_item );
    
    	if( !.@size ){
    		debugmes "Invalid Zone : "+.@zone;
    		return -1;
    	}
    	while( .@i < .@size ){
    		.@itemid = .@limit_item[.@i];
    		.@limit = .@limit_item[ .@i+1 ];
    		.@mode = ( ( .@limit < 0 )? -1:1 );
    		.@limit = .@limit * .@mode;
    		
    		.@count = countitem( .@itemid ) );
    		if( getiteminfo( .@itemid,2 ) == IT_CARD )
    			.@count += isequippedcnt( .@itemid );
    			
    		.@eq = getiteminfo( .@itemid,2 );
    		.@name$ = getitemname( .@itemid ) + ( ( .@eq == 5 )?" ["+getitemslots( .@itemid )+"]":"" );
    		if( .@mode < 0 && .@count < .@limit ){
    			mes "^FF0000[Min. "+( .@limit )+"] ^777777"+.@name$+"^000000";
    			.@fail++;
    		}else if( .@mode > 0 && .@limit >= 0 && .@count > .@limit ){
    			mes "^FF0000["+(( .@limit > 0 )?"Max. "+.@limit:"Disabled" )+"] ^777777"+.@name$+"^000000";
    			.@fail++;
    		}
    		.@i += 2;
    	}
    return .@fail;
    }
    
    // npc that allow to view the map + zone info
    prontera,155,181,5	script	Sample#view	757,{
    	doevent "Limited Items::OnTalk";
    }
    
    

     

  10. Someone please help me to edit this script:

     

    If after 55 mins, if mushrooms are not killed, it will automatically @killmonster2 and then will start again every hour.

     

    Thank you!!!

     

    //===== rAthena Script ======================================= 
    //= Find the Mushroom
    //===== By: ================================================== 
    //= Mysterious
    //===== Current Version: ===================================== 
    //= 3.6a
    //===== Compatible With: ===================================== 
    //= rAthena SVN
    //===== Description: ========================================= 
    //= Find the Mushroom - random amount of Mushrooms spawns in random maps.
    //= Players need to find these mushrooms and kill them to gain prizes!
    //===== Additional Comments: =================================
    //= 3.0 Fully Functional with Rewritten script. [Mysterious]
    //= 3.6a Slightly edited. [Euphy]
    //============================================================ 
    
    prontera,142,228,6	script	Find the Mushroom	1084,{
    	mes "[ Find The Mushroom ]";
    	if (!.Status)
    		mes "There is no event at the moment!";
    	else {
    		mes "There are "+.Spawn+" Mushrooms left in "+.Map$+"!";
    		mes "Find and kill the mushrooms to gain "+getitemname(.Prize)+"!";
    	}
    	if (.Status || getgmlevel() < .GM) close;
    	mes "Start the event?";
    	next;
    	if(select("- No:- Yes") == 1) close;
    	donpcevent strnpcinfo(0)+"::OnMinute60";
    	mes "[ Find The Mushroom ]";
    	mes "Event started!";
    	close;
    
    OnInit:
    	set .Prize,7505;	// Reward item ID
    	set .Amount,1;	// Reward item amount
    	set .GM,60;	// GM level required to access NPC
    	setarray .Maps$[0],"izlude","prontera","geffen","aldebaran","alberta","yuno","payon"; // Possible maps
    	end;
    
    OnMinute60:	// Start time ( 6 every hour)
    	if (.Status) end;
    	set .Status,1;
    	set .Spawn,rand(20,20);	// How many Mushrooms should spawn?
    	set .Map$,.Maps$[rand(getarraysize(.Maps$))];
    	killmonster .Map$,"All";
    	monster .Map$,0,0,"Please don't kill me!",1084,.Spawn,strnpcinfo(0)+"::OnMobKilled";
    	announce "Find the Mushroom : Total of "+.Spawn+" Mushrooms have been spawned in "+.Map$+"!",0;
    	sleep 2500;
    	announce "Find the Mushroom : Every Mushroom you kill will give you "+getitemname(.Prize)+"!",0;
    	end;
    
    OnMobKilled:
    	set .Spawn, .Spawn - 1;
    	getitem .Prize, .Amount;
    	if (.Spawn) announce "[ "+strcharinfo(0)+" ] has killed a Mushroom. There are now "+.Spawn+" Mushroom(s) left.",bc_map;
    	else {
    		announce "The Find the Mushroom Event has ended. All the Mushrooms have been killed.",0;
    		set .Status,0;
    	}
    	end;
    }
    
    

     

  11. Request for 'Item checker/scanner/trace'

     

    Features:

    • NPC, will ask you for an item number. 
    • Traces an item for each character.
    • NPC will scan ALL characters that has that item number.
    • Includes ( Inventory, storage, cart ) .
    • Only GMs with this level or more can use the NPC.

    Example:

     

    NPC: "Hello GM __ " 

    NPC: Input item number.

     

    -- if no id number, close. [ no # or incorrect ]

    .....

     

    This is the list of players who has item 607:

    1. Player 1 Storage, Cart, Inventory, ( can also read a card inside a weapon/shield/armor/footgear/headgear/acce)

    2. Player 2 

    3, PLayer 3... so on...

     

     

    Thank you.

  12. Requesting for a script:

     

    case:

     

    A player cannot drop any items on specific map: prontera, alberta, yuno.

    With a char message saying: " You cannot drop items on this map"

     

    Only GMs with level 10+ can bypass this. Thanks!

  13. Requesting for an item restriction script:

     

    Case:

     

    I have a GTB card, it is compounded inside a shield.

     

    I want to restrict the GTB card/GTB compounded on a shield on a specific map.

    Is this possible? Thank you! More power rAthena!

×
×
  • Create New...