Здравствуйте, ув. пользователи Pro-Pawn! Я искал электрошокер, но везде был только пистолет-электрошокер. В связи с этим, я решил сделать электрошокер объектом.
В начало мода:
PHP код:
new tazer_status[MAX_PLAYERS char];
Добавим команду:
PHP код:
CMD:tazer(playerid, params[])
{
if(!<ваша проверка на то, авторизовался ли игрок>)
return true;
if(tazer_status{playerid} == 0)
{
SetPlayerAttachedObject(playerid, 0, 18642, 6, 0.06, 0.01, 0.08, 180.0, 0.0, 0.0);
tazer_status{playerid} = 1;
}
else
{
RemovePlayerAttachedObject(playerid, 0);
tazer_status{playerid} = 0;
}
return 1;
}
У кого стоит стандартный командный процессор, изменяем шапку команды на:
PHP код:
if(strcmp(cmdtext, "/tazer", true))
Теперь сделаем так, чтобы игрок мог ударять тазером используя сочетания клавиш ПКМ+ЛКМ.
- Нажимаем ПКМ и наводим на игрока, и если над головой у него загорается зеленый маркер, жмем ЛКМ.
Добавляем в OnPlayerKeyStateChange:
PHP код:
if(newkeys & KEY_FIRE)
{
if(tazer_status{playerid} == 1)
{
new targetplayer = GetPlayerTargetPlayer(playerid);
if(targetplayer != INVALID_PLAYER_ID)
{
TogglePlayerControllable(targetplayer, 0);
SetTimerEx("Unfreeze", 10000, 0, "%d", targetplayer);
}
}
}
Добавим в конец мода:
PHP код:
forward Unfreeze(playerid);
public Unfreeze(playerid)
return TogglePlayerControllable(playerid, 1);
Если я что-то не понятно написал, пишите в комментарии, я все объясню :)
Также можно добавить проверку на то, состоит ли игрок в законе, чтобы электрошокер был доступен только им. Или можно добавить покупку электрошокера в магазин 24/7.
Спасибо пользователю [ForD] за то, что подсказал название проверки, отвечающую за зеленый маркер над головой игрока.