Вопросы

grmpng
Новичок

Начинаю разработку мода с нуля но каждый раз выдаёт ошибку при создании регистрации/авторизации

D:\SA-MP 0.3.7 Windows Server\gamemodes\new.pwn(239) : предупреждение 215: выражение не имеет эффекта
D:\SA-MP 0.3.7 Windows Server\gamemodes\new.pwn(239) : предупреждение 215: выражение не имеет эффекта
D:\SA-MP 0.3.7 Windows Server\gamemodes\new.pwn(239) : ошибка 001: ожидался токен ";", но найден ")"
D:\SA-MP 0.3.7 Windows Server\gamemodes\new.pwn(239) : ошибка 029: неправильное выражение, принят ноль
D:\SA-MP 0.3.7 Windows Server\gamemodes\new.pwn(239) : предупреждение 215: выражение не имеет эффекта
D:\SA-MP 0.3.7 Windows Server\gamemodes\new.pwn(243) : ошибка 029: неправильное выражение, принят ноль
D:\SA-MP 0.3.7 Windows Server\gamemodes\new.pwn(243) : предупреждение 215: выражение не имеет эффекта
D:\SA-MP 0.3.7 Windows Server\gamemodes\new.pwn(243) : предупреждение 215: выражение не имеет эффекта
D:\SA-MP 0.3.7 Windows Server\gamemodes\new.pwn(243) : предупреждение 215: выражение не имеет эффекта
D:\SA-MP 0.3.7 Windows Server\gamemodes\new.pwn(243) : ошибка 001: ожидался токен ";", но найден ")"
D:\SA-MP 0.3.7 Windows Server\gamemodes\new.pwn(243) : ошибка 029: неправильное выражение, принят ноль
D:\SA-MP 0.3.7 Windows Server\gamemodes\new.pwn(243) : фатальная ошибка 107: слишком много ошибок на одной строке

Компиляция остановлена.

Pawn compiler 3.2.3664 Copyright (c) 1997-2016, ITB CompuPhase
Ошибок:6.
  открыть спойлер

 

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

Заметка от Cawfee , создано

3.2. Код необходимо брать в тег "Код", а код более 10 строк – еще и в "Спойлер". Как это сделать рассказано в разделе "FAQ".

Устное предупреждение.

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


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

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

  • 0
Sleash
Завсегдатый

Ну во-первых, в одной из функций MySQL вы либо пропустили параметр, либо случайно поставили лишнюю запятую, а именно в этом фрагменте:

mysql_function_query(dbHandle,query1,true,,"LoadAcc","i",playerid);
// Указать на какой строке это не могу, ибо вы сами их не разметили :)

Так же ошибка у вас в каждой проверку символов пароля, а именно:

switch(inputtext)
{
    //...
}
// Код выше в корне неврный, так как вы указываете строку, а не символ
// Для перебора символов строки надо использовать такой код:
switch(inputtext[i])
{
    //...
}

При оповещение игрока во время авторизации о том, сколько у него осталось попыток вы выводите такой текст:

format(str,sizeof(str),"У вас осталось: %d попыток",GetPVarInt(playerid,"wrong_password"));

Это неверно, так как временная переменная wrong_password у вас начинается с нуля, то есть при постоянном вводе неверного пароля со стороны игрока будет такая ситуация:

У вас осталось: 1 попыток
У вас осталось: 2 попыток
У вас осталось: 3 попыток
У вас осталось: 4 попыток
У вас осталось: 5 попыток
*Кик игрока*

Для верного отображения используйте такой код:

format(str,sizeof(str),"У вас осталось: %d попыток",5-GetPVarInt(playerid,"wrong_password"));

Так же мне хотелось разобрать данную проверку:

