Вопросы

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

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;
}

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

Отредактировано пользователем Remmi_Feed

Поделиться сообщением


Ссылка на сообщение

12 ответов на этот вопрос

  • 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, "", "");

 

Поделиться сообщением


Ссылка на сообщение
  • 0

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

Поделиться сообщением


Ссылка на сообщение
  • 0

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

Поделиться сообщением


Ссылка на сообщение
  • 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]

Поделиться сообщением


Ссылка на сообщение
  • 0

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

  В 12/7/2017 в 18:44, Remmi_Feed сказал:

d[100]

Читать далее...  

 

Поделиться сообщением


Ссылка на сообщение
  • 0

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

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

 

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

Поделиться сообщением


Ссылка на сообщение
  • 0

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

Поделиться сообщением


Ссылка на сообщение
  • 0

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

Поделиться сообщением


Ссылка на сообщение
  • 0
  В 12/7/2017 в 19:21, 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]. 

Поделиться сообщением


Ссылка на сообщение
  • 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, "", "");

 

Поделиться сообщением


Ссылка на сообщение
  • 0

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

Поделиться сообщением


Ссылка на сообщение
  • 0

@DEST дошло)

Отредактировано пользователем Remmi_Feed

Поделиться сообщением


Ссылка на сообщение
Гость
Эта тема закрыта для публикации ответов.
  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

  • Похожий контент

    • djxxx
      От djxxx
      приветствую всех.
       
      Задался таким вопросом при добавлении одной системы на DIALOG_STYLE_TABLIST_HEADERS.
       
      Суть проблемы в том, что диалог не выравнивается под нужные показатели, а просто как будто находиться по середине, в диалоге используется \t, но они особо не помогают в решении, также не ровно.
       
      а если попытаться выравнивать большим количеством \t, оно компилируется но в игре происходят вылеты
       
      Код такой:
      DialogAdmShop ( playerid, DIALOG_EPOINTSHOP, DIALOG_STYLE_TABLIST_HEADERS, fmt_str, ""BR"номер\t"BR"наименование\t"BR"доступное действие\n"\ "{EB4C42}#1\t{FFFFFF}Виртуальная валюта\t{888888}нажмите для взаимодействия\n"\ "{EB4C42}#2\t{FFFFFF}Донат валюта\t{888888}нажмите для взаимодействия\n"\ "{EB4C42}#3\t{FFFFFF}Вип статусы\t{888888}нажмите для взаимодействия\n"\ "{EB4C42}#4\t{FFFFFF}Кейсы\t{888888}нажмите для взаимодействия\n"\ "{EB4C42}#5\t{FFFFFF}Уникальные аксессуары\t{888888}нажмите для взаимодействия", "Выбрать", "Закрыть" ); }  
      сток dialogadmshop:
      stock DialogAdmShop(playerid, dialogid, style, title[], text[], button[], button2[]) {   if(style == 5)   {      ShowPlayerDialog(playerid, 0, DIALOG_STYLE_LIST, "...", "...", "...", "");    }   ShowPlayerDialog(playerid, dialogid, style, title, text, button, button2);   return 1; }