Jump to content
  • 0
Sign in to follow this  
kerbiii

@item npc

Question

requesst with @item npc

 

1. can only be used with gmlvl 4

 

2. with 30 logs (every @item made will be put into logs)

 

3. npc menu:

 

*reward item > Playername or Partyname > ItemID or Zeny > Amount > Announce the player and what item is given

*check reward logs

*delete item logs - can only be use by gmlvl 99

 

4. Only 30 items can be given until gmlvl 99 reset the logs then you can use the npc again

 

 

ty

Edited by kerbiii

Share this post


Link to post
Share on other sites

8 answers to this question

Recommended Posts

  • 0

/* ______________________________________________________________| || rAthena Script || || Rewards NPC || By: || Viole || || Current Version || 1.6 || || Description: || NPC which you can assign a reward || to a 'specific' player and set || the quantity of the reward to be || given. || || Changelog: || Rewards NPC 1.0 Items recognized are only from item_db || Rewards NPC 1.1 Items recognized from item_db to item_db2 || Rewards NPC 1.1 Prevent null from typing 0 in item & amount || Rewards NPC 1.1 Main: Can put many players now to give item || Rewards NPC 1.2 Fixed Cancel the process option || Rewards NPC 1.2 Added Delete a process or all process option|| Rewards NPC 1.3 Added Show Current Processes option || Rewards NPC 1.4 Added Party Option in Assign Rewards || Rewards NPC 1.4 Show Current Process (Player or Party) || Rewards NPC 1.4 Added Delete Option for Party || Rewards NPC 1.5 Added Guild Option in Assign Rewards || Rewards NPC 1.5 Show Current Process (Player/Party/Guild) || Rewards NPC 1.5 Added Delete Option for Guild || Rewards NPC 1.5 Announce. GM adds a process for Party/Guild || Rewards NPC 1.6 Added View Logs (Credits: Euphy) || (Requested: bVersatile) || || Note: || Players can view the logs too, or it's your choice to || remove it, or not. Feel free to edit things inside. || || If you added 2 items to a 'same' player/guild/party || Only the first one is recognized. || || If you delete 1 player/party/guild process, all its || player/party/guild's process will be deleted. || || If some processes were deleted, and if you add a new process,|| all those previous slots will be filled up. || || About the query sql's, I sucked at query sql, and got a prob || when adding only 1 sql, becuz of nulls..(I'll learn more) ||______________________________________________________________|*/-	script	Rewards#101	-1,{	set .@n$, "^FF0000[Rewards NPC]^000000";	set .gmlvl, 4;	if (getgroupid() >= .gmlvl)	{	admin_only:		mes .@n$;			mes "Hello, GM "+strcharinfo(0)+"!";		mes "What do you want to do?";		next;		switch(select("Assign Reward:Show Current Processes:Delete Process:View Logs"))		{		case 1:			next;			mes .@n$;			mes"Choose what category you want to give the reward.";			next;			switch(select("To a Player:To a Party:To a Guild"))			{			case 1:				next;				mes .@n$;				mes "To whom do you wanna give the reward?";				input @playername$;				query_sql "SELECT `char_id` FROM `char` WHERE `name` = '"+escape_sql(@playername$)+"'",.@charid;						if (!.@charid) {next; mes .@n$; mes "The name is invalid."; next; goto admin_only; }							else set .@charid,0;				next;				mes .@n$;				mes "What will be the reward item?";				mes "Please, input the Item ID #";				input @inputrewarditem;				if (getitemname(@inputrewarditem) == "null" || getitemname(@inputrewarditem) == "") {next; mes .@n$; mes "The item doesn't exists in the database."; next; goto admin_only; }				set @rewarditem, @inputrewarditem;				next;				mes .@n$;				mes "How many "+getitemname(@rewarditem)+" will be given to "+@playername$+"?";				input @rewardamount;				if(@rewardamount <= 0) {next; mes .@n$; mes "Please input a number greater than 0"; next; goto admin_only; }				next;				mes .@n$;				mes "So, player "+@playername$+" will have";				mes ""+@rewardamount+" "+getitemname(@rewarditem)+"s. Great~!";				next;				message @playername$,"Please claim your rewards from the Rewards NPC! "+@rewardamount+" "+getitemname(@rewarditem)+"s";				query_sql "INSERT INTO `rewardplayernpc` (`playername`, `reward_id`, `reward_amount`) VALUES ('"+@playername$+"', "+@rewarditem+", "+@rewardamount+")";				setarray $giverlog1$[getarraysize($giverlog1$)],strcharinfo(0);				setarray $receiverlog1$[getarraysize($receiverlog1$)],@playername$;				setarray $itemlog1[getarraysize($itemlog1)],@rewarditem;				setarray $amountlog1[getarraysize($amountlog1)],@rewardamount;				set @playername$, "";				close2;				end;			case 2:				next;				mes .@n$;				mes "Please input the party name..";				input @partyname$;				query_sql "SELECT `party_id` FROM `party` WHERE `name` = '"+escape_sql(@partyname$)+"'",.@partyid;					if (!.@partyid) {next; mes .@n$; mes "The party name is invalid."; next; goto admin_only; }						else set .@partyid,0;				next;				mes .@n$;				mes "What will be the reward item?";				mes "Please, input the Item ID #";				input @inputpartyrewarditem;				if (getitemname(@inputpartyrewarditem) == "null" || getitemname(@inputpartyrewarditem) == "") {next; mes .@n$; mes "The item doesn't exists in the database."; next; goto admin_only; }				set @partyrewarditem, @inputpartyrewarditem;				next;				mes .@n$;				mes "How many "+getitemname(@partyrewarditem)+" will be given to party "+@partyname$+"?";				input @partyrewardamount;				if(@partyrewardamount <= 0) {next; mes .@n$; mes "Please input a number greater than 0"; next; goto admin_only; }				next;				mes .@n$;				mes "So, party "+@partyname$+" will have";				mes ""+@partyrewardamount+" "+getitemname(@partyrewarditem)+"s. Great~!";				next;				announce "Party leader of the party ["+@partyname$+"], please claim your "+@partyrewardamount+" "+getitemname(@partyrewarditem)+"s from the Rewards NPC! ",0,0xDBA901;				query_sql "INSERT INTO `rewardpartynpc` (`partyname`, `reward_id`, `reward_amount`) VALUES ('"+@partyname$+"', "+@partyrewarditem+", "+@partyrewardamount+")";				setarray $giverlog2$[getarraysize($giverlog2$)],strcharinfo(0);				setarray $receiverlog2$[getarraysize($receiverlog2$)],@partyname$;				setarray $itemlog2[getarraysize($itemlog2)],@partyrewarditem;				setarray $amountlog2[getarraysize($amountlog2)],@partyrewardamount;				set @partyname$, "";				close2;				end;			case 3:				next;				mes .@n$;				mes "Please input the guild name..";				input @guildname$;				query_sql "SELECT `guild_id` FROM `guild` WHERE `name` = '"+escape_sql(@guildname$)+"'",.@guildid;						if (!.@guildid) {next; mes .@n$; mes "The guild name is invalid."; next; goto admin_only; }							else set .@guildid,0;				next;				mes .@n$;				mes "What will be the reward item?";				mes "Please, input the Item ID #";				input @inputguildrewarditem;				if (getitemname(@inputguildrewarditem) == "null" || getitemname(@inputguildrewarditem) == "") {next; mes .@n$; mes "The item doesn't exists in the database."; next; goto admin_only; }				set @guildrewarditem, @inputguildrewarditem;				next;				mes .@n$;				mes "How many "+getitemname(@guildrewarditem)+" will be given to the guild "+@guildname$+"?";				input @guildrewardamount;				if(@guildrewardamount <= 0) {next; mes .@n$; mes "Please input a number greater than 0"; next; goto admin_only; }				next;				mes .@n$;				mes "So, guild "+@guildname$+" will have";				mes ""+@guildrewardamount+" "+getitemname(@guildrewarditem)+"s. Great~!";				next;				announce "GuildMaster of the Guild ["+@guildname$+"], please claim your "+@guildrewardamount+" "+getitemname(@guildrewarditem)+"s from the Rewards NPC!",0,0xDBA901;				query_sql "INSERT INTO `rewardguildnpc` (`guildname`, `reward_id`, `reward_amount`) VALUES ('"+@guildname$+"', "+@guildrewarditem+", "+@guildrewardamount+")";				setarray $giverlog3$[getarraysize($giverlog3$)],strcharinfo(0);				setarray $receiverlog3$[getarraysize($receiverlog3$)],@guildname$;				setarray $itemlog3[getarraysize($itemlog3)],@guildrewarditem;				setarray $amountlog3[getarraysize($amountlog3)],@guildrewardamount;				setarray $numberlog3[getarraysize($numberlog3)],1;				set @guildname$, "";				close2;				end;			}		case 2:			show_process:			next;			mes .@n$;			mes "Choose from what category you would like to view current processes.";			next;			switch(select("Player:Party:Guild"))			{			case 1:				next;				mes "^FF0000[Current Processes]^000000";				mes "••••••••••••••••••••••••••••••••";				query_sql "SELECT `playername`, `reward_id`, `reward_amount` FROM `rewardplayernpc`", .@show_name$, .@show_item, .@show_amount;				for(set @i, 0; @i < getarraysize(.@show_name$); set @i, @i+1)				{					mes "To: ^FF0000Player^000000 ^0000FF"+.@show_name$[@i]+"^000000";					mes "Reward: "+.@show_amount[@i]+" "+getitemname(.@show_item[@i])+"s";					mes "••••••••••••••••••••••••••••••••";				}				goto show_process;							case 2:				next;				mes "^FF0000[Current Processes]^000000";				mes "••••••••••••••••••••••••••••••••";				query_sql "SELECT `partyname`, `reward_id`, `reward_amount` FROM `rewardpartynpc`", .@partyshow_name$, .@partyshow_item, .@partyshow_amount;				for(set @i, 0; @i < getarraysize(.@partyshow_name$); set @i, @i+1)				{					mes "To: ^088A4BParty^000000 ^0000FF"+.@partyshow_name$[@i]+"^000000";					mes "Reward: "+.@partyshow_amount[@i]+" "+getitemname(.@partyshow_item[@i])+"s";					mes "••••••••••••••••••••••••••••••••";				}				goto show_process;			case 3:				next;				mes "^FF0000[Current Processes]^000000";				mes "••••••••••••••••••••••••••••••••";				query_sql "SELECT `guildname`, `reward_id`, `reward_amount` FROM `rewardguildnpc`", .@guildshow_name$, .@guildshow_item, .@guildshow_amount;				for(set @i, 0; @i < getarraysize(.@guildshow_name$); set @i, @i+1)				{					mes "To: ^B18904Guild^000000 ^0000FF"+.@guildshow_name$[@i]+"^000000";					mes "Reward: "+.@guildshow_amount[@i]+" "+getitemname(.@guildshow_item[@i])+"s";					mes "••••••••••••••••••••••••••••••••";				}				goto show_process;			}		case 3:			next;			mes .@n$;			mes "Do you want to delete one process only or all processes?";			switch(select("Delete one process only:Delete all processes:Leave it as it is"))			{			case 1:				next;				mes .@n$;				mes "Please choose from what category you would like to delete a process.";				next;				switch(select("Player:Party:Guild"))				{				case 1:					next;					mes .@n$;					mes "Please input the player name you want to delete the process.";					input @deletename$;					next;					query_sql "SELECT `playername`, `reward_id`, `reward_amount` FROM `rewardplayernpc`", .@delete_name$, .@delete_item, .@delete_amount;					for (set @i, 0; @i < getarraysize(.@delete_name$); set @i, @i+1)					{					if(@deletename$ == .@delete_name$[@i])						{						mes .@n$;						mes "Deleting....";						query_sql "DELETE FROM `rewardplayernpc` WHERE `playername`='"+@deletename$+"'";						next;						mes .@n$;						mes "Deleted unclaimed process!";						close;						}					}					goto R_Invalid;				case 2:					next;					mes .@n$;					mes "Please input the party name you want to delete the process.";					input @partydeletename$;					next;					query_sql "SELECT `partyname`, `reward_id`, `reward_amount` FROM `rewardpartynpc`", .@partydelete_name$, .@partydelete_item, .@partydelete_amount;					for (set @i, 0; @i < getarraysize(.@partydelete_name$); set @i, @i+1)					{					if(@partydeletename$ == .@partydelete_name$[@i])						{						mes .@n$;						mes "Deleting....";						query_sql "DELETE FROM `rewardpartynpc` WHERE `partyname`='"+@partydeletename$+"'";						next;						mes .@n$;						mes "Deleted unclaimed process!";						close;						}					}					goto R_Invalid;				case 3:					next;					mes .@n$;					mes "Please input the guild name you want to delete the process.";					input @guilddeletename$;					next;					query_sql "SELECT `guildname`, `reward_id`, `reward_amount` FROM `rewardguildnpc`", .@guilddelete_name$, .@guilddelete_item, .@guilddelete_amount;					for (set @i, 0; @i < getarraysize(.@guilddelete_name$); set @i, @i+1)					{					if(@guilddeletename$ == .@guilddelete_name$[@i])						{						mes .@n$;						mes "Deleting....";						query_sql "DELETE FROM `rewardguildnpc` WHERE `guildname`='"+@guilddeletename$+"'";						next;						mes .@n$;						mes "Deleted unclaimed process!";						close;						}					}					goto R_Invalid;				}			case 2:				next;				mes .@n$;				mes "Please input DELETE to delete all the unclaimed processes.";				input @deleteall$;					if(@deleteall$ == "DELETE")					{						next;						mes .@n$;						mes "Deleting....";						query_sql "DELETE FROM `rewardplayernpc`";						query_sql "DELETE FROM `rewardpartynpc`";						query_sql "DELETE FROM `rewardguildnpc`";						next;						mes .@n$;						mes "Deleted all unclaimed processes!";						close;					}					next;					mes .@n$;					mes "Next time, please input DELETE correctly!";					close;			case 3:				next;				mes .@n$;				mes "Nothing Changed!";				close2;				end;			}		case 4:		viewlogs:			next;			mes .@n$;			mes "Choose what category you want to view the logs!";			next;			switch(select("Player Logs:Party Logs:Guild Logs",				( getgmlevel() < .gmlvl )?"":"Delete Logs"))			{			case 1:				next;				mes .@n$;				mes "Current logs: ^008000" + (getarraysize($giverlog1$)) + "^000000";				mes "--------------------------------";				set .@i,0;				while (.@i < getarraysize($giverlog1$)) {						mes ""+.@i+". ^B041FFGM " + $giverlog1$[.@i] + "^000000 gave "+$amountlog1[.@i]+"x "+getitemname($itemlog1[.@i])+" to Player^55AAFF " + $receiverlog1$[.@i] + "^000000";						mes "--------------------------------";						set .@i, .@i+1; }				next;				goto viewlogs;			case 2:				next;				mes .@n$;				mes "Current logs: ^008000" + (getarraysize($giverlog2$)) + "^000000";				mes "--------------------------------";				set .@j,0;				while (.@j < getarraysize($giverlog2$)) {						mes ""+.@j+". ^B041FFGM " + $giverlog2$[.@j] + "^000000 gave "+$amountlog2[.@j]+"x "+getitemname($itemlog2[.@j])+" to Party^55AAFF " + $receiverlog2$[.@j] + "^000000";						mes "--------------------------------";						set .@j, .@j+1; }				next;				goto viewlogs;			case 3:				next;				mes .@n$;				mes "Current logs: ^008000" + (getarraysize($giverlog3$)) + "^000000";				mes "--------------------------------";				set .@k,0;				while (.@k < getarraysize($giverlog3$)) {						mes ""+.@k+". ^B041FFGM " + $giverlog3$[.@k] + "^000000 gave "+$amountlog3[.@k]+"x "+getitemname($itemlog3[.@k])+" to Guild^55AAFF " + $receiverlog3$[.@k] + "^000000";						mes "--------------------------------";						set .@k, .@k+1; }				next;				goto viewlogs;			case 4:				next;				mes .@n$;				mes "^FF0000This action cannot be undone.^000000";				mes "Are you sure?";				mes " ";				if (select("Yes:No") == 2) { mes "Request cancelled."; next; goto Log_Menu; }				deletearray $giverlog1$[0],getarraysize($giverlog1$); deletearray $receiverlog1$[0],getarraysize($receiverlog1$);				deletearray $itemlog1[0],getarraysize($itemlog1); deletearray $amountlog1[0],getarraysize($amountlog1);				deletearray $giverlog2$[0],getarraysize($giverlog2$); deletearray $receiverlog2$[0],getarraysize($receiverlog2$);				deletearray $itemlog2[0],getarraysize($itemlog2); deletearray $amountlog2[0],getarraysize($amountlog2);				deletearray $giverlog3$[0],getarraysize($giverlog3$); deletearray $receiverlog3$[0],getarraysize($receiverlog3$);				deletearray $itemlog3[0],getarraysize($itemlog3); deletearray $amountlog3[0],getarraysize($amountlog3);				next;				mes .@n$;				mes "Logs cleared.";				next;				goto admin_only;			}		}	}	mes .@n$;	mes "Hello, "+strcharinfo(0)+"!";	next;	switch(Select("Claim Reward:View Logs:Leave"))	{	case 1:		mes .@n$;		mes "From what category you want to claim your reward?";		next;		switch(select("Player:Party:Guild"))		{		case 1:			mes .@n$;			mes "Please enter your Name:";			input @winnername$;			if (@winnername$!=strcharinfo(0)){next; mes .@n$; mes "You are a fake!"; close; end; }			next;			query_sql "SELECT `playername`, `reward_id`, `reward_amount` FROM `rewardplayernpc`", .@available_name$, .@available_item, .@available_amount;			for (set @i, 0; @i < getarraysize(.@available_name$); set @i, @i+1)			{			if(@winnername$ == .@available_name$[@i])				{				mes .@n$;				mes "You get ^0000FF" + getitemname(.@available_item[@i]) + " - " + .@available_amount[@i] + " ea.^000000";				query_sql "DELETE FROM `rewardplayernpc` WHERE `playername`='"+@winnername$+"'";				getitem .@available_item[@i],.@available_amount[@i];				announce "Player "+.@available_name$[@i]+" has claimed "+.@available_amount[@i]+" "+getitemname(.@available_item[@i])+"s from the Rewards NPC!",0,0xDBA901;				close;				}			}			goto R_Noreward;		case 2:			if( !getcharid(1) || getcharid(3) != getpartyleader( getcharid(1),1 ) ){next; mes .@n$; mes "Only party leaders are allowed here!"; close; end; }			mes .@n$;			mes "Please enter your party name:";			input @partywinnername$;			if (@partywinnername$!=strcharinfo(1)){next; mes .@n$; mes "You are a fake!"; close; end; }			next;			query_sql "SELECT `partyname`, `reward_id`, `reward_amount` FROM `rewardpartynpc`", .@partyavailable_name$, .@partyavailable_item, .@partyavailable_amount;			for (set @i, 0; @i < getarraysize(.@partyavailable_name$); set @i, @i+1)			{			if(@partywinnername$ == .@partyavailable_name$[@i])				{				mes .@n$;				mes "You get ^0000FF" + getitemname(.@partyavailable_item[@i]) + " - " + .@partyavailable_amount[@i] + " ea.^000000";				query_sql "DELETE FROM `rewardpartynpc` WHERE `partyname`='"+@partywinnername$+"'";				announce "Party "+.@partyavailable_name$[@i]+" has claimed "+.@partyavailable_amount[@i]+" "+getitemname(.@partyavailable_item[@i])+"s from the Rewards NPC!",0,0xDBA901;				getitem .@partyavailable_item[@i],.@partyavailable_amount[@i];				close;				}			}			goto R_Noreward;		case 3:			set @guildid, getcharid(2);			if( !getcharid(2) || strcharinfo(0) != getguildmaster(@guildid) ){next; mes .@n$; mes "Only guild masters are allowed here!"; close; end; }			mes .@n$;			mes "Please enter your guild name:";			input @guildwinnername$;			if (@guildwinnername$!=strcharinfo(2)){next; mes .@n$; mes "You are a fake!"; close; end; }			next;			query_sql "SELECT `guildname`, `reward_id`, `reward_amount` FROM `rewardguildnpc`", .@guildavailable_name$, .@guildavailable_item, .@guildavailable_amount;			for (set @i, 0; @i < getarraysize(.@guildavailable_name$); set @i, @i+1)			{			if(@guildwinnername$ == .@guildavailable_name$[@i])				{				mes .@n$;				mes "You get ^0000FF" + getitemname(.@guildavailable_item[@i]) + " - " + .@guildavailable_amount[@i] + " ea.^000000";				query_sql "DELETE FROM `rewardguildnpc` WHERE `guildname`='"+@guildwinnername$+"'";				announce "Guild "+.@guildavailable_name$[@i]+" has claimed "+.@guildavailable_amount[@i]+" "+getitemname(.@guildavailable_item[@i])+"s from the Rewards NPC!",0,0xDBA901;				getitem .@guildavailable_item[@i],.@guildavailable_amount[@i];				close;				}			}			goto R_Noreward;		}	case 2:		next;		goto viewlogs;	case 3:		mes .@n$;		mes "See yah.";		close;	}	R_Invalid:	mes "^FF0000[Rewards NPC]^000000";	mes "Invalid. Does not exists in the logs!";	close;	R_Noreward:	mes "^FF0000[Rewards NPC]^000000";	mes "No rewards at the meantime";	mes "Get out!";	close;OnInit:	query_sql "CREATE TABLE IF NOT EXISTS `rewardplayernpc` (`playername` TINYTEXT NOT NULL, `reward_id` INT NOT NULL, `reward_amount` INT NOT NULL, INDEX `playername` (`playername`(32)) ) ENGINE=MyISAM";	query_sql "CREATE TABLE IF NOT EXISTS `rewardpartynpc` (`partyname` TINYTEXT NOT NULL, `reward_id` INT NOT NULL, `reward_amount` INT NOT NULL, INDEX `partyname` (`partyname`(32)) ) ENGINE=MyISAM";	query_sql "CREATE TABLE IF NOT EXISTS `rewardguildnpc` (`guildname` TINYTEXT NOT NULL, `reward_id` INT NOT NULL, `reward_amount` INT NOT NULL, INDEX `guildname` (`guildname`(32)) ) ENGINE=MyISAM";}/* Add npc's here (duplicate) ciao */prontera,136,170,5	duplicate(Rewards#101)	Rewards NPC	566			

