Форум Pawn-Wiki.Ru - Воплоти мечту в реальность!: Павно компилер выдает ошибку, если пишу данную кмд - Форум Pawn-Wiki.Ru - Воплоти мечту в реальность!

Перейти к содержимому

Страница 1 из 1
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

[ Pawn ]
Павно компилер выдает ошибку, если пишу данную кмд

#1
Пользователь офлайн   Teyk 

  • Прохожий
  • Вставить ник
  • Раскрыть информацию
Приветствую всех!
Я начинающий павн-скриптер, решил сделать команду, но столкнулся с проблемой, может я что-то не так написал?
public OnPlayerCommandText(playerid, cmdtext[])
{
	if(strcmp(cmd, "/heal", true) == 0);
    new player1;
    player1 = strval(params[0]);
    if(IsPlayerConnected(player1))
    {
    	if(IsPlayerAdmin(playerid))
	}
		{
    		SetPlayerHealth(player1,100);
    	}
    	else SendClientMessage(playerid,0xFFFFF00,"Вы не являетесь RCON-Админом!");
    }
	else SendClientMessage(playerid,0xFFFFF00,"Игрок не в сети!");
    return 1;
}

0

#2
Пользователь офлайн   CL1FF 

  • Местный
  • Вставить ник
  • Раскрыть информацию
1. Советую командный процессор использовать, по типу zcmd.
2. Вот так будет правильно:

if(strcmp(cmd, "/heal", true) == 0)
{
    new player1;
    player1 = strval(params[0]);
    if(IsPlayerConnected(player1))
    {
        if(IsPlayerAdmin(playerid))
        {
            SetPlayerHealth(player1,100);
        }
        else SendClientMessage(playerid,0xFFFFF00,"Вы не являетесь RCON-Админом!");
    }
    else SendClientMessage(playerid,0xFFFFF00,"Игрок не в сети!");
    return 1;
}

Сообщение отредактировал CL1FF: 16 сентября 2020 - 01:08

0

#3
Пользователь офлайн   Teyk 

  • Прохожий
  • Вставить ник
  • Раскрыть информацию

Просмотр сообщенияCL1FF (16 сентября 2020 - 01:08) писал:

Нажмите сюда, чтобы прочитать это сообщение. [Показать]

Вот что мне выдает павно компилер
error 017: undefined symbol "cmd"
error 017: undefined symbol "params"
warning 215: expression has no effect
error 001: expected token: ";", but found "]"
error 029: invalid expression, assumed zero
fatal error 107: too many error messages on one line

0

#4
Пользователь офлайн   CL1FF 

  • Местный
  • Вставить ник
  • Раскрыть информацию

Просмотр сообщенияTeyk (16 сентября 2020 - 01:12) писал:

Нажмите сюда, чтобы прочитать это сообщение. [Показать]


Тупанул немного, уже много лет стандартными командами не пользовался.

Вот готовая команда:

    new tmp[255], cmd[255], idx, player1;
    cmd = strtok(cmdtext, idx);
    if(strcmp(cmd, "/heal", true) == 0)
    {
        if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, 0xFFFFF00, "Вы не являетесь RCON-Админом!");
        if(!IsPlayerConnected(player1)) SendClientMessage(playerid, 0xFFFFF00, "Игрок не в сети!");

        tmp = strtok(cmdtext, idx);
        if(!strlen(tmp)) return SendClientMessage(playerid, 0x919191FF, "Использование: /heal id");
        player1 = strval(tmp);
        SetPlayerHealth(player1, 100); 
        return true;
   }

0

#5
Пользователь офлайн   DeimoS 

  • Evil Scripter
  • Вставить ник
  • Раскрыть информацию
Не трать время на такие команды, качай Pawn.CMD и учись писать команды под него.
0

#6
Пользователь офлайн   Teyk 

  • Прохожий
  • Вставить ник
  • Раскрыть информацию

Просмотр сообщенияCL1FF (16 сентября 2020 - 01:29) писал:

Нажмите сюда, чтобы прочитать это сообщение. [Показать]

Либо это я тупой, либо что-то тут не так:
warning 217: loose indentation
error 017: undefined symbol "strtok"
error 033: array must be indexed (variable "cmd")
error 017: undefined symbol "strtok"
error 033: array must be indexed (variable "tmp")
warning 203: symbol is never used: "idx"
warning 209: function "OnPlayerCommandText" should return a value

0

#7
Пользователь офлайн   CL1FF 

  • Местный
  • Вставить ник
  • Раскрыть информацию

Просмотр сообщенияTeyk (16 сентября 2020 - 10:55) писал:

Нажмите сюда, чтобы прочитать это сообщение. [Показать]



Покажи полный паблик свой
0

#8
Пользователь офлайн   Mavi 

  • Пользователь
  • Вставить ник
  • Раскрыть информацию
Не понимаю зачем не хочешь использовать командные процессоры, в пространстве всемирной паутины полно уроков.

public OnPlayerCommandText(playerid, cmdtext[])
{
	new cmd[128], idx;
	cmd = strtok(cmdtext, idx);
 
	if(!strcmp(cmd, "/heal", true))
	{
                if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid,0xFFFFF00,"Вы не являетесь RCON-Админом!");

		new id = strval(strtok(cmdtext, idx));
 
		if(!(0 <= id < MAX_PLAYERS)) return SendClientMessage(playerid, 0xFFFFFFFF, "Используйте /heal [playerid]");
                if(!IsPlayerConnected(id)) return SendClientMessage(playerid,0xFFFFF00,"Игрок не в сети");

                SetPlayerHealth(id, 100.0);
		return SendClientMessage(playerid,0xFF00FF00, "Здоровье установлено");
	}
	return 0;
}


Метод strtok - https://wiki.sa-mp.com/wiki/Strtok

Сообщение отредактировал Mavi: Вчера, 20:24

0

Поделиться темой:


Страница 1 из 1
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

1 человек читают эту тему
0 пользователей, 1 гостей, 0 скрытых пользователей


Яндекс.Метрика