Question

Начал делать но не работает. В чем проблема?

CMD:givedonate(playerid, params[])
{
	if(sscanf(params,"ud[100]", params[0],params[1])) return SendClientMessage(playerid,COLOR_WARNING,"Используйте /givedonate [id] [кол-во]");
    if(!IsPlayerConnected(params[0]))return  SendClientMessage(playerid,COLOR_WARNING,"Данного ID нет на сервере!");
	if(PLAYER_DATA[params[0]][data_LOGGED] == false)return  SendClientMessage(playerid,COLOR_WARNING,"Данный игрок не прошел авторизацию!");
	if(params[1] < 1 || params[1] > 90000) return SendClientMessage(playerid,COLOR_WARNING,"Нельзя меньше 1 дня и больше 90 дней!");
	new query[256];
    mysql_format(dbHandle,query, sizeof(query), "SELECT * FROM `accounts` WHERE `donate` = '%d'",params[0]);
 	mysql_function_query(dbHandle, query, true, "", "");
 	return true;
}

Прошу объяснить подробно

Edited by Remmi_Feed

Share this post


Link to post

12 answers to this question

  • 0
23 часа назад, DEST сказал:

mysql_format(dbHandle,query, sizeof(query), "UPDATE `accounts` SET `donate` = '%d' WHERE `name` = '%s'",params[0], PLAYER_DATA[playerid][data_NAME]); mysql_function_query(dbHandle, query, true, "", "");

здесь вместо playerid нужно подставить аргумент игрока, т.е. params[0]. 

Share this post


Link to post
  • 0

@Remmi_Feed не работает потому что выполняется запроc SELECT, а должен запрос UPDATE. Почитать можете  в интернете гайды по составлению запросов. Ну вот вам готовый пример: 
 

mysql_format(dbHandle,query, sizeof(query), "UPDATE `accounts` SET `donate` = '%d' WHERE `name` = '%s'",params[0], PLAYER_DATA[playerid][data_NAME]);
mysql_function_query(dbHandle, query, true, "", "");

 

Share this post


Link to post
  • 0

@DEST все же не работает команда

Share this post


Link to post
  • 0

@Remmi_Feed там не params[0], а params[1] в запросе поменяй. И в третьей строки команды у d 100 убери. К числовому аргументу размер не ставится. 

Share this post


Link to post
  • 0

@DEST команда заработала однако вот что в логах появилось

[19:04:48] sscanf warning: Format specifier does not match parameter count.
[19:04:57] sscanf warning: Format specifier does not match parameter count.

 

мне кажется это из за params[2]

Share this post


Link to post
  • 0

@Remmi_Feed значит ты не выполнил мои рекомендации из второго поста, или где-то такое же есть нарушение как тут

21 час назад, Remmi_Feed сказал:

d[100]

 

Share this post


Link to post
  • 0

Убрал params[2] и появилось вот что

[19:06:55] Warning: PlayerDialogResponse PlayerId: 0 dialog ID doesn't match last sent dialog ID

 

@DEST я думал убрать только [100]

Share this post


Link to post
  • 0

@Remmi_Feed это с этой системой абсолютно никак не связано. Только 100 из команды и нужно было убрать. 

Share this post


Link to post
  • 0

@DEST работает только на мне :) На остальных никакого эффекта 

Share this post


Link to post
  • 0

@DEST то есть получится?

mysql_format(dbHandle,query, sizeof(query), "UPDATE `accounts` SET `donate` = '%d' WHERE `name` = '%s'",params[0], PLAYER_DATA,params[2]); mysql_function_query(dbHandle, query, true, "", "");

 

Share this post


Link to post
  • 0

@Remmi_Feed а теперь перечитай мой пост и сделай как положено. Что заменить я выделил, на что написал.

Share this post


Link to post
  • 0

@DEST дошло)

Edited by Remmi_Feed

Share this post


Link to post
Guest
This topic is now closed to further replies.
Sign in to follow this  
Followers 0
  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • Kutuzov
      By Kutuzov
      Всем привет, хотелось бы спросить у тех, кто разбирается в PluginSDK.
      Какие есть источники, руководства, документации о PluginSDK?
      Я пока что ничего нормального не нахожу.
      Заранее спасибо