Jump to content
  • 0
Sign in to follow this  
Kusoo

Giving reward code logic

Question

Hello there! I'm writing this code that will give prizes to the top 3 MvP killers

Should be triggered every monday, but for testing purposes I picked OnMinute1 :)

OnInit:

OnMinute1:

L_give:
announce "Entregando premios .",0;
query_sql("Select ragnarok.char_reg_num_db.char_id, ragnarok.char.name, ragnarok.char_reg_num_db.value FROM ragnarok.char_reg_num_db INNER JOIN ragnarok.char ON ragnarok.char.char_id=ragnarok.char_reg_num_db.char_id WHERE ragnarok.char_reg_num_db.`key`='MvP' ORDER BY ragnarok.char_reg_num_db.value DESC LIMIT 3", .@chrid); // Selects TOP 3 MVP

query_sql "DELETE FROM char_reg_num_db WHERE char_reg_num_db.`key`='USERAURA' OR char_reg_num_db.`key`='USERAURA1'";
	.@existeonel = query_sql ("Select exists(SELECT ragnarok.char_reg_num_db.char_id FROM ragnarok.char_reg_num_db WHERE ragnarok.char_reg_num_db.char_id=150003 AND ragnarok.char_reg_num_db.`key`= 'USERAURA')"); //DELETE Previous Prize
for (set @i,0; @i < 3; set @i,@i+1) 
	{
	.@existeonel = query_sql ("Select exists(SELECT ragnarok.char_reg_num_db.char_id FROM ragnarok.char_reg_num_db WHERE ragnarok.char_reg_num_db.char_id=150003 AND ragnarok.char_reg_num_db.`key`= 'USERAURA')");
	mes "Encontrado: "+.@existeonel+"";
	if (.@existeonel == 1)
		{
			if (.@chrid[@i] != 0)
			{
			query_sql("INSERT INTO `ragnarok`.`char_reg_num_db` (`char_id`, `key`, `value`) VALUES ("+.@chrid[@i]+", 'USERAURA', 586)");
			query_sql("INSERT INTO `ragnarok`.`char_reg_num_db` (`char_id`, `key`, `value`) VALUES ("+.@chrid[@i]+", 'USERAURA1', 587)");
			}
		}
}
end;

This is my console: 

 

8yt1v3L.png

 

 

Share this post


Link to post
Share on other sites

2 answers to this question

Recommended Posts

  • 0

Did you try the C like syntax in the for ?

for (set @i,0; @i < 3; set @i,@i+1)

 

C like :

for (set @i=0; @i < 3; set @i=@i+1)

 

Looking the console, your first query is not getting the players, may be is not the query but the syntaxe to put the result in variable.

 

For testing your query execute it into MySQL trough phpmyadmin

Share this post


Link to post
Share on other sites
  • 0

Your problem is in the for(loop).

You're using @i without a player attached, you should be using .@i

 

for (set @i,0; @i < 3; set @i,@i+1)

into

for (set .@i,0; .@i < 3; set .@i,.@i+1)

 

After that, make sure you change all instances of " @i " into " .@i ". Or else the game will continue to spit out that error so long as a player is not attached.

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.