PDA

Просмотр полной версии : [Вопрос] Нужна помощь по команде /hack



Danny_Marcelo
01.12.2015, 18:15
Всем привет уважаемые пользователи Pro-Pawn.В общем я тут написал команду как на Advance RP (не реклама).
И в общем не могу сообразить.
1) Как сделать так,чтобы если игрок оффлайн,то его дом не могли открыть.Чтобы писало (Данный игрок оффлайн или что то в этом роде)
2)Чтобы когда игрока дом взломали,ему писало: "Ваш дом был ограблен"
3)Вот на счет этого не уверен на 100 %.В общем,если у дома нет владельца,то игроку писало: "У данного дома нет владельца"
4) И последнее: если дом открыт,то при вводе команды id дома игроку писало: "этот дом открыт"

Вот код:



if(strcmp(cmd, "/hack", true) == 0)
{
if(!IsGhettor(playerid)) return SendClientMessage(playerid,COLOR_GRAD2, "Вы не бандит");
for(new i = 1;i<121;i++)
{
if(PlayerToKvadrat(playerid,GZInfo[i][gCoords][0], GZInfo[i][gCoords][1],GZInfo[i][gCoords][2],GZInfo[i][gCoords][3]))
{
if(GZInfo[i][gMemberZone] != PlayerInfo[playerid][pMember]) return SendClientMessage(playerid,COLOR_GRAD2, "Вы должны находиться на территории своей банды.");
tmp = strtok(cmdtext, idx);
new xhouseid;
xhouseid = strval(tmp);
if(!strlen(tmp)) return SendClientMessage(playerid, COLOR_GRAD2, "Используйте: /hack [id дома]");
if(xhouseid != INVALID_PLAYER_ID)
{
if(Logged [xhouseid] == false) return SendClientMessage(playerid,COLOR_GREY, "(( Владельца этого дома сейчас нет на сервере ))");
{
new full = 0;
if(xhouseid <= 0 || xhouseid > TotalHouse) return SendClientMessage(playerid, COLOR_GRAD1, "Некорректный id дома");
{
if(IsPlayerInRangeOfPoint(playerid, 3.0,HouseInfo[i][ExitX],HouseInfo[i][ExitY],HouseInfo[i][ExitZ]))
{
new result[64];
new resultat;
resultat = random(2);
if(resultat == 0) format(query, sizeof(query), "%s не удалось взломать дверь у дома №%d", PlayerInfo[playerid][pName],HouseInfo[houseid],result);
if(resultat == 1) format(query, sizeof(query), "%s взломал дверь у дома №%d", PlayerInfo[playerid][pName],HouseInfo[houseid],result);
StatusMessage(playerid, query,result);
SetPlayerPos(playerid,HouseInfo[i][ExitIntX],HouseInfo[i][ExitIntY],HouseInfo[i][ExitIntZ]);
SetPlayerInterior(playerid,HouseInfo[i][hInt]);
SetPlayerVirtualWorld(playerid,HouseInfo[i][hWorld]);
full++;
}
}
if(full == 0) SendClientMessage(playerid, COLOR_GREY, "Вы должны находиться рядом с домом");
}
return true;
}
}
}
}


Заранее огромное спасибо! С меня само-собой плюсы в репу ;)

P.S.Кто захотел потролить,можете сразу проходить лесом.Я знаю что многие скажут,да это элементарно и т.д.Но я серьёзно заниматься pawn начал не так давно.Если бы я мог,то не писал бы темы с вопросами на форумах.Спасибо за понимание! :)

VVWVV
01.12.2015, 18:42
Как сделать так,чтобы если игрок оффлайн,то его дом не могли открыть.Чтобы писало (Данный игрок оффлайн или что то в этом роде)
Данная проверка у вас уже есть.

if(Logged [xhouseid] == false) return SendClientMessage(playerid,COLOR_GREY, "(( Владельца этого дома сейчас нет на сервере ))");



Чтобы когда игрока дом взломали,ему писало: "Ваш дом был ограблен"
Это можно сделать после процесса ограбления.



Вот на счет этого не уверен на 100 %.В общем,если у дома нет владельца,то игроку писало: "У данного дома нет владельца"

И последнее: если дом открыт,то при вводе команды id дома игроку писало: "этот дом открыт"
Это так же делается с помощью проверки.

Danny_Marcelo
01.12.2015, 18:49
Данная проверка у вас уже есть.

if(Logged [xhouseid] == false) return SendClientMessage(playerid,COLOR_GREY, "(( Владельца этого дома сейчас нет на сервере ))");



Это можно сделать после процесса ограбления.




Это так же делается с помощью проверки.

Да вот именно,после добавление вот этой проверки,у меня пишет server uncnown command

Вот скриншот:

http://ihost.pro-pawn.ru/image.php?di=E9WF

Я явно что накосячил в коде.До добавления проверки,код работал.