PDA

Просмотр полной версии : [Вопрос] Восстановить изначальный вид T/C



Straik32423
10.07.2015, 01:28
Привет. Такой вопрос. Допустим, я хочу сделать команду /hp.
Если человек в машине, то починить машину и установить игроку 244 хп.
Если же игрок не в машине, тогда просто установить ему 244 хп.
И вот сам вопрос, как вернуть машине ее первоначальный вид? То есть, когда я ввожу /hp, моей машине ставится 1000 хп, но при этом она выглядит разломанной. С помощью какой функции ей можно придать целый вид?

CMD:hp(playerid, params[])
{
if(pInfo[playerid][pLogged] == false) return SCM(playerid, COLOR_RED, "[Server]: Вы не авторизованы!");
if(pInfo[playerid][pAdmin] < 3) return SCM(playerid, COLOR_RED, "Вам недоступна данная команда!");
if(GetPlayerState(playerid) == PLAYER_STATE_ONFOOT) return SetPlayerHealth(playerid, 244.0);
new vehid = GetPlayerVehicleID(playerid);
SetVehicleHealth(vehid, 1000);
SetPlayerHealth(playerid, 244.0);
return true;
}

Wise
10.07.2015, 09:59
CMD:hp(playerid, params[])
{
if(pInfo[playerid][pLogged] == false) return SCM(playerid, COLOR_RED, "[Server]: Вы не авторизованы!");
if(pInfo[playerid][pAdmin] < 3) return SCM(playerid, COLOR_RED, "Вам недоступна данная команда!");
if(IsPlayerInAnyVehicle(playerid)) RepairVehicle(GetPlayerVehicleID(playerid));
SetPlayerHealth(playerid, 244.0);
return 1;
}
Держи. Убрал лишний код.
Будет работать, как ты описал выше.

$continue$
10.07.2015, 13:19
CMD:hp(playerid, params[])
{
if(pInfo[playerid][pLogged] == false) return SCM(playerid, COLOR_RED, "[Server]: Вы не авторизованы!");
if(pInfo[playerid][pAdmin] < 3) return SCM(playerid, COLOR_RED, "Вам недоступна данная команда!");
if(IsPlayerInAnyVehicle(playerid)) RepairVehicle(GetPlayerVehicleID(playerid));
SetPlayerHealth(playerid, 244.0);
return 1;
}
Держи. Убрал лишний код.
Будет работать, как ты описал выше.

Скорее всего SetPlayerHealt тоже выполниться... Надо if/else


CMD:hp(playerid, params[])
{
if(pInfo[playerid][pLogged] == false)
return SendClientMessage(playerid, COLOR_RED, "[Server]: Вы не авторизованы!");
if(pInfo[playerid][pAdmin] < 3)
return SendClientMessage(playerid, COLOR_RED, "Вам недоступна данная команда!");
new vehicle_id = GetPlayerVehicleID(playerid);
if(vehicle_id == 0)
{
const Float: PLAYER_HEALTH = 244.0;
SetPlayerHealth(playerid, PLAYER_HEALTH);
}
else return RepairVehicle(vehicle_id);
}

Wise
10.07.2015, 14:02
Скорее всего SetPlayerHealt тоже выполниться... Надо if/else


CMD:hp(playerid, params[])
{
if(pInfo[playerid][pLogged] == false)
return SendClientMessage(playerid, COLOR_RED, "[Server]: Вы не авторизованы!");
if(pInfo[playerid][pAdmin] < 3)
return SendClientMessage(playerid, COLOR_RED, "Вам недоступна данная команда!");
new vehicle_id = GetPlayerVehicleID(playerid);
if(vehicle_id == 0)
{
const Float: PLAYER_HEALTH = 244.0;
SetPlayerHealth(playerid, PLAYER_HEALTH);
}
else return RepairVehicle(vehicle_id);
}


Так он и хотел так сделать. Прочти внимательно.

Если человек в машине, то починить машину и установить игроку 244 хп.
Если же игрок не в машине, тогда просто установить ему 244 хп.
Мы здесь не так часто используем функцию GetPlayerVehicleID. Создавать переменную бессмысленно.

$continue$
10.07.2015, 14:19
Так он и хотел так сделать. Прочти внимательно.

Мы здесь не так часто используем функцию GetPlayerVehicleID. Создавать переменную бессмысленно.
И вправду не дочитал...
Тогда так, на счет переменной она используется 2 раза, зачем ей вызывать 2 раза?
Так сделано что бы не вызывать ещё одну нативную функцию...


CMD:hp(playerid, params[])
{
if(pInfo[playerid][pLogged] == false)
return SendClientMessage(playerid, COLOR_RED, "[Server]: Вы не авторизованы!");
if(pInfo[playerid][pAdmin] < 3)
return SendClientMessage(playerid, COLOR_RED, "Вам недоступна данная команда!");

new vehicle_id = GetPlayerVehicleID(playerid);
// для удобство, что бы не трогая функцию, можно было изминить значение для ХП
const Float: PLAYER_HEALTH = 244.0;

if(vehicle_id != 0)
RepairVehicle(vehicle_id);
SetPlayerHealth(playerid, PLAYER_HEALTH);
return 1;
}