22 posts in this topic

В команде /me на одной строчке 5 ошибок. Помогите как их исправить. Заранее спасибо.



Строка: format(string, sizeof(string), "%s %s", PlayerInfo[playerid][pName], params[0]);

Ошибки:



C:\Users\Àäìèí\Desktop\server sup\gamemodes\new.pwn(450) : error 017: undefined symbol "PlayerInfo"
C:\Users\Àäìèí\Desktop\server sup\gamemodes\new.pwn(450) : warning 215: expression has no effect
C:\Users\Àäìèí\Desktop\server sup\gamemodes\new.pwn(450) : error 001: expected token: ";", but found "]"
C:\Users\Àäìèí\Desktop\server sup\gamemodes\new.pwn(450) : error 029: invalid expression, assumed zero
C:\Users\Àäìèí\Desktop\server sup\gamemodes\new.pwn(450) : fatal error 107: too many error messages on one line

Share this post


Link to post
Share on other sites
2 минуты назад, yan2348 сказал:

В команде /me на одной строчке 5 ошибок. Помогите как их исправить. Заранее спасибо.

 

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

 


Строка: format(string, sizeof(string), "%s %s", PlayerInfo[playerid][pName], params[0]);
 

 

Ошибки:

 

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

 

 


C:\Users\Àäìèí\Desktop\server sup\gamemodes\new.pwn(450) : error 017: undefined symbol "PlayerInfo"
C:\Users\Àäìèí\Desktop\server sup\gamemodes\new.pwn(450) : warning 215: expression has no effect
C:\Users\Àäìèí\Desktop\server sup\gamemodes\new.pwn(450) : error 001: expected token: ";", but found "]"
C:\Users\Àäìèí\Desktop\server sup\gamemodes\new.pwn(450) : error 029: invalid expression, assumed zero
C:\Users\Àäìèí\Desktop\server sup\gamemodes\new.pwn(450) : fatal error 107: too many error messages on one line

 

 

PlayerInfo поменяй на player_info

Share this post


Link to post
Share on other sites
1 минуту назад, PEPITOSIK сказал:

PlayerInfo поменяй на player_info

Стало 3 ошибки:



error 017: undefined symbol "player_info"
error 001: expected token: ";", but found "]"
error 029: invalid expression, assumed zero

Share this post


Link to post
Share on other sites
3 минуты назад, yan2348 сказал:

Стало 3 ошибки:

 

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

 

 


error 017: undefined symbol "player_info"
error 001: expected token: ";", but found "]"
error 029: invalid expression, assumed zero
 

 

 

Покажи весь код команды

 

Share this post


Link to post
Share on other sites

TS Posted (edited) · Report post

1 минуту назад, PEPITOSIK сказал:

Покажи весь код команды

 

Код:

 

CMD:me(playerid, params[])
{
if(sscanf(params, "s[118]", params[0])) return SCM(playerid, COLOR_GREY, !"Используйте /me [текст]");
new string[144];
format(string, sizeof(string), "%s %s", player_info[playerid][pName], params[0]);
ProxDetector(20.0, playerid, string, 0xDE92FFFF, 0xDE92FFFF, 0xDE92FFFF, 0xDE92FFFF, 0xDE92FFFF);
SetPlayerChatBubble(playerid, params[0], 0xDE92FFFF, 20, 7500);
return 1;
}

 

Edited by yan2348

Share this post


Link to post
Share on other sites
3 минуты назад, yan2348 сказал:

Код:

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

CMD:me(playerid, params[])
{
if(sscanf(params, "s[118]", params[0])) return SCM(playerid, COLOR_GREY, !"Используйте /me [текст]");
new string[144];
format(string, sizeof(string), "%s %s", player_info[playerid][pName], params[0]);
ProxDetector(20.0, playerid, string, 0xDE92FFFF, 0xDE92FFFF, 0xDE92FFFF, 0xDE92FFFF, 0xDE92FFFF);
SetPlayerChatBubble(playerid, params[0], 0xDE92FFFF, 20, 7500);
return 1;
}

 

а для чего восклецательный знак здесь  !"Используйте /me [текст]" ?

Share this post


Link to post
Share on other sites

Я убрал этот восклицательный знак, только ничего не поменялось(

Share this post


Link to post
Share on other sites
7 минут назад, PEPITOSIK сказал:

а для чего восклецательный знак здесь  !"Используйте /me [текст]" ?

Восклицательный, для упаковки строки (подробнее тут).
Ошибок больше не вижу. Покажи еще раз код и ошибки, укажи строку.

 

@yan2348 Нет, не обязательно было его убирать. Он не играет никакой роли в твоей проблеме.
Ты тоже прочитай про упаковку строк, ссылку выше кинул.

Edited by 20th century

Share this post


Link to post
Share on other sites
2 минуты назад, 20th century сказал:

Восклицательный, для упаковки строки (подробнее тут).
Ошибок больше не вижу. Покажи еще раз код и ошибки, укажи строку.

 

@yan2348 Нет, не обязательно было его убирать. Он не играет никакой роли в твоей проблеме.
Ты тоже прочитай про упаковку строк, ссылку выше кинул.

просто у меня без него прекрасно работает :D

Share this post


Link to post
Share on other sites
2 минуты назад, 20th century сказал:

Восклицательный, для упаковки строки (подробнее тут).
Ошибок больше не вижу. Покажи еще раз код и ошибки, укажи строку.

@yan2348 Нет, не обязательно было его убирать. Он не играет никакой роли в твоей проблеме.
Ты тоже прочитай про упаковку строк, ссылку выше кинул.

Вот сам код:



CMD:me(playerid, params[])
{
if(sscanf(params, "s[118]", params[0])) return SCM(playerid, COLOR_GREY, !"Используйте /me [текст]");
new string[144];
format(string, sizeof(string), "%s %s", PlayerInfo[playerid][pName], params[0]);
ProxDetector(20.0, playerid, string, 0xDE92FFFF, 0xDE92FFFF, 0xDE92FFFF, 0xDE92FFFF, 0xDE92FFFF);
SetPlayerChatBubble(playerid, params[0], 0xDE92FFFF, 20, 7500);
return 1;
}


Строчка и ошибки


format(string, sizeof(string), "%s %s", PlayerInfo[playerid][pName], params[0]);


Ошибки:

 


C:\Users\Àäìèí\Desktop\server sup\gamemodes\new.pwn(449) : error 017: undefined symbol "PlayerInfo"
C:\Users\Àäìèí\Desktop\server sup\gamemodes\new.pwn(449) : warning 215: expression has no effect
C:\Users\Àäìèí\Desktop\server sup\gamemodes\new.pwn(449) : error 001: expected token: ";", but found "]"
C:\Users\Àäìèí\Desktop\server sup\gamemodes\new.pwn(449) : error 029: invalid expression, assumed zero
C:\Users\Àäìèí\Desktop\server sup\gamemodes\new.pwn(449) : fatal error 107: too many error messages on one line


 

Share this post


Link to post
Share on other sites
2 минуты назад, PEPITOSIK сказал:

просто у меня без него прекрасно работает :D

Не сомневаюсь, что работает. Упаковка строк используется редко в наше время, только при острой необходимости.

 

 

1 минуту назад, yan2348 сказал:

Вот сам код:

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

 

 


CMD:me(playerid, params[])
{
if(sscanf(params, "s[118]", params[0])) return SCM(playerid, COLOR_GREY, !"Используйте /me [текст]");
new string[144];
format(string, sizeof(string), "%s %s", PlayerInfo[playerid][pName], params[0]);
ProxDetector(20.0, playerid, string, 0xDE92FFFF, 0xDE92FFFF, 0xDE92FFFF, 0xDE92FFFF, 0xDE92FFFF);
SetPlayerChatBubble(playerid, params[0], 0xDE92FFFF, 20, 7500);
return 1;
}

 


Строчка и ошибки

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


format(string, sizeof(string), "%s %s", PlayerInfo[playerid][pName], params[0]);


Ошибки:

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

 


C:\Users\Àäìèí\Desktop\server sup\gamemodes\new.pwn(449) : error 017: undefined symbol "PlayerInfo"
C:\Users\Àäìèí\Desktop\server sup\gamemodes\new.pwn(449) : warning 215: expression has no effect
C:\Users\Àäìèí\Desktop\server sup\gamemodes\new.pwn(449) : error 001: expected token: ";", but found "]"
C:\Users\Àäìèí\Desktop\server sup\gamemodes\new.pwn(449) : error 029: invalid expression, assumed zero
C:\Users\Àäìèí\Desktop\server sup\gamemodes\new.pwn(449) : fatal error 107: too many error messages on one line


 

 

Покажи любую другую команду, либо покажи энумератор, где ты перечисляешь переменные для игрока. PlayerInfo ты должен заменить на своё название.

Edited by 20th century

Share this post


Link to post
Share on other sites

TS Posted (edited) · Report post


enum pInfo
{
 pName[MAX_PLAYER_NAME],
 pLevel,
 pPass[31],à
 pSex,
 pSkin,
}

Edited by yan2348

Share this post


Link to post
Share on other sites
Только что, yan2348 сказал:

 

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

 

Под твоим спойлером ничего нет, или только у меня не отображается?

Share this post


Link to post
Share on other sites
Только что, 20th century сказал:

Под твоим спойлером ничего нет, или только у меня не отображается?

Обнови страницу, я забыл вставить переменные игрока

Share this post


Link to post
Share on other sites

После окончания перечисления enum у тебя должна быть строка с созданием переменной. Покажи её.

new PlayerInfo[MAX_PLAYERS][pInfo]; // это пример.

 

Edited by 20th century

Share this post


Link to post
Share on other sites
2 минуты назад, 20th century сказал:

После окончания перечисления enum у тебя должна быть строка с созданием переменной:


new PlayerInfo[...][...]; // это пример, псевдокод.

 

Она может и есть, но там возможно не  PlayerInfo

Share this post


Link to post
Share on other sites
Только что, PEPITOSIK сказал:

Она может и есть, но там возможно не  PlayerInfo

Прочитай мой комментарий в коде и перестань умничать.

Share this post


Link to post
Share on other sites
Только что, 20th century сказал:

Прочитай мой комментарий в коде и перестань умничать.

Да окай

 

Share this post


Link to post
Share on other sites

Мне кажется, что я делаю что-то не так. У меня есть переменная после enum, и когда я решил её поменять появились ошибки. А если я удаляю команду на /me, все ошибки пропадают. Даже не понимаю, что делать.

Share this post


Link to post
Share on other sites

Я же попросил тебя скинуть строку с созданием новой переменной после enum. 
Покажи мне её, либо скинь ЛЮБУЮ другую команду, которая уже имеется в моде.

Share this post


Link to post
Share on other sites

Я просто закрою тему, лучше удалю даже. Не хочется видеть, как из-за моего не знания люди бомбят. 

Share this post


Link to post
Share on other sites

АВТОМАТИЧЕСКИ СФОРМИРОВАННОЕ СООБЩЕНИЕ:

Данная тема была перемещена модерацией или администрацией портала PAWNO-RUS.RU! 

Перемещена из: "Скриптинг PAWN > Проблемы с компиляцией"

Перемещена в: "Прочее > Архив"

 

С уважением, ваш Бот! 

Если вы НЕ согласны с переносом данной темы в раздел "Прочее > Архив", пожалуйтесь на это сообщение в жалобе указав причины вашего недовольства. Спасибо. 

 

Share this post


Link to post
Share on other sites
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

    • youngblaste
      By youngblaste
      Привет. Не нужно писать что команда заезженная - просто выйди с темы.
      И так, постараюсь объяснить как всё работает в этой команде
      Погнали, хлопци!:
      CMD:makeadmin(playerid, params[]){ /* Здесь начинается наша команда */ if(p_info[playerid][pAdmin] < 7) /* Идёт проверка на админку, если наш уровень администратора ниже 7 то ничего не произойдёт (можно сменить на свой уровень) */ return true; /* возвращаем 1 - или же не на ельфийском, то просто ничего не пройзойдёт и команда не продолжит работу */ new name[MAX_PLAYER_NAME], player[MAX_PLAYER_NAME], targetid, admlvl, string[250]; /* Создаем переменные для команды (targetid - кому выдавать будем админку, admlvl - это какой лвл админки будем выдавать), string - ну это стринг :D */ if(sscanf(params, "ud", targetid, admlvl)) /* Делаем проверку на правильное написание команды */ return SendClientMessage(playerid, -1, "{84cd5c}[Подсказка] {ffffff} Используйте команду: /makeadmin [id игрока] [lvl админ-прав]"); /* Если мы ввели не верно команду, то нам возвращает сообщение в чат с подсказкой как ввести команду */ GetPlayerName(playerid, name, MAX_PLAYER_NAME); /* Тут мы получаем наш ник */ GetPlayerName(targetid, player, MAX_PLAYER_NAME); /* А тут мы получаем ник игрока которому выдаем админку */ if(!IsPlayerConnected(targetid)) /* Делаем проверку на то находится ли игрок на сервере, вообще у меня в команде здесь есть проверка на Авторизован ли игрок и она вместе с проверкой на есть ли такой игрок на сервере, но увы, я убрал потому что скорее всего не у всех есть такая фича, это не очень важно но если ты хоть немного шаришь то и сам добавишь проверку */ return SendClientMessage(playerid, -1, "{c23838}[Ошибка] {ffffff} Игрок ещё не вступил в игру"); /* Возвращаем сообщение о том что игрок ещё не вступил в игру - ну вообще должно быть "Игрока с таким ID нету на сервере", но если ты решишь добавить проверку на авторизацию то это будет немного лучше */ if(admlvl < 0 || admlvl > 6) /* Делаем проверку на какой лвл мы хотим поставить игрока, то есть мы не можем выдать лвл адм ниже 0 или выше 6, меняйте на своё если так нужно))) */ return SendClientMessage(playerid, -1, "{c23838}[Ошибка] {ffffff} Увы, нельзя выдавать меньше 0 или выше 6 уровня администратора"); /* Возвращаем сообщение о том что мы не можем выдавать меньше 0 или выше 6 лвл адм */ p_info[targetid][pAdmin] = admlvl; /* И так... p_info у вас может быть разное: PlayerInfo, pInfo, PI, PlayerInformation, p_Info, P_I и т.п., pAdmin так же может быть другим, хотя обычно такое, например: Admin, PlayerAdmin, Player_Admin, Adminka и т.п. */ format(string, sizeof(string), "{b33d3d}{A} Администратор %s[%d] назначил администратором игрока %s[%d]", name, playerid, player, targetid); /* И так, тут мы форматируем string и после отпрам в админ чат))) */ AdmChat(-1, string); /* Ниже вы увидите сток с AdmChat, крч просто отправляем в адм чат */ format(string, sizeof(string), "{ffffff}Администратор %s[%d] назначил Вас администратором %d-го уровня.", name, playerid, admlvl); /* Форматируем опять стринг и потом игроку отправим */ SendClientMessage(targetid, -1, string); /* Устал описовать команду, ну да ладно... Теперь отправляем игроку string */ return true; /* Возвращаем 1, чтобы небыло еррора))) */ } /* Здесь заканчивается наша команда */ /* vk.com/youngblaste - люbлю сkpuптuнг */ А теперь сток AdmChat, добавьте возле своих стоков ну или под командой:
      stock AdmChat(color, const text[]) /* тут не буду много объяснять */ { foreach(new i: Player) if(p_info[i][pAdmin] > 0) SendClientMessage(i, color, text); /* Обычно используют для админ чата... Ну и как всегда... p_info у вас может быть разное: PlayerInfo, pInfo, PI, PlayerInformation, p_Info, P_I и т.п., pAdmin так же может быть другим, хотя обычно такое, например: Admin, PlayerAdmin, Player_Admin, Adminka и т.п. */ } Если Вы заметили какую-то ошибку, пожалуйста отпишите. Надеюсь Вам понравился этот мини-урок, ну а точнее команда /makeadmin.
      Удачи, юные скриптеры