Jump to content
  • 0

help about this script and its error


Question

Posted

this is the error

3590180.jpg

 

this is the script

// ===== Donation Npc 1.0 ===================== //
// ===== Credits : Jhosef and trOn ============ //
// ===== Change Logs ========================== //
// ============================================ //



// ==== NPC Location ========================== // 
prontera,151,182,5	script	Donation NPC	807,{

// === Configuration ========================== //
	set .gms_level, 99;
	set .code_length,5; // Length for the Donation Code
	set .code_length2,3; // Length for the Validation Code
	set .donate_item, 7179; // Donation Item
	set .@itemORcash, 0; // 0 for Item or 1 for Cash Point
	set .@npc_name$, "Donation Npc";
	setarray .coupon_code$[0],"A","B","C","D","E","F","G","H","I","J","K","L",
							  "M","N","O","P","Q","R","S","T","U","V","W","X",
							  "Y","Z","0","1","2","3","4","5","6","7","8","9";
							  
	setarray .validation_code$[0],"A","B","C","D","E","F","G","H","I","J","K","L",
							  "M","N","O","P","Q","R","S","T","U","V","W","X",
							  "Y","Z","0","1","2","3","4","5","6","7","8","9";

							 
// ==== NPC Talk ============================== //
	if( getgmlevel() >= .gms_level) goto AdminPanel;
	if( getgmlevel() < .gms_level) goto PlayerPanel;
	
// ==== Don't Edit This ======================= //
	set .@stats$,"0";
// ==== Admin Panel =========================== //
	AdminPanel:
	
	mes .@npc_name$;
	mes "Welcome " + strcharinfo(0) + ".";
	next;
	switch(select("Add Donation Code:Player View:Exit"))
		{
			case 1:
				for(set @i, 0; @i < .code_length; set @i, @i+1)
				{
					set @random_char, rand(0,(getarraysize(.coupon_code$)-1));
					set @new_donation$, @new_donation$ + .coupon_code$[@random_char];
				}
				
				for(set @i, 0; @i< .code_length2; set @i, @i+1)
				{
					set @random_char, rand(0,(getarraysize(.validation_code$)-1));
					set @new_validation$, @new_validation$ + .validation_code$[@random_char];
				}
				mes .@npc_name$;
				mes "Enter Item Amount:";
				input @donate_amount;
				next;
				mes .@npc_name$;
				mes "Coupon added.";
				
				query_sql "INSERT INTO `donate` (`code`, `item_amount`,`validation_code`,`status`) VALUES ('"+@new_donation$+"', "+@donate_amount+", '"+@new_validation$+"' , '"+.@stats$+"')";
				set @new_donation$, "";
				set @new_validation$, "";
				next;		
				mes "This is the list of code logs";
				query_sql "SELECT `code` , `item_amount` , `validation_code` , `status` FROM `donate` ORDER BY `code` DESC", .@codelist$, .@status$, .@validation$;
				if(.@codelist)
				{
					mes .@npcname$;
					mes "There are no entrys in the Code List.";
					close;
				} 
				else 
				{
					next;
					mes .@npcname$;
					mes "The list will spawn at your main chat box.";
					dispbottom "Codelist | Amount | Validation";
					for(set @ei,0; @ei < getarraysize(.@codelist$); set @ei,@ei + 1) 
					{
						dispbottom ""+.@codelist$[@ei]+" | "+.@status$[@ei]+" | "+.@validation$[@ei]+" "; 
					}					
				}
				next;
				close;
				
			case 2:
				goto PlayerPanel;
			case 3:
				mes .@npc_name$;
				mes "Have a nice day.";
				close;
		}
	

// ==== Player Panel ========================== //
PlayerPanel:

	mes .@npc_name$;
	mes "Welcome to the Donation System. How can I help you?";
	next;
	switch(Select("View My Donation Code:Enter My Donation Code:Exit"))
	{
		case 1:
			mes .@npc_name$;
			mes "Please enter your Validation Code:";
			input @my_code$;
			next;
			query_sql "SELECT `validation_code` FROM `donate` WHERE `validation_code` = '"+@my_code$+"'", @available_code$;
			next;
			
				if(@my_code$ == @available_code$)
				{
					query_sql "SELECT `code` FROM `donate` WHERE `validation_code` = '"+@my_code$+"'", @available_code2$;
					mes .@npc_name$;
					mes "Your Donation Code is : [^FF7700"  + @available_code2$+ "^000000].";
					close2;
					end;
				}
				else
				{
				mes .@npc_name$;
				mes "Your Validation Code is Invalid.";
				close;
				}
			
		case 2:
			mes .@npc_name$;
			mes "Please enter your Donation Code:";
			input @donate_code$;
			next;
			query_sql "SELECT `code` FROM `donate` WHERE `code` = '"+@donate_code$+"'", @donation_code$;
			query_sql "SELECT `status` FROM `donate` WHERE `code` = '"+@donate_code$+"'", @donate_status;
			if(strtoupper(@donate_code$)==@donation_code$ && @donate_status == 0)
			{
				if( .itemORcash == 0)
				{
					query_sql "SELECT `item_amount` FROM `donate` WHERE `code` = '"+@donate_code$+"'", @Donation_Code$;
					mes .@npc_name$;
					mes "You get ^0000FF" + getitemname(.donate_item) + " - " + @Donation_Code$ + " ea.^000000";
					query_sql "UPDATE `donate` SET `status`=1 WHERE `code`='"+@donate_code$+"'";
					close2;
					//query_sql "DELETE FROM `donate` WHERE `code`='"+@donate_code$+"'";
					getitem .donate_item,@Donation_Code$;
					end;
				}
				else
				{
					query_sql "SELECT `item_amount` FROM `donate` WHERE `code` = '"+@donate_code$+"'", @Donation_Code$;
					mes .@npc_name$;
					mes "You get ^0000FF" + @Donation_Code$ + " Cash Point.^000000";
					query_sql "UPDATE `donate` SET `status`=1 WHERE `code`='"+@donate_code$+"'";
					close2;
					//query_sql "DELETE FROM `donate` WHERE `code`='"+@donate_code$+"'";
					set #CASHPOINTS, @Donation_Code$;
					end;
				
				}
			}
			else
			{
				mes .@npc_name$;
				mes "This Donation Code doesn't exist.";
				close;
			}
			
		case 3:
			mes .@npc_name$;
			mes "Have a nice day.";
			close;
	}

// ============================================ //

OnInit:
	query_sql "CREATE TABLE IF NOT EXISTS `donate` (`code` TINYTEXT NOT NULL, `item_amount` INT NOT NULL, `validation_code` TEXT NOT NULL, `status` TEXT NOT NULL, INDEX `code` (`code`(32)) ) ENGINE=MyISAM";
	query_sql "CREATE TABLE IF NOT EXISTS `donation` (`name` TEXT NOT NULL, `code` TEXT NOT NULL, `item_amount` INT NOT NULL, `validation_code` TEXT NOT NULL, INDEX `code` (`code`(32)) ) ENGINE=MyISAM";

}

 

 

