Jump to content

skymia

Members
  • Posts

    296
  • Joined

  • Last visited

  • Days Won

    1

Posts posted by skymia

  1. On 10/20/2017 at 3:12 PM, Quesooo said:

    good day can i request a npc (freebies npc) that is limited only on 1 week after 1 week the npc will gone automatically

     

    the npc gives +6 valkyrie sets

     

    but the npc only gives on a single ip only to avoid abuser

     

    thank you so much !

    Why not just remove the script after a week?

  2. already fix sir but my problem with 2017-06-14b client in char selection if robe equip like 2589-fallen angel wing it will crash server

    so i use 2015-11-04a client for the moment i want to have signboard in npc i think 2015 client dont have that features

     

  3. 20 minutes ago, ToiletMaster said:

    Hope you don't mind if I divert from the original request of this thread, however, Correct me if I'm wrong, doesn't this part here make this vulnerable to SQL  injection? 

    while it does have a check to prevent groupID to be 4 and above to be able to interact with the NPC, however if it falls into the wrong hands they could do quite a bit of damage if they really wanted. 

     

     

    ohh i see....can you recommend a better reward npc sir or you can revise the script? 

  4. How can i find the NPC for the VIP System?

    -	script	vip	-1,{
    //*********************************************************************
    //	VIP System for eAthena servers Version 3.0
    //*********************************************************************
    //	It allows you to boost experience and drop rate for players who donate
    //	for a specified amount of days.
    //	It makes use of account's GM Levels to specify the account type,
    //	by default values are these:
    //		- Account Level 0 = Non VIP Account
    //		- Account Level 1 = VIP Silver Account
    //		- Account Level 2 = VIP Gold Account
    //		- Account Level 3 = VIP Platinum Account
    //	all of them, of course, customizable ;).
    // ¡Therefore, you can also set =atcommands= for every account level in
    // [yourserver]/conf/atcommand_athena.conf ! Isn't that great?! :D
    //	In other words, VIP players can have access to more @commands than
    //	normal users if you want. This will add more value to the service.
    //
    //	Add, List, Modify and Remove VIP accounts via whisper to this NPC.
    //	Manage VIP accounts in-game! Just whisper any text to the npc "vip"
    //	to access the VIP management menu.
    //
    //	This script requires some database modifications for it to work,
    //	check them at the original post where I posted this script.
    //	URI:	
    //
    //	Created by: Victor H. Olvera (VicThor)
    //	If you like this, please donate to paypal: [email protected]
    //	I'd really like to make more scripts like this, so help if you can!
    //
    //	If you want any special modification or adaptation of this script,
    //	please! feel free to e-mail me at [email protected] I'm $ure I can
    //	provide you with something according to your need$ :)
    // Modify by java@rathenaorg or [email protected] ====> compatible for both servers
    //¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
    //**************** VIP SYSTEM CONFIGURATION	*************************
    set $VIPs_SilverAccLevel,1;		// Account Level assigned for VIP Silver		*
    set $VIPs_GoldAccLevel,2;		// Account Level assigned for VIP Gold			*
    set $VIPs_PlatinumAccLevel,3;	// Account Level assigned for VIP Platinum	*
    set $VIPs_SilverExpRate,50;		// VIP Silver Exp Boost in % ( 1 = 1% )		*
    set $VIPs_GoldExpRate,100;		// VIP Gold Exp Boost in % ( 1 = 1% )			*
    set $VIPs_PlatinumExpRate,150;	// VIP Platinum Exp Boost in % ( 1 = 1% )		*
    set $VIPs_SilverItemRate,10;		// VIP Silver Item Drop Boost in % ( 1 = 1% )	*
    set $VIPs_GoldItemRate,20;		// VIP Gold Item Drop Boost in % ( 1 = 1% )	*
    set $VIPs_PlatinumItemRate,30;	// VIP Platinum Item Drop Boost in % ( 1 = 1%)*
    set $VIPs_AdminGmLevel,99;		// Define GM Level enabled to add, list and	*
    							// remove VIP entries. Any GM with access le-	*
    							// vel equal or higher than this will be able	*
    							// to manage VIP Accounts.						*
    //	********************************************************************
    //
    // Actions and checks when player logs in about his/her account type status.
    OnPCLoginEvent:
    	// Obtain account data
    	set .@getAccountType$,query_sql("SELECT `account_type` FROM login WHERE `account_id` = "+getcharid(3)+";",.@accountType$);
    	
    	// First of all deACTIVEte all VIP benefits
    	sc_end sc_expboost;	
    	sc_end sc_itemboost;
    	
    	// If account type is PLATINUM
    	if (.@accountType$ == "PLATINUM")
    	{
    	
    		// Dialy Bonus WOIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII ================================================================
            if(#dailytimer < gettimetick(2)) {
                announce "Here's your prize, you'll get another one after 24 hours.",bc_self,0x0099FF;
                getitem 21001,1; //remove <id> and add your own ids for item
                set #dailytimer,gettimetick(2) + 86400; //24 hours.
            }
    		set .@getVipStatus,query_sql("SELECT `status` FROM `vip_platinum` WHERE `account_id` = "+getcharid(3)+";",.@vipStatus$); // Get account type status
    		set .@getExpirationDate$,query_sql("SELECT DATE_FORMAT(`end_date`, '%Y %m %d') FROM vip_platinum WHERE `account_id` = "+getcharid(3)+";",.@expirationDate$);	// Get expiration date
    		if (gettimestr("%Y %m %d",21) >= .@expirationDate$) // If current date is higher than expiration date...
    		{
    			//	terminateVip function on line 430, removes player VIP entry from database table "vip_platinum"
    			callsub terminateVip,"vip_platinum",getcharid(3); goto L_displayInfo;
    		}
    		//	If expiration date has not arrived yet, ACTIVEte VIP benefits.
    		else
    		{
    			sc_start sc_expboost,1000*60*60*24,$VIPs_PlatinumExpRate;
    			sc_start sc_itemboost,1000*60*60*24,$VIPs_PlatinumItemRate; goto L_displayInfo;
    		}
    	}
    	
    	if (.@accountType$ == "GOLD")
    	{
    	
    		// Dialy Bonus WOIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII ================================================================
            if(#dailytimer < gettimetick(2)) {
                announce "Here's your prize, you'll get another one after 24 hours.",bc_self,0x0099FF;
                getitem 21001,1; //remove <id> and add your own ids for item
                set #dailytimer,gettimetick(2) + 86400; //24 hours.
            }
    		set .@getVipStatus,query_sql("SELECT `status` FROM `vip_gold` WHERE `account_id` = "+getcharid(3)+";",.@vipStatus$); // Obtener el estado de la cuenta
    		set .@getExpirationDate$,query_sql("SELECT DATE_FORMAT(`end_date`, '%Y %m %d') FROM vip_gold WHERE `account_id` = "+getcharid(3)+";",.@expirationDate$);	// Obtener Fecha de expiración
    		if (gettimestr("%Y %m %d",21) >= .@expirationDate$) // Si la fecha de HOY es mayor que la fecha de expiración...
    		{
    			//	terminateVip function on line 430, removes player VIP entry from database table "vip_gold"
    			callsub terminateVip,"vip_gold",getcharid(3); goto L_displayInfo;
    		}
    		//	If expiration date has not arrived yet, ACTIVEte VIP benefits.
    		else
    		{
    			sc_start sc_expboost,1000*60*60*24,$VIPs_GoldExpRate;
    			sc_start sc_itemboost,1000*60*60*24,$VIPs_GoldItemRate; goto L_displayInfo;
    		}
    	}
    	
    	if (.@accountType$ == "SILVER")
    	{
    	
    		// Dialy Bonus WOIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII ================================================================
            if(#dailytimer < gettimetick(2)) {
                announce "Here's your prize, you'll get another one after 24 hours.",bc_self,0x0099FF;
                getitem 21001,1; //remove <id> and add your own ids for item
                set #dailytimer,gettimetick(2) + 86400; //24 hours.
            }
    		set .@getVipStatus,query_sql("SELECT `status` FROM `vip_silver` WHERE `account_id` = "+getcharid(3)+";",.@vipStatus$); // Obtener el estado de la cuenta
    		set .@getExpirationDate$,query_sql("SELECT DATE_FORMAT(`end_date`, '%Y %m %d') FROM vip_silver WHERE `account_id` = "+getcharid(3)+";",.@expirationDate$);	// Obtener Fecha de expiración
    		if (gettimestr("%Y %m %d",21) >= .@expirationDate$) // Si la fecha de HOY es mayor que la fecha de expiración...
    		{
    			//	terminateVip function on line 430, removes player VIP entry from database table "vip_silver"
    			callsub terminateVip,"vip_silver",getcharid(3); goto L_displayInfo;
    		}
    		//	If expiration date has not arrived yet, ACTIVEte VIP benefits.
    		else
    		{
    			sc_start sc_expboost,1000*60*60*24,$VIPs_SilverExpRate;
    			sc_start sc_itemboost,1000*60*60*24,$VIPs_SilverItemRate; goto L_displayInfo;
    		}
    	}
    	
    	// If account type is normal, just display account type information.
    	if (.@accountType$ == "NORMAL")
    	{
    		set .@getVipStatus,query_sql("SELECT `status` FROM `vip_silver` WHERE `account_id` = "+getcharid(3)+";",.@vipStatus$); // Obtener el estado de la cuenta
    		set .@getExpirationDate$,query_sql("SELECT DATE_FORMAT(`end_date`, '%Y %M %d') FROM vip_silver WHERE `account_id` = "+getcharid(3)+";",.@expirationDate$);	// Obtener Fecha de expiración
    		goto L_displayInfo;
    	}
    
    // Displays account type status on login on chat window.
    L_displayInfo:
    	dispbottom "----------------------------------------------------------------------";
    	dispbottom "Account type:         "+.@accountType$;
    	dispbottom "Status:                     "+.@vipStatus$;
    	dispbottom "Expiration date: "+.@expirationDate$;
    	dispbottom "----------------------------------------------------------------------";
    	end;
    
    OnWhisperGlobal:
    	if ( getgmlevel() < 99 ) end;
    	
    On_gm:
    	set .@npcName$,"[VIP System]";
    	
    	mes .@npcName$;
    	mes "Welcome, "+strcharinfo(0)+"!";
    	mes "¿What can I do for you today?";
    	next;
    	switch(select("VIP Silver Menu:VIP Gold Menu:VIP Platinum Menu:Quit"))
    	{
    		case 1:	// VIP Silver
    			next;
    			mes .@npcName$;
    			mes "[VIP SILVER]";
    			switch(select("Add/Extend Account:Delete Account:List Accounts:Back"))
    			{
    				case 1:	// Add/Extend
    					mes "Type the Account Name";
    					mes "you wish to add.";
    					input .@accountName$;
    					next;
    					mes .@npcName$;
    					mes "[VIP SILVER]";
    					mes "Type the number of days you";
    					mes "wish to add to the account's VIP";
    					mes "status.";
    					next;
    					mes .@npcName$;
    					mes "[VIP SILVER]";
    					input .@silverDays;
    					// Fetch account's ID using the name of the account previously typed.
    					set .@getAccountId,query_sql("SELECT `account_id`FROM login WHERE `userid` = '"+.@accountName$+"';",.@accountId);
    					mes "Identifying account: "+.@accountName$+".";
    					sleep2 rand(100,2000); // Looks like it's working on something :P
    					if (!.@accountId)	// Let's verify if the entered account exists or GM is just high...
    					{
    						mes "ERROR: Couldn't find account.";
    						mes "Verify if you dind't make a typo.";
    						close;
    					}
    					else
    					{	 // Now lets check if the account is already 'vip_silver'
    						set .@getSilverAccount,query_sql("SELECT `account_id` FROM vip_silver WHERE `account_id` = "+.@accountId+";",.@silverAccountId);
    						if (.@silverAccountId == .@accountId) // If the account is already VIP we will update instead of inserting a new entry.
    						{
    							mes "Account ID: "+.@silverAccountId+".";
    							sleep2 rand(100,850);
    							query_sql("UPDATE vip_silver SET end_date = DATE_ADD(end_date, INTERVAL "+.@silverDays+" DAY) WHERE account_id = "+.@silverAccountId+";");
    							query_sql("UPDATE vip_silver SET `status` = 'ACTIVE' WHERE account_id = "+.@silverAccountId+";");
    							query_sql("UPDATE login SET `account_type` = 'SILVER' WHERE account_id = "+.@silverAccountId+";");
    							mes "Account "+.@silverAccountId+" updated";
    							mes "successfuly!";
    							close;
    						}
    						else	// If the account is not already a VIP Silver one, add a new entry.
    						{
    							mes "Account ID: "+.@accountId+".";
    							sleep2 rand(100,850);
    							query_sql("INSERT INTO vip_silver (`account_id`,`account_name`,`start_date`,`end_date`,`status`) VALUES ("+.@accountId+",'"+.@accountName$+"','"+gettimestr("%Y-%m-%d",21)+"','"+gettimestr("%Y-%m-%d",21)+"','ACTIVE');");
    							sleep2 100;
    							query_sql("UPDATE vip_silver SET end_date = DATE_ADD(start_date, INTERVAL "+.@silverDays+" DAY) WHERE account_id = "+.@accountId+";");
    							query_sql("UPDATE `login` SET `group_id` = 1 WHERE `account_id` = "+.@accountId+";");
    							query_sql("UPDATE login SET `account_type` = 'SILVER' WHERE account_id = "+.@accountId+";");
    							mes "Account "+.@accountId+" added";
    							mes "successfuly!";
    							close;
    						}
    					}
    					close;
    				case 2:	// Delete
    					set .@getSilverList_1$,query_sql("SELECT account_name FROM vip_silver LIMIT 0,127;", .@silverList_1$); // query_sql can only display the first 128 lines of a table. This is so sad :(
    					if ( getarraysize(.@silverList_1$) == 0 )
    					{
    						mes "There are currently no VIP";
    						mes "Silver accounts.";
    						close;
    					}
    					else
    					{
    						mes "Select the account you wish ";
    						mes "to remove from VIP system.";
    						
    						set .@j$, "1. "+ .@silverList_1$;
    						for (set .@i,1; .@i < getarraysize(.@silverList_1$); set .@i, .@i + 1 )
    							set .@j$, .@j$ +":"+ (.@i+1) +". "+ .@silverList_1$[.@i];
    						set .@j$, .@j$ +":Cancel";
    						next;
    						mes .@npcName$;
    						mes "[VIP SILVER]";
    						set .@menu, select(.@j$) -1;
    						if ( .@menu == getarraysize(.@silverList_1$) ) { next; goto On_gm; }
    						mes "Are you sure you want to remove the account ";
    						mes .@silverList_1$[.@menu] +" ?";
    						if ( select( "Yes:No" ) == 2 ) { next; goto On_gm; }
    						query_sql ("UPDATE `login` SET `group_id` = 0 WHERE `userid` = '"+.@silverList_1$[.@menu]+"';");
    						query_sql ("DELETE FROM vip_silver WHERE account_name = '"+.@silverList_1$[.@menu]+"';");
    						query_sql("ALTER TABLE vip_silver AUTO_INCREMENT = 1;");
    						query_sql("UPDATE `login` SET `account_type` = 'NORMAL' WHERE `userid` = '"+.@silverList_1$[.@menu]+"';");
    						mes "VIP Silver account successfuly deleted!.";
    						close;
    					}					
    					close;
    					
    				case 3:	// List
    					mes "VIP Silver accounts list:";
    					// List up to 127 vip accounts
    					set .@getSilverList_1$,query_sql("SELECT account_name FROM vip_silver LIMIT 0, 127;", .@silverList_1$);
    					for (set .@i,0; .@i < getarraysize(.@silverList_1$); set .@i, .@i + 1)
    						mes (.@i+1)+". "+.@silverList_1$[.@i]; // You may want to add a next; command and a new LIMIT 128,255 sentence, in case you need to store and display more than 128 VIP accounts.
    					close;
    				case 4:	// Back
    					goto On_gm;
    			}
    		
    		case 2: // Gold Menu
    			next;
    			mes .@npcName$;
    			mes "[VIP GOLD]";
    			switch(select("Add/Extend Account:Delete Account:List Accounts:Back"))
    			{
    				case 1:	// Add
    					mes "Type the Account Name";
    					mes "you wish to add.";
    					input .@accountName$;
    					next;
    					mes .@npcName$;
    					mes "[VIP GOLD]";
    					mes "Enter the amount of days you";
    					mes "want to add to this account";
    					mes "status.";
    					next;
    					mes .@npcName$;
    					mes "[VIP GOLD]";
    					input .@goldDays;
    					// Fetch account's ID using the name of the account previously typed.
    					set .@getAccountId,query_sql("SELECT `account_id`FROM login WHERE `userid` = '"+.@accountName$+"';",.@accountId);
    					mes "Identificando Cuenta: "+.@accountName$+".";
    					sleep2 rand(100,2000);
    					if (!.@accountId)	// Checks if account exists.
    					{
    						mes "ERROR: Couldn't find account.";
    						mes "Verify the account you typed";
    						close;
    					}
    					else
    					{	 // Verify if account is already 'vip_gold'
    						set .@getGoldAccount,query_sql("SELECT `account_id` FROM vip_gold WHERE `account_id` = "+.@accountId+";",.@goldAccountId);
    						if (.@goldAccountId == .@accountId) // If it exists, update, not insert
    						{
    							mes "Account ID: "+.@accountId+".";
    							sleep2 rand(100,850);
    							query_sql("UPDATE vip_gold SET end_date = DATE_ADD(end_date, INTERVAL "+.@goldDays+" DAY) WHERE account_id = "+.@goldAccountId+";");
    							query_sql("UPDATE vip_gold SET `status` = 'ACTIVE' WHERE account_id = "+.@goldAccountId+";");
    							query_sql("UPDATE login SET `account_type` = 'GOLD' WHERE account_id = "+.@goldAccountId+";");
    							mes "Account "+.@goldAccountId+" updated";
    							mes "successfuly!";
    							close;
    						}
    						else	// If this account is not already 'vip_gold', add an entry.
    						{
    							mes "Account ID: "+.@accountId+".";
    							sleep2 rand(100,850);
    							query_sql("INSERT INTO vip_gold (`account_id`,`account_name`,`start_date`,`end_date`,`status`) VALUES ("+.@accountId+",'"+.@accountName$+"','"+gettimestr("%Y-%m-%d",21)+"','"+gettimestr("%Y-%m-%d",21)+"','ACTIVE');");
    							sleep2 100;
    							query_sql("UPDATE vip_gold SET end_date = DATE_ADD(start_date, INTERVAL "+.@goldDays+" DAY) WHERE account_id = "+.@accountId+";");
    							query_sql("UPDATE `login` SET `group_id` = 2 WHERE `account_id` = "+.@accountId+";");
    							query_sql("UPDATE login SET `account_type` = 'GOLD' WHERE account_id = "+.@accountId+";");
    							mes "Account "+.@accountId+" updated";
    							mes "successfuly!";
    							close;
    						}
    					}
    					close;
    				case 2:	// Delete
    					set .@getGoldList_1$,query_sql("SELECT account_name FROM vip_gold LIMIT 0,127;", .@goldList_1$);
    					if ( getarraysize(.@goldList_1$) == 0 )
    					{
    						mes "There are currently no VIP";
    						mes "accounts.";
    						close;
    					}
    					else
    					{
    						mes "Select the account you wish ";
    						mes "to remove from VIP system Gold.";
    						
    						set .@j$, "1. "+ .@goldList_1$;
    						for (set .@i,1; .@i < getarraysize(.@goldList_1$); set .@i, .@i + 1 )
    							set .@j$, .@j$ +":"+ (.@i+1) +". "+ .@goldList_1$[.@i];
    						set .@j$, .@j$ +":Cancel";
    						next;
    						mes .@npcName$;
    						mes "[VIP GOLD]";
    						set .@menu, select(.@j$) -1;
    						if ( .@menu == getarraysize(.@goldList_1$) ) { next; goto On_gm; }
    						mes "Are you sure you want to remove the account ";
    						mes .@goldList_1$[.@menu] +" ?";
    						if ( select( "Yes:No" ) == 2 ) { next; goto On_gm; }
    						query_sql ("UPDATE `login` SET `group_id` = 0 WHERE `userid` = '"+.@goldList_1$[.@menu]+"';");
    						query_sql ("DELETE FROM vip_gold WHERE account_name = '"+.@goldList_1$[.@menu]+"';");
    						query_sql("ALTER TABLE vip_gold AUTO_INCREMENT = 1;");
    						query_sql("UPDATE `login` SET `account_type` = 'NORMAL' WHERE `userid` = '"+.@goldList_1$[.@menu]+"';");
    						
    						mes "VIP Gold account successfuly deleted!.";
    						close;
    					}					
    					close;
    					
    				case 3:	// List
    					mes "List Accounts VIP Gold:";
    					// List only 128 accounts due to eAthena's limitations :( very sad indeed.
    					set .@getgoldList_1$,query_sql("SELECT account_name FROM vip_gold LIMIT 0,127;", .@goldList_1$);
    					for (set .@i,0; .@i < getarraysize(.@goldList_1$); set .@i, .@i + 1)
    						mes (.@i+1)+". "+.@goldList_1$[.@i];
    					close;
    				case 4:	// Back
    					goto On_gm;
    			}
    		case 3: // Menu VIP Platinum
    			next;
    			mes .@npcName$;
    			mes "[VIP PLATINUM]";
    			switch(select("Add/Extend Account:Delete Account:List Accounts:Back"))
    			{
    				case 1:	// Add
    					mes "Type the Account Name";
    					mes "you wish to add.";
    					input .@accountName$;
    					next;
    					mes .@npcName$;
    					mes "[VIP PLATINUM]";
    					mes "Enter the amount of days you";
    					mes "will add to this account's";
    					mes "status.";
    					next;
    					mes .@npcName$;
    					mes "[VIP PLATINUM]";
    					input .@platinumDays;
    					// Fetch account's ID using the name of the account previously typed.
    					set .@getAccountId,query_sql("SELECT `account_id`FROM login WHERE `userid` = '"+.@accountName$+"';",.@accountId);
    					mes "Identificando Cuenta: "+.@accountName$+".";
    					sleep2 rand(100,2000);
    					if (!.@accountId)	// Checks if account exists
    					{
    						mes "ERROR: Couldn't find this account";
    						mes "Enter the account correctly";
    						close;
    					}
    					else
    					{	 // Is this account a 'vip_platinum' already?
    						set .@getPlatinumAccount,query_sql("SELECT `account_id` FROM vip_platinum WHERE `account_id` = "+.@accountId+";",.@platinumAccountId);
    						if (.@platinumAccountId == .@accountId) // If this account is 'vip_platinum' update instead of insterting a new entry.
    						{
    							mes "Account ID: "+.@accountId+".";
    							sleep2 rand(100,850);
    							query_sql("UPDATE vip_platinum SET end_date = DATE_ADD(end_date, INTERVAL "+.@platinumDays+" DAY) WHERE account_id = "+.@platinumAccountId+";");
    							query_sql("UPDATE vip_platinum SET `status` = 'ACTIVE' WHERE account_id = "+.@platinumAccountId+";");
    							query_sql("UPDATE login SET `account_type` = 'PLATINUM' WHERE account_id = "+.@platinumAccountId+";");
    							mes "Account "+.@platinumAccountId+" updated";
    							mes "successfuly!";
    							close;
    						}
    						else	// If it's not VIP already, insert a new entry
    						{
    							mes "Account ID: "+.@accountId+".";
    							sleep2 rand(100,850);
    							query_sql("INSERT INTO vip_platinum (`account_id`,`account_name`,`start_date`,`end_date`,`status`) VALUES ("+.@accountId+",'"+.@accountName$+"','"+gettimestr("%Y-%m-%d",21)+"','"+gettimestr("%Y-%m-%d",21)+"','ACTIVE');");
    							sleep2 100;
    							query_sql("UPDATE vip_platinum SET end_date = DATE_ADD(start_date, INTERVAL "+.@platinumDays+" DAY) WHERE account_id = "+.@accountId+";");
    							query_sql("UPDATE `login` SET `group_id` = 3 WHERE `account_id` = "+.@accountId+";");
    							query_sql("UPDATE login SET `account_type` = 'PLATINUM' WHERE account_id = "+.@accountId+";");
    							mes "Account "+.@accountId+" updated";
    							mes "successfuly!";
    							close;
    						}
    					}
    					close;
    				case 2:	// Delete
    					set .@getPlatinumList_1$,query_sql("SELECT account_name FROM vip_platinum LIMIT 0,127;", .@platinumList_1$);
    					if ( getarraysize(.@platinumList_1$) == 0 )
    					{
    						mes "There are currently no VIP";
    						mes "Platinum accounts.";
    						close;
    					}
    					else
    					{
    						mes "Select the account you wish ";
    						mes "to remove from VIP system Platinum.";
    						
    						set .@j$, "1. "+ .@platinumList_1$;
    						for (set .@i,1; .@i < getarraysize(.@platinumList_1$); set .@i, .@i + 1 )
    							set .@j$, .@j$ +":"+ (.@i+1) +". "+ .@platinumList_1$[.@i];
    						set .@j$, .@j$ +":Cancel";
    						next;
    						mes .@npcName$;
    						mes "[VIP PLATINUM]";
    						set .@menu, select(.@j$) -1;
    						if ( .@menu == getarraysize(.@platinumList_1$) ) { next; goto On_gm; }
    						mes "Are you sure you want to remove the account ";
    						mes .@platinumList_1$[.@menu] +" ?";
    						if ( select( "Yes:No" ) == 2 ) { next; goto On_gm; }
    						query_sql ("UPDATE `login` SET `group_id` = 0 WHERE `userid` = '"+.@platinumList_1$[.@menu]+"';");
    						query_sql ("DELETE FROM vip_platinum WHERE account_name = '"+.@platinumList_1$[.@menu]+"';");
    						query_sql("ALTER TABLE vip_platinum AUTO_INCREMENT = 1;");
    						query_sql("UPDATE `login` SET `account_type` = 'NORMAL' WHERE `userid` = '"+.@platinumList_1$[.@menu]+"';");
    						
    						mes "VIP Platinum account successfuly deleted!.";
    						close;
    					}					
    					close;
    					
    				case 3:	// List
    					mes "List Accounts VIP Platinum:";
    					set .@getplatinumList_1$,query_sql("SELECT account_name FROM vip_platinum LIMIT 0,127;", .@platinumList_1$);
    					for (set .@i,0; .@i < getarraysize(.@platinumList_1$); set .@i, .@i + 1)
    						mes (.@i+1)+". "+.@platinumList_1$[.@i];
    					close;
    				case 4:	// Back
    					goto On_gm;
    			}
    		case 4: // Quit
    			close;
    	}
    	
    terminateVip:	// This function removes any VIP status from the specified account
    	set .@dbTableName$,getarg(0);	//	Table name
    	set .@accountId,getarg(1);		//	Account ID
    	
    	query_sql("UPDATE `login` SET `group_id` = 0 WHERE account_id = "+.@accountId+";"); // Set account level to 0
    	query_sql("DELETE FROM "+.@dbTableName$+" WHERE account_id = '"+.@accountId+"';"); // Delete VIP table entry
    	query_sql("ALTER TABLE "+.@dbTableName$+" AUTO_INCREMENT = 1;"); // Tries to reset id count
    	query_sql("UPDATE `login` SET `account_type` = 'NORMAL' WHERE `account_id` = "+.@accountId+";"); // Set account type to "NORMAL" in 'login' table
    	goto L_displayInfo;
    }

     

  5. On 9/23/2017 at 2:41 PM, Emistry said:

    why you still need another log since the `evt_prize` table already store all the information you need?

    sir how to add the evt_prize table in my sql? i dont have the table yet sir

×
×
  • Create New...