if(strlen(inputtext) < 4 || strlen(inputtext) > 32 || strlen(inputtext) == 0//..

Я думаю, что 0 и так меньше 4-х, поэтому сравнение длинные строки с нулём можно убрать:

if(strlen(inputtext) < 4 || strlen(inputtext) > 32//...

Ещё я не вижу смысла создавать отдельные переменные для каждого запроса, как это вы делаете в данном фрагменте кода:

new query[120 + MAX_PLAYER_NAME];
format(query,sizeof(query),"INSERT INTO `account` (`pNick`,`pPassword`,`pLevel`) VALUES ('%s','%s','1')"),Player[playerid][pNick],inputtext);
mysql_query(dbHandle,query);
new query1[100];
format(query1,sizeof(query1),"SELECT * FROM `account` WHERE `pNick` = '%s'",Player[playerid][pNick]);
mysql_function_query(dbHandle,query1,true,,"LoadAcc","i",playerid);

Гораздо проще и логичней использовать старую переменную, ведь она уже и не нужна:

new query[120 + MAX_PLAYER_NAME];
format(query,sizeof(query),"INSERT INTO `account` (`pNick`,`pPassword`,`pLevel`) VALUES ('%s','%s','1')"),Player[playerid][pNick],inputtext);
mysql_query(dbHandle,query);
format(query1,sizeof(query),"SELECT * FROM `account` WHERE `pNick` = '%s'",Player[playerid][pNick]);
mysql_function_query(dbHandle,query,true,,"LoadAcc","i",playerid);

На этом вроде бы всё.

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


Ссылка на сообщение
  • 0
grmpng
Новичок

D:\m\gamemodes\new.pwn(60) : ошибка 017: необъявленный символ "mysql_function_query"

D:\m\gamemodes\new.pwn(241) : предупреждение 215: выражение не имеет эффекта

D:\m\gamemodes\new.pwn(241) : предупреждение 215: выражение не имеет эффекта

D:\m\gamemodes\new.pwn(241) : ошибка 001: ожидался токен ";", но найден ")"

D:\m\gamemodes\new.pwn(241) : ошибка 029: неправильное выражение, принят ноль

D:\m\gamemodes\new.pwn(241) : предупреждение 215: выражение не имеет эффекта

D:\m\gamemodes\new.pwn(244) : ошибка 017: необъявленный символ "mysql_function_query"

D:\m\gamemodes\new.pwn(244) : предупреждение 215: выражение не имеет эффекта

D:\m\gamemodes\new.pwn(244) : предупреждение 215: выражение не имеет эффекта

D:\m\gamemodes\new.pwn(244) : предупреждение 215: выражение не имеет эффекта

D:\m\gamemodes\new.pwn(244) : ошибка 001: ожидался токен ";", но найден ")"

D:\m\gamemodes\new.pwn(244) : ошибка 029: неправильное выражение, принят ноль

D:\m\gamemodes\new.pwn(244) : фатальная ошибка 107: слишком много ошибок на одной строке

 

Компиляция остановлена.

 

Pawn compiler 3.2.3664 Copyright (c) 1997-2016, ITB CompuPhase

 

 

Ошибок:7.

  открыть спойлер

 

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

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


Ссылка на сообщение
  • 0
Sleash
Завсегдатый
  В 10/20/2023 в 20:20, Sleash сказал:

Ну во-первых, в одной из функций MySQL вы либо пропустили параметр, либо случайно поставили лишнюю запятую, а именно в этом фрагменте:

mysql_function_query(dbHandle,query1,true,,"LoadAcc","i",playerid);
// Указать на какой строке это не могу, ибо вы сами их не разметили :)

Так же ошибка у вас в каждой проверке символов пароля, а именно:

switch(inputtext)
{
    //...
}
// Код выше в корне неврный, так как вы указываете строку, а не символ
// Для перебора символов строки надо использовать такой код:
switch(inputtext[i])
{
    //...
}
Читать далее...  

 

  В 10/20/2023 в 20:20, Sleash сказал:

Ещё я не вижу смысла создавать отдельные переменные для каждого запроса, как это вы делаете в данном фрагменте кода:

new query[120 + MAX_PLAYER_NAME];
format(query,sizeof(query),"INSERT INTO `account` (`pNick`,`pPassword`,`pLevel`) VALUES ('%s','%s','1')"),Player[playerid][pNick],inputtext);
mysql_query(dbHandle,query);
new query1[100];
format(query1,sizeof(query1),"SELECT * FROM `account` WHERE `pNick` = '%s'",Player[playerid][pNick]);
mysql_function_query(dbHandle,query1,true,,"LoadAcc","i",playerid);