3 answers to this question

Recommended Posts

Posted

and this is my fix

prontera,151,182,5	script	Donation NPC	807,{

// ==== NPC Talk ============================== //
	if( getgmlevel() < .gms_level) goto PlayerPanel;

// ==== Admin Panel =========================== //
	mes .npc_name$;
	mes "Welcome " + strcharinfo(0) + ".";
	next;
	switch( select("Add Donation Code:Player View:Exit") ) {
		case 1:
			for( set .@i, 0; .@i < .code_length; set .@i, .@i +1 ) {
				set .@random_char, rand( .size_coupon );
				set .@new_donation$, .@new_donation$ + .coupon_code$[ .@random_char ];
			}
			for( set .@i, 0; .@i < .code_length2; set .@i, .@i+1 ) {
				set .@random_char, rand( .size_valid );
				set .@new_validation$, .@new_validation$ + .validation_code$[ .@random_char ];
			}
			mes .npc_name$;
			mes "Enter Item Amount (1-99):";
			if( input( .@donate_amount, 1, 99 ) != 0 ) {
				mes "Wrong amount.";
				close;
			}
			next;
			mes .npc_name$;
			mes "Coupon added.";
			
			query_sql "INSERT INTO `donate` (`code`, `item_amount`,`validation_code`,`status`) VALUES ('"+ .@new_donation$ +"', "+ .@donate_amount +", '"+ .@new_validation$ +"' , '0')";
			next;		
			mes "This is the list of code logs";
			set .@size_list, query_sql( "SELECT `code` , `item_amount` , `validation_code` FROM `donate` ORDER BY `code` DESC", .@codelist$, .@amount, .@validation$ );
			if( !.@size_list ) {
				mes .@npcname$;
				mes "There are no entrys in the Code List.";
				close;
			} 
			else {
				next;
				mes .@npcname$;
				mes "The list will spawn at your main chat box.";
				dispbottom "Codelist | Amount | Validation";
				for(set .@i,0; .@i < .@size_list; set .@i, .@i +1 )
					dispbottom ""+.@codelist$[.@i]+" | "+.@amount[.@i]+" | "+.@validation$[.@i]+" ";			
			}
			close;
		case 2: break;
		case 3:
		L_quit:
			mes .npc_name$;
			mes "Have a nice day.";
			close;
	}
	

// ==== Player Panel ========================== //
PlayerPanel:
	mes .npc_name$;
	mes "Welcome to the Donation System. How can I help you?";
	next;
	switch( Select("View My Donation Code:Enter My Donation Code:Exit") ) {
		case 1:
			mes .npc_name$;
			mes "Please enter your Validation Code:";
			input .@my_code$;
			query_sql "SELECT `validation_code` FROM `donate` WHERE `validation_code` = '"+ escape_sql( .@my_code$ ) +"'", .@available_code$;
			next;
			if( .@my_code$ == .@available_code$ ) {
				query_sql "SELECT `code` FROM `donate` WHERE `validation_code` = '"+ escape_sql( .@my_code$ ) +"'", .@available_code2$;
				mes .npc_name$;
				mes "Your Donation Code is : [^FF7700"  + .@available_code2$+ "^000000].";
			}
			else {
				mes .npc_name$;
				mes "Your Validation Code is Invalid.";
			}
			close;
			
		case 2:
			mes .npc_name$;
			mes "Please enter your Donation Code:";
			input .@donate_code$;
			next;
			query_sql "SELECT `code`, `status` FROM `donate` WHERE `code` = '"+ escape_sql( .@donate_code$ ) +"'", .@donation_code$, .@donate_status;
			if( strtoupper( .@donate_code$ ) == .@donation_code$ && .@donate_status == 0 ) {
				if( .itemORcash == 0 ) {
					query_sql "SELECT `item_amount` FROM `donate` WHERE `code` = '"+ escape_sql( .@donate_code$ ) +"'", .@Donation_Code$;
					mes .npc_name$;
					mes "You get ^0000FF" + getitemname( .donate_item ) + " - " + .@Donation_Code$ + " ea.^000000";
					query_sql "UPDATE `donate` SET `status`=1 WHERE `code`='"+ escape_sql( .@donate_code$ ) +"'";
					close2;
					//query_sql "DELETE FROM `donate` WHERE `code`='"+@donate_code$+"'";
					getitem .donate_item, atoi( .@Donation_Code$ );
				}
				else {
					query_sql "SELECT `item_amount` FROM `donate` WHERE `code` = '"+ escape_sql( .@donate_code$ ) +"'", .@Donation_Code$;
					mes .npc_name$;
					mes "You get ^0000FF" + .@Donation_Code$ + " Cash Point.^000000";
					query_sql "UPDATE `donate` SET `status`=1 WHERE `code`='"+ escape_sql( .@donate_code$ ) +"'";
					close2;
					//query_sql "DELETE FROM `donate` WHERE `code`='"+@donate_code$+"'";
					set #CASHPOINTS, #CASHPOINTS + atoi( .@Donation_Code$ );
				}
				end;
			}
			else {
				mes .npc_name$;
				mes "This Donation Code doesn't exist.";
				close;
			}

		case 3: goto L_quit;
	}

// ============================================ //

OnInit:
	query_sql "CREATE TABLE IF NOT EXISTS `donate` (`code` TINYTEXT NOT NULL, `item_amount` INT NOT NULL, `validation_code` TEXT NOT NULL, `status` TEXT NOT NULL, INDEX `code` (`code`(32)) ) ENGINE=MyISAM";
	query_sql "CREATE TABLE IF NOT EXISTS `donation` (`name` TEXT NOT NULL, `code` TEXT NOT NULL, `item_amount` INT NOT NULL, `validation_code` TEXT NOT NULL, INDEX `code` (`code`(32)) ) ENGINE=MyISAM";

	// === Configuration ========================== //
	set .gms_level, 99;
	set .code_length,5;			// Length for the Donation Code
	set .code_length2,3;		// Length for the Validation Code
	set .donate_item, 7179;		// Donation Item
	set .itemORcash, 0;			// 0 for Item or 1 for Cash Point
	set .npc_name$, "Donation Npc";
	setarray .coupon_code$[0],"A","B","C","D","E","F","G","H","I","J","K","L",
							  "M","N","O","P","Q","R","S","T","U","V","W","X",
							  "Y","Z","0","1","2","3","4","5","6","7","8","9";
							  
	setarray .validation_code$[0],"A","B","C","D","E","F","G","H","I","J","K","L",
							  "M","N","O","P","Q","R","S","T","U","V","W","X",
							  "Y","Z","0","1","2","3","4","5","6","7","8","9";
	set .size_coupon, getarraysize( .coupon_code$ );
	set .size_valid, getarraysize( .validation_code$ );
	end;
}

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.   Paste as plain text instead

  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.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...