Share this post


Link to post
Share on other sites
  • 0
/* ______________________________________________________________  |                                                              |  | rAthena Script                                               |  |                                                              |  | Rewards NPC                                                  |  | By:                                                          |  | Viole                                                        |  |                                                              |  | Current Version                                              |  | 1.6                                                          |  |                                                              |  | Description:                                                 |  | NPC which you can assign a reward                            |  | to a 'specific' player and set                               |  | the quantity of the reward to be                             |  | given.                                                       |  |                                                              |    | Changelog:                                                   |  | Rewards NPC 1.0  Items recognized are only from item_db      |  | Rewards NPC 1.1  Items recognized from item_db to item_db2   |  | Rewards NPC 1.1  Prevent null from typing 0 in item & amount |  | Rewards NPC 1.1  Main: Can put many players now to give item |  | Rewards NPC 1.2  Fixed Cancel the process option             |  | Rewards NPC 1.2  Added Delete a process or all process option|  | Rewards NPC 1.3  Added Show Current Processes option         |  | Rewards NPC 1.4  Added Party Option in Assign Rewards        |  | Rewards NPC 1.4  Show Current Process (Player or Party)      |  | Rewards NPC 1.4  Added Delete Option for Party               |  | Rewards NPC 1.5  Added Guild Option in Assign Rewards        |  | Rewards NPC 1.5  Show Current Process (Player/Party/Guild)   |  | Rewards NPC 1.5  Added Delete Option for Guild               |  | Rewards NPC 1.5  Announce. GM adds a process for Party/Guild |  | Rewards NPC 1.6  Added View Logs (Credits: Euphy)            |  |                                  (Requested: bVersatile)     |  |                                                              |  | Note:                                                        |  | Players can view the logs too, or it's your choice to        |  | remove it, or not. Feel free to edit things inside.          |  |                                                              |  | If you added 2 items to a 'same' player/guild/party          |  | Only the first one is recognized.                            |  |                                                              |  | If you delete 1 player/party/guild process, all its          |  | player/party/guild's process will be deleted.                |  |                                                              |  | If some processes were deleted, and if you add a new process,|  | all those previous slots will be filled up.                  |  |                                                              |  | About the query sql's, I sucked at query sql, and got a prob |  | when adding only 1 sql, becuz of nulls..(I'll learn more)    |  |______________________________________________________________|*/  -	script	Rewards#101	-1,{	set .@n$, "^FF0000[Rewards NPC]^000000";	set .gmlvl, 40;	if (getgmlevel() >= .gmlvl)	{	admin_only:		mes .@n$;			mes "Hello, GM "+strcharinfo(0)+"!";		mes "What do you want to do?";		next;		switch(select("Assign Reward:Show Current Processes:Delete Process:View Logs"))		{		case 1:			next;			mes .@n$;			mes"Choose what category you want to give the reward.";			next;			switch(select("To a Player:To a Party:To a Guild"))			{			case 1:				next;				mes .@n$;				mes "To whom do you wanna give the reward?";				input @playername$;				query_sql "SELECT `char_id` FROM `char` WHERE `name` = '"+escape_sql(@playername$)+"'",.@charid;						if (!.@charid) {next; mes .@n$; mes "The name is invalid."; next; goto admin_only; }							else set .@charid,0;				next;				mes .@n$;				mes "What will be the reward item?";				mes "Please, input the Item ID #";				input @inputrewarditem;				if (getitemname(@inputrewarditem) == "null" || getitemname(@inputrewarditem) == "") {next; mes .@n$; mes "The item doesn't exists in the database."; next; goto admin_only; }				set @rewarditem, @inputrewarditem;				next;				mes .@n$;				mes "How many "+getitemname(@rewarditem)+" will be given to "+@playername$+"?";				input @rewardamount;				if(@rewardamount <= 0) {next; mes .@n$; mes "Please input a number greater than 0"; next; goto admin_only; }				next;				mes .@n$;				mes "So, player "+@playername$+" will have";				mes ""+@rewardamount+" "+getitemname(@rewarditem)+"s. Great~!";				next;				message @playername$,"Please claim your rewards from the Rewards NPC! "+@rewardamount+" "+getitemname(@rewarditem)+"s";				query_sql "INSERT INTO `rewardplayernpc` (`playername`, `reward_id`, `reward_amount`) VALUES ('"+@playername$+"', "+@rewarditem+", "+@rewardamount+")";				setarray $giverlog1$[getarraysize($giverlog1$)],strcharinfo(0);				setarray $receiverlog1$[getarraysize($receiverlog1$)],@playername$;				setarray $itemlog1[getarraysize($itemlog1)],@rewarditem;				setarray $amountlog1[getarraysize($amountlog1)],@rewardamount;				set @playername$, "";				close2;				end;			case 2:				next;				mes .@n$;				mes "Please input the party name..";				input @partyname$;				query_sql "SELECT `party_id` FROM `party` WHERE `name` = '"+escape_sql(@partyname$)+"'",.@partyid;					if (!.@partyid) {next; mes .@n$; mes "The party name is invalid."; next; goto admin_only; }						else set .@partyid,0;				next;				mes .@n$;				mes "What will be the reward item?";				mes "Please, input the Item ID #";				input @inputpartyrewarditem;				if (getitemname(@inputpartyrewarditem) == "null" || getitemname(@inputpartyrewarditem) == "") {next; mes .@n$; mes "The item doesn't exists in the database."; next; goto admin_only; }				set @partyrewarditem, @inputpartyrewarditem;				next;				mes .@n$;				mes "How many "+getitemname(@partyrewarditem)+" will be given to party "+@partyname$+"?";				input @partyrewardamount;				if(@partyrewardamount <= 0) {next; mes .@n$; mes "Please input a number greater than 0"; next; goto admin_only; }				next;				mes .@n$;				mes "So, party "+@partyname$+" will have";				mes ""+@partyrewardamount+" "+getitemname(@partyrewarditem)+"s. Great~!";				next;				announce "Party leader of the party ["+@partyname$+"], please claim your "+@partyrewardamount+" "+getitemname(@partyrewarditem)+"s from the Rewards NPC! ",0,0xDBA901;				query_sql "INSERT INTO `rewardpartynpc` (`partyname`, `reward_id`, `reward_amount`) VALUES ('"+@partyname$+"', "+@partyrewarditem+", "+@partyrewardamount+")";				setarray $giverlog2$[getarraysize($giverlog2$)],strcharinfo(0);				setarray $receiverlog2$[getarraysize($receiverlog2$)],@partyname$;				setarray $itemlog2[getarraysize($itemlog2)],@partyrewarditem;				setarray $amountlog2[getarraysize($amountlog2)],@partyrewardamount;				set @partyname$, "";				close2;				end;			case 3:				next;				mes .@n$;				mes "Please input the guild name..";				input @guildname$;				query_sql "SELECT `guild_id` FROM `guild` WHERE `name` = '"+escape_sql(@guildname$)+"'",.@guildid;						if (!.@guildid) {next; mes .@n$; mes "The guild name is invalid."; next; goto admin_only; }							else set .@guildid,0;				next;				mes .@n$;				mes "What will be the reward item?";				mes "Please, input the Item ID #";				input @inputguildrewarditem;				if (getitemname(@inputguildrewarditem) == "null" || getitemname(@inputguildrewarditem) == "") {next; mes .@n$; mes "The item doesn't exists in the database."; next; goto admin_only; }				set @guildrewarditem, @inputguildrewarditem;				next;				mes .@n$;				mes "How many "+getitemname(@guildrewarditem)+" will be given to the guild "+@guildname$+"?";				input @guildrewardamount;				if(@guildrewardamount <= 0) {next; mes .@n$; mes "Please input a number greater than 0"; next; goto admin_only; }				next;				mes .@n$;				mes "So, guild "+@guildname$+" will have";				mes ""+@guildrewardamount+" "+getitemname(@guildrewarditem)+"s. Great~!";				next;				announce "GuildMaster of the Guild ["+@guildname$+"], please claim your "+@guildrewardamount+" "+getitemname(@guildrewarditem)+"s from the Rewards NPC!",0,0xDBA901;				query_sql "INSERT INTO `rewardguildnpc` (`guildname`, `reward_id`, `reward_amount`) VALUES ('"+@guildname$+"', "+@guildrewarditem+", "+@guildrewardamount+")";				setarray $giverlog3$[getarraysize($giverlog3$)],strcharinfo(0);				setarray $receiverlog3$[getarraysize($receiverlog3$)],@guildname$;				setarray $itemlog3[getarraysize($itemlog3)],@guildrewarditem;				setarray $amountlog3[getarraysize($amountlog3)],@guildrewardamount;				setarray $numberlog3[getarraysize($numberlog3)],1;				set @guildname$, "";				close2;				end;			}		case 2:			show_process:			next;			mes .@n$;			mes "Choose from what category you would like to view current processes.";			next;			switch(select("Player:Party:Guild"))			{			case 1:				next;				mes "^FF0000[Current Processes]^000000";				mes "••••••••••••••••••••••••••••••••";				query_sql "SELECT `playername`, `reward_id`, `reward_amount` FROM `rewardplayernpc`", .@show_name$, .@show_item, .@show_amount;				for(set @i, 0; @i < getarraysize(.@show_name$); set @i, @i+1)				{					mes "To: ^FF0000Player^000000 ^0000FF"+.@show_name$[@i]+"^000000";					mes "Reward: "+.@show_amount[@i]+" "+getitemname(.@show_item[@i])+"s";					mes "••••••••••••••••••••••••••••••••";				}				goto show_process;							case 2:				next;				mes "^FF0000[Current Processes]^000000";				mes "••••••••••••••••••••••••••••••••";				query_sql "SELECT `partyname`, `reward_id`, `reward_amount` FROM `rewardpartynpc`", .@partyshow_name$, .@partyshow_item, .@partyshow_amount;				for(set @i, 0; @i < getarraysize(.@partyshow_name$); set @i, @i+1)				{					mes "To: ^088A4BParty^000000 ^0000FF"+.@partyshow_name$[@i]+"^000000";					mes "Reward: "+.@partyshow_amount[@i]+" "+getitemname(.@partyshow_item[@i])+"s";					mes "••••••••••••••••••••••••••••••••";				}				goto show_process;			case 3:				next;				mes "^FF0000[Current Processes]^000000";				mes "••••••••••••••••••••••••••••••••";				query_sql "SELECT `guildname`, `reward_id`, `reward_amount` FROM `rewardguildnpc`", .@guildshow_name$, .@guildshow_item, .@guildshow_amount;				for(set @i, 0; @i < getarraysize(.@guildshow_name$); set @i, @i+1)				{					mes "To: ^B18904Guild^000000 ^0000FF"+.@guildshow_name$[@i]+"^000000";					mes "Reward: "+.@guildshow_amount[@i]+" "+getitemname(.@guildshow_item[@i])+"s";					mes "••••••••••••••••••••••••••••••••";				}				goto show_process;			}		case 3:			next;			mes .@n$;			mes "Do you want to delete one process only or all processes?";			switch(select("Delete one process only:Delete all processes:Leave it as it is"))			{			case 1:				next;				mes .@n$;				mes "Please choose from what category you would like to delete a process.";				next;				switch(select("Player:Party:Guild"))				{				case 1:					next;					mes .@n$;					mes "Please input the player name you want to delete the process.";					input @deletename$;					next;					query_sql "SELECT `playername`, `reward_id`, `reward_amount` FROM `rewardplayernpc`", .@delete_name$, .@delete_item, .@delete_amount;					for (set @i, 0; @i < getarraysize(.@delete_name$); set @i, @i+1)					{					if(@deletename$ == .@delete_name$[@i])						{						mes .@n$;						mes "Deleting....";						query_sql "DELETE FROM `rewardplayernpc` WHERE `playername`='"+@deletename$+"'";						next;						mes .@n$;						mes "Deleted unclaimed process!";						close;						}					}					goto R_Invalid;				case 2:					next;					mes .@n$;					mes "Please input the party name you want to delete the process.";					input @partydeletename$;					next;					query_sql "SELECT `partyname`, `reward_id`, `reward_amount` FROM `rewardpartynpc`", .@partydelete_name$, .@partydelete_item, .@partydelete_amount;					for (set @i, 0; @i < getarraysize(.@partydelete_name$); set @i, @i+1)					{					if(@partydeletename$ == .@partydelete_name$[@i])						{						mes .@n$;						mes "Deleting....";						query_sql "DELETE FROM `rewardpartynpc` WHERE `partyname`='"+@partydeletename$+"'";						next;						mes .@n$;						mes "Deleted unclaimed process!";						close;						}					}					goto R_Invalid;				case 3:					next;					mes .@n$;					mes "Please input the guild name you want to delete the process.";					input @guilddeletename$;					next;					query_sql "SELECT `guildname`, `reward_id`, `reward_amount` FROM `rewardguildnpc`", .@guilddelete_name$, .@guilddelete_item, .@guilddelete_amount;					for (set @i, 0; @i < getarraysize(.@guilddelete_name$); set @i, @i+1)					{					if(@guilddeletename$ == .@guilddelete_name$[@i])						{						mes .@n$;						mes "Deleting....";						query_sql "DELETE FROM `rewardguildnpc` WHERE `guildname`='"+@guilddeletename$+"'";						next;						mes .@n$;						mes "Deleted unclaimed process!";						close;						}					}					goto R_Invalid;				}			case 2:				next;				mes .@n$;				mes "Please input DELETE to delete all the unclaimed processes.";				input @deleteall$;					if(@deleteall$ == "DELETE")					{						next;						mes .@n$;						mes "Deleting....";						query_sql "DELETE FROM `rewardplayernpc`";						query_sql "DELETE FROM `rewardpartynpc`";						query_sql "DELETE FROM `rewardguildnpc`";						next;						mes .@n$;						mes "Deleted all unclaimed processes!";						close;					}					next;					mes .@n$;					mes "Next time, please input DELETE correctly!";					close;			case 3:				next;				mes .@n$;				mes "Nothing Changed!";				close2;				end;			}		case 4:		viewlogs:			next;			mes .@n$;			mes "Choose what category you want to view the logs!";			next;			switch(select("Player Logs:Party Logs:Guild Logs",				( getgmlevel() < .gmlvl )?"":"Delete Logs"))			{			case 1:				next;				mes .@n$;				mes "Current logs: ^008000" + (getarraysize($giverlog1$)) + "^000000";				mes "--------------------------------";				set .@i,0;				while (.@i < getarraysize($giverlog1$)) {						mes ""+.@i+". ^B041FFGM " + $giverlog1$[.@i] + "^000000 gave "+$amountlog1[.@i]+"x "+getitemname($itemlog1[.@i])+" to Player^55AAFF " + $receiverlog1$[.@i] + "^000000";						mes "--------------------------------";						set .@i, .@i+1; }				next;				goto viewlogs;			case 2:				next;				mes .@n$;				mes "Current logs: ^008000" + (getarraysize($giverlog2$)) + "^000000";				mes "--------------------------------";				set .@j,0;				while (.@j < getarraysize($giverlog2$)) {						mes ""+.@j+". ^B041FFGM " + $giverlog2$[.@j] + "^000000 gave "+$amountlog2[.@j]+"x "+getitemname($itemlog2[.@j])+" to Party^55AAFF " + $receiverlog2$[.@j] + "^000000";						mes "--------------------------------";						set .@j, .@j+1; }				next;				goto viewlogs;			case 3:				next;				mes .@n$;				mes "Current logs: ^008000" + (getarraysize($giverlog3$)) + "^000000";				mes "--------------------------------";				set .@k,0;				while (.@k < getarraysize($giverlog3$)) {						mes ""+.@k+". ^B041FFGM " + $giverlog3$[.@k] + "^000000 gave "+$amountlog3[.@k]+"x "+getitemname($itemlog3[.@k])+" to Guild^55AAFF " + $receiverlog3$[.@k] + "^000000";						mes "--------------------------------";						set .@k, .@k+1; }				next;				goto viewlogs;			case 4:				next;				mes .@n$;				mes "^FF0000This action cannot be undone.^000000";				mes "Are you sure?";				mes " ";				if (select("Yes:No") == 2) { mes "Request cancelled."; next; goto Log_Menu; }				deletearray $giverlog1$[0],getarraysize($giverlog1$); deletearray $receiverlog1$[0],getarraysize($receiverlog1$);				deletearray $itemlog1[0],getarraysize($itemlog1); deletearray $amountlog1[0],getarraysize($amountlog1);				deletearray $giverlog2$[0],getarraysize($giverlog2$); deletearray $receiverlog2$[0],getarraysize($receiverlog2$);				deletearray $itemlog2[0],getarraysize($itemlog2); deletearray $amountlog2[0],getarraysize($amountlog2);				deletearray $giverlog3$[0],getarraysize($giverlog3$); deletearray $receiverlog3$[0],getarraysize($receiverlog3$);				deletearray $itemlog3[0],getarraysize($itemlog3); deletearray $amountlog3[0],getarraysize($amountlog3);				next;				mes .@n$;				mes "Logs cleared.";				next;				goto admin_only;			}		}	}	mes .@n$;	mes "Hello, "+strcharinfo(0)+"!";	next;	switch(Select("Claim Reward:View Logs:Leave"))	{	case 1:		mes .@n$;		mes "From what category you want to claim your reward?";		next;		switch(select("Player:Party:Guild"))		{		case 1:			mes .@n$;			mes "Please enter your Name:";			input @winnername$;			if (@winnername$!=strcharinfo(0)){next; mes .@n$; mes "You are a fake!"; close; end; }			next;			query_sql "SELECT `playername`, `reward_id`, `reward_amount` FROM `rewardplayernpc`", .@available_name$, .@available_item, .@available_amount;			for (set @i, 0; @i < getarraysize(.@available_name$); set @i, @i+1)			{			if(@winnername$ == .@available_name$[@i])				{				mes .@n$;				mes "You get ^0000FF" + getitemname(.@available_item[@i]) + " - " + .@available_amount[@i] + " ea.^000000";				query_sql "DELETE FROM `rewardplayernpc` WHERE `playername`='"+@winnername$+"'";				getitem .@available_item[@i],.@available_amount[@i];				announce "Player "+.@available_name$[@i]+" has claimed "+.@available_amount[@i]+" "+getitemname(.@available_item[@i])+"s from the Rewards NPC!",0,0xDBA901;				close;				}			}			goto R_Noreward;		case 2:			if( !getcharid(1) || getcharid(3) != getpartyleader( getcharid(1),1 ) ){next; mes .@n$; mes "Only party leaders are allowed here!"; close; end; }			mes .@n$;			mes "Please enter your party name:";			input @partywinnername$;			if (@partywinnername$!=strcharinfo(1)){next; mes .@n$; mes "You are a fake!"; close; end; }			next;			query_sql "SELECT `partyname`, `reward_id`, `reward_amount` FROM `rewardpartynpc`", .@partyavailable_name$, .@partyavailable_item, .@partyavailable_amount;			for (set @i, 0; @i < getarraysize(.@partyavailable_name$); set @i, @i+1)			{			if(@partywinnername$ == .@partyavailable_name$[@i])				{				mes .@n$;				mes "You get ^0000FF" + getitemname(.@partyavailable_item[@i]) + " - " + .@partyavailable_amount[@i] + " ea.^000000";				query_sql "DELETE FROM `rewardpartynpc` WHERE `partyname`='"+@partywinnername$+"'";				announce "Party "+.@partyavailable_name$[@i]+" has claimed "+.@partyavailable_amount[@i]+" "+getitemname(.@partyavailable_item[@i])+"s from the Rewards NPC!",0,0xDBA901;				getitem .@partyavailable_item[@i],.@partyavailable_amount[@i];				close;				}			}			goto R_Noreward;		case 3:			set @guildid, getcharid(2);			if( !getcharid(2) || strcharinfo(0) != getguildmaster(@guildid) ){next; mes .@n$; mes "Only guild masters are allowed here!"; close; end; }			mes .@n$;			mes "Please enter your guild name:";			input @guildwinnername$;			if (@guildwinnername$!=strcharinfo(2)){next; mes .@n$; mes "You are a fake!"; close; end; }			next;			query_sql "SELECT `guildname`, `reward_id`, `reward_amount` FROM `rewardguildnpc`", .@guildavailable_name$, .@guildavailable_item, .@guildavailable_amount;			for (set @i, 0; @i < getarraysize(.@guildavailable_name$); set @i, @i+1)			{			if(@guildwinnername$ == .@guildavailable_name$[@i])				{				mes .@n$;				mes "You get ^0000FF" + getitemname(.@guildavailable_item[@i]) + " - " + .@guildavailable_amount[@i] + " ea.^000000";				query_sql "DELETE FROM `rewardguildnpc` WHERE `guildname`='"+@guildwinnername$+"'";				announce "Guild "+.@guildavailable_name$[@i]+" has claimed "+.@guildavailable_amount[@i]+" "+getitemname(.@guildavailable_item[@i])+"s from the Rewards NPC!",0,0xDBA901;				getitem .@guildavailable_item[@i],.@guildavailable_amount[@i];				close;				}			}			goto R_Noreward;		}	case 2:		next;		goto viewlogs;	case 3:		mes .@n$;		mes "See yah.";		close;	}	R_Invalid:	mes "^FF0000[Rewards NPC]^000000";	mes "Invalid. Does not exists in the logs!";	close;	R_Noreward:	mes "^FF0000[Rewards NPC]^000000";	mes "No rewards at the meantime";	mes "Get out!";	close;OnInit:	query_sql "CREATE TABLE IF NOT EXISTS `rewardplayernpc` (`playername` TINYTEXT NOT NULL, `reward_id` INT NOT NULL, `reward_amount` INT NOT NULL, INDEX `playername` (`playername`(32)) ) ENGINE=MyISAM";	query_sql "CREATE TABLE IF NOT EXISTS `rewardpartynpc` (`partyname` TINYTEXT NOT NULL, `reward_id` INT NOT NULL, `reward_amount` INT NOT NULL, INDEX `partyname` (`partyname`(32)) ) ENGINE=MyISAM";	query_sql "CREATE TABLE IF NOT EXISTS `rewardguildnpc` (`guildname` TINYTEXT NOT NULL, `reward_id` INT NOT NULL, `reward_amount` INT NOT NULL, INDEX `guildname` (`guildname`(32)) ) ENGINE=MyISAM";}/* Add npc's here (duplicate) ciao */prontera,136,170,5	duplicate(Rewards#101)	Rewards NPC	566					

 

You may try this ?

Share this post


Link to post
Share on other sites
  • 0

Have you tried it? cause its working for me.

 

 

@edit

getgmlevel is different from getgroupid.

 

 

    id: 4// groupid. ( getgroupid )    name: "Event Manager"    inherit: ( "Support" )    level: 1 // level. ( getgmlevel )
Edited by quesoph

Share this post


Link to post
Share on other sites
  • 0

 

Have you tried it? cause its working for me.

 

 

@edit

getgmlevel is different from getgroupid.

 

 

    id: 4// groupid. ( getgroupid )    name: "Event Manager"    inherit: ( "Support" )    level: 1 // level. ( getgmlevel )

oh now its working i got multiple script because i was unloading the npc but not the script, but how to make it that only gm lvl 99 can delete the logs?

Share this post


Link to post
Share on other sites
  • 0

Replace this:

 

 

switch(select("Assign Reward:Show Current Processes:Delete Process:View Logs"))

 

with:

 

 

switch(select("Assign Reward","Show Current Processes",getgmlevel() >= 99?"Delete Process":"","View Logs"))

Share this post


Link to post
Share on other sites
  • 0

 

Replace this:

 

 

switch(select("Assign Reward:Show Current Processes:Delete Process:View Logs"))

 

with:

 

 

switch(select("Assign Reward","Show Current Processes",getgmlevel() >= 99?"Delete Process":"","View Logs"))

ty quesoph

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
Sign in to follow this  

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.