PDA

Просмотр полной версии : [Вопрос] Нету взаимодействие с игроком



Айболит
06.06.2014, 22:41
Сделал команду, и хочу что бы когда написал например /w [ID], то выдало определенное значение игроку, но выдает мне, не знаю что я неправильно сделал.



if (strcmp("/w", cmdtext, true, 10) == 0)
for(new i=0;i<MAX_PLAYERS;i++)
{
W(playerid);
Player[playerid][pWarning] = 1;
if(Player[playerid][pWarning] != INVALID_PLAYER_ID)
{
Send(playerid,0xFF00000,"Вы дали игроку варн.");
}

L0ndl3m
06.06.2014, 23:26
if(strcmp(cmdtext, "/w", true, 2) == 0)
{
if(cmdtext[2] == ' ' || cmdtext[3] == EOS)
return SendClientMessage(playerid, -1, "Используйте: /w [targetid]");

new
targetid = strval(cmdtext[3])
;

if(IsPlayerConnected(targetid) == 0)
return SendClientMessage(playerid, -1, "Такого игрока нет на сервере.");

Player[targetid][pWarning] = 1;
return SendClientMessage(playerid, -1, "Вы выдали игроку предупреждение.");
}

Айболит
06.06.2014, 23:38
Та не, наверно это не то, мне 4 эрора выдало..

- - - Добавлено - - -

error 017: undefined symbol "extract"
error 029: invalid expression, assumed zero
error 033: array must be indexed (variable "cmdtext")
fatal error 107: too many error messages on one line

Compilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase


4 Errors.

L0ndl3m
06.06.2014, 23:44
Та не, наверно это не то, мне 4 эрора выдало..

- - - Добавлено - - -

error 017: undefined symbol "extract"
error 029: invalid expression, assumed zero
error 033: array must be indexed (variable "cmdtext")
fatal error 107: too many error messages on one line

Compilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase


4 Errors.

Что-то я сегодня совсем, обновил пост.

Айболит
07.06.2014, 00:03
Не работает

Gressie
07.06.2014, 00:20
Советую переселяться на DC_CMD либо ZCMD.
По теме:

CMD:w(playerid, params[])
{
if(sscanf(params,"u", params[0])) return SendClientMessage(playerid, -1, "Введите: /w [id игрока или имя игрока]");
if(!IsPlayerConnected(params[0])) return SendClientMessage(playerid, -1, "Игрок не найден");
Player[params[0]][pWarning] += 1;
SendClientMessage(playerid,0xFF00000,"Вы дали игроку варн.");
return 1;
}

L0ndl3m
07.06.2014, 00:25
Советую переселяться на DC_CMD либо ZCMD.
По теме:

CMD:w(playerid, params[])
{
if(sscanf(params,"u", params[0])) return SendClientMessage(playerid, -1, "Введите: /w [id игрока или имя игрока]");
if(!IsPlayerConnected(params[0])) return SendClientMessage(playerid, -1, "Игрок не найден");
Player[params[0]][pWarning] += 1;
SendClientMessage(playerid,0xFF00000,"Вы дали игроку варн.");
return 1;
}

Можно и так:


CMD:w(playerid, params[])
{
extract params -> new player: targetid; else
return SendClientMessage(playerid, -1, "Используйте: /w [targetid]");

if(IsPlayerConnected(targetid) == 0)
return SendClientMessage(playerid, -1, "Такого игрока нет на сервере.");

Player[targetid][pWarning] = 1;
return SendClientMessage(playerid, -1, "Вы дали игроку варн.");
}


А хотя это не решает.

Айболит
07.06.2014, 00:41
Советую переселяться на DC_CMD либо ZCMD.
По теме:

CMD:w(playerid, params[])
{
if(sscanf(params,"u", params[0])) return SendClientMessage(playerid, -1, "Введите: /w [id игрока или имя игрока]");
if(!IsPlayerConnected(params[0])) return SendClientMessage(playerid, -1, "Игрок не найден");
Player[params[0]][pWarning] += 1;
SendClientMessage(playerid,0xFF00000,"Вы дали игроку варн.");
return 1;
}

Работает,можешь объяснить что за то отвечает.. буду признателен.

Gressie
07.06.2014, 00:44
Работает,можешь объяснить что за то отвечает.. буду признателен.

Ознакомься с этой темой. (http://pro-pawn.ru/showthread.php?1028-DC_CMD-v2-8-%2823-03-14%29)

Flime
07.06.2014, 01:07
Работает,можешь объяснить что за то отвечает.. буду признателен.

CMD:w(playerid, params[]) //Команда
{
if(sscanf(params,"u", params[0])) return SendClientMessage(playerid, -1, "Введите: /w [id игрока или имя игрока]");//Если игрок не полностью ввел команду, то есть нет значений то выводим данное сообщение
if(!IsPlayerConnected(params[0])) return SendClientMessage(playerid, -1, "Игрок не найден");//Если игрока с таким ид не существует на сервере то выводим сообщение
Player[params[0]][pWarning] += 1;//Присваиваем игроку значение [pWarning] += 1
SendClientMessage(playerid,0xFF00000,"Вы дали игроку варн.");//Выводим сообщение игроку
return 1;
}
params[0] - это игрок над которым мы совершаем действия