Гораздо проще и логичней использовать старую переменную, ведь она уже и не нужна:

new query[120 + MAX_PLAYER_NAME];
format(query,sizeof(query),"INSERT INTO `account` (`pNick`,`pPassword`,`pLevel`) VALUES ('%s','%s','1')"),Player[playerid][pNick],inputtext);
mysql_query(dbHandle,query);
format(query1,sizeof(query),"SELECT * FROM `account` WHERE `pNick` = '%s'",Player[playerid][pNick]);
mysql_function_query(dbHandle,query,true,,"LoadAcc","i",playerid);
Читать далее...  

Все ошибки, которые я процитировал выше ещё сохранились в вашем коде
В добавок мне интересен этот момент:

format(str,sizeof(str),"У вас осталось: %d попыток",5-
GetPVarInt(playerid,"wrong_password"));

Этот фрагмент выбьет ошибку, почему просто нельзя было написать так:

format(str,sizeof(str),"У вас осталось: %d попыток",5-GetPVarInt(playerid,"wrong_password"));

Ну а если вам принципиально сделать этот код в 2 строчки, то пользуйтесь обратным слешем для переноса кода:

format(str,sizeof(str),"У вас осталось: %d попыток",5-\
GetPVarInt(playerid,"wrong_password"));

@grmpng 

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


Ссылка на сообщение
  • 0
Cawfee
Великий Гуру
  В 10/22/2023 в 02:11, Sleash сказал:

Этот фрагмент выбьет ошибку, почему просто нельзя было написать так:

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

Проблемы могут возникнуть лишь с переносом строк без отсутствия обратного слэша. Все остальное любой компилятор нормально жует. Да и вообще удобно так описывать так значения аргументов функций.

 

  открыть спойлер

 

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


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

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

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

    • Danya_Smolin
      От Danya_Smolin

      Что добавили в доработку мода страйк:
      1. Викторина
      2. Новый вокзал
      3. Аренда мопедов по пикапу
      4. Система грандиозного пропуска (Батл-пасс)
      5. Система подарков
      6. Премиум аккаунт
      7. Эксклюзивные автомобили
      8. Добавили очень много команд для администраторов
      9. Новое окно авторизации

      10. Новая система бизнесов

      11. Добавили команду /fixcar
      12. Система военного положения
      13. Система аварии на зоне-51

      14. Система подкупного полицейского

      15. Новый логотип
      16. Добавили много новых аксессуаров
      17. Добавили таймер в виде TextDraws.

      18. Музыка при регистрации и на вокзале
      19. Добавили маппинг КПП и домиков на дереве

      20. Исправили множество багов

      21. Добавили сертификаты

      22. Добавили навыки

      23. Добавили рынок барыг

      24. Добавили инвесторов
      25. Добавили 5 новых мест в /gps

      26. Добавили обучение персонажа

      27. Новые интерьеры
      28. Добавили админские команды

      29. Система контейнеров

      30. Система создания семей

      31. Система сертификатов

      32. Система кейсов
      33. Добавили челлендж на донат-рубли

      34. Добавили маппинг на пляже

      35. Добавили команды для мероприятия

      36. Добавили новые банкоматы

      37. Добавили команду /anticheat

      38. Добавили команду /veh

      39. Система барыг

      40. Система инвесторов

      41. Добавили систему привилегий

      42. Добавили новый магазин для выгодных покупок только для привилегий - /pdonate
      43. Переписан /donaterub.

      44. Добавлено 13 костюмов.

      45. Исправлена база данных.

      46. Исправлены мелкие баги.

      47. Добавлено 17 титулов.

      48. Исправлен /donaterub.

      49. Теперь эксклюзивные машины сохраняются после выхода.

      50. Ваши мани теперь под защитой и их не украдут мошенники после перезахода.

      51. Скин сохраняется после выхода/перезахода.

      52. Донат/Деньги/Уровень сохраняется после перезахода.

      53. Исправлены ошибки в БД.
    • Danya_Smolin
      От Danya_Smolin
      Cтрайк Рп
      Скачать файл
      Что добавили в доработку мода страйк:
      1. Викторина
      2. Новый вокзал
      3. Аренда мопедов по пикапу
      4. Система грандиозного пропуска (Батл-пасс)
      5. Система подарков
      6. Премиум аккаунт
      7. Эксклюзивные автомобили
      8. Добавили очень много команд для администраторов
      9. Новое окно авторизации

      10. Новая система бизнесов

      11. Добавили команду /fixcar
      12. Система военного положения
      13. Система аварии на зоне-51

      14. Система подкупного полицейского

      15. Новый логотип
      16. Добавили много новых аксессуаров
      17. Добавили таймер в виде TextDraws.

      18. Музыка при регистрации и на вокзале
      19. Добавили маппинг КПП и домиков на дереве

      20. Исправили множество багов

      21. Добавили сертификаты

      22. Добавили навыки

      23. Добавили рынок барыг

      24. Добавили инвесторов
      25. Добавили 5 новых мест в /gps

      26. Добавили обучение персонажа

      27. Новые интерьеры
      28. Добавили админские команды

      29. Система контейнеров

      30. Система создания семей

      31. Система сертификатов

      32. Система кейсов
      33. Добавили челлендж на донат-рубли

      34. Добавили маппинг на пляже

      35. Добавили команды для мероприятия

      36. Добавили новые банкоматы

      37. Добавили команду /anticheat

      38. Добавили команду /veh

      39. Система барыг

      40. Система инвесторов

      41. Добавили систему привилегий

      42. Добавили новый магазин для выгодных покупок только для привилегий - /pdonate
      43. Переписан /donaterub.

      44. Добавлено 13 костюмов.

      45. Исправлена база данных.

      46. Исправлены мелкие баги.

      47. Добавлено 17 титулов.

      48. Исправлен /donaterub.

      49. Теперь эксклюзивные машины сохраняются после выхода.

      50. Ваши мани теперь под защитой и их не украдут мошенники после перезахода.

      51. Скин сохраняется после выхода/перезахода.

      52. Донат/Деньги/Уровень сохраняется после перезахода.

      53. Исправлены ошибки в БД.
      Добавил Danya_Smolin Добавлено 07.07.2025 Категория Моды Автор Pwn_Admin  
    • Kasper0
      От Kasper0
      Продаётся готовый проект CRMP.
      Готовый игровой мод База Данных с более чем 350к аккаунтов Сборка, скинпак/автомобили, карта Домены Сайт,лаунчер Чат-боты Более 5 бэкапов игрового мода, начиная с версии 0.3e Связаться: t.me/zayhhik
    • Kasper0
      От Kasper0


      Скачать файл Criminal Russia RolePlay (CRMPRP)
      Всех приветствую, в наличии мод CRMPRP. Разрабатывался с 2013 года если не ошибаюсь от бывшего Владельца (полностью оригинал + так-же имеется БД с сайтом и системой логов). Мод без бонуса, куча работ для новичков например: (Лесопилка,ферма,рыбалка,водитель автобуса,автомеханик,дольнабойщики,завод,таксист и др.) имеется система квестов, система домов (5 классов + возможность заменять интерьеры и система чердака), система гаражей (3 класса), обширная система семей, обширная система *ОПГ. Мод спокойно может выдержать 500+ онлайна
      Добавил Kasper0 Добавлено 05.07.2025 Категория Моды Автор Tim  
    • OREGON-RPG
      От OREGON-RPG
      **Привет, будущий друг!**
      Мы создаем новый сервер в >> GTA SA-MP (OregoN Role Playing Game) << и ищем таких же увлеченных игроков, как ты!!!

      Здесь ты сможешь: 

      Влиять на развитие сервера – твое мнение важно! 

      Найти друзей и классную компанию.
       
      Стать частью уютного комьюнити, где все друг за друга.

      Сервер еще в разработке – это шанс войти в историю с самого начала! 

       >>> Давай строить этот мир вместе? <<<

       Переходи по ссылке, будь в центре событий и стань частью истории: 

      [ Группа ВКонтакте: vk.com/oregonrpgru ]

      [ Форум: oregon-rpg.ru ]