CMD:hp(playerid, vehicleid)
{
new Float:hp = GetPlayerHealth(playerid, hp);
new Float:ahp = GetPlayerArmour(playerid, ahp);
new Float:vhp = GetVehicleHealth(vehicleid, vhp);
new vehid = GetPlayerVehicleID(playerid);
if (GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
{
if (hp < 100 && vhp < 1000){
RepairVehicle(vehid);
SetPlayerHealth(playerid, 100);
SendClientMessage(playerid, COLOR_GREEN, "Здоровье восстановлено, машина починена.");
}else if (hp == 100 && vhp != 1000){
RepairVehicle(vehid);
SendClientMessage(playerid, COLOR_GREEN, "Машина починена. Восстановление здоровья не требуется.");
}else{SendClientMessage(playerid, COLOR_GREEN, "Третее условие");
}
}
else if (GetPlayerState(playerid) == PLAYER_STATE_ONFOOT)
{
if (hp <= 100 && ahp == 0)
{
SetPlayerHealth(playerid, 100);
SendClientMessage(playerid, COLOR_GREEN, "Здоровье восстановлено.");
}
else if (hp < 100 && ahp < 100)
{
SetPlayerHealth(playerid, 100);
SetPlayerArmour(playerid, 100);
SendClientMessage(playerid, COLOR_GREEN, "Здоровье и броня восстановлены.");
}
else
{
SendClientMessage(playerid, COLOR_GREEN, "Условие после всех IF");
}
}
else SendClientMessage(playerid, COLOR_RED, "Ошибка!");
return 1;
}
CMD:hp(playerid, vehicleid)
{
new Float:hp = GetPlayerHealth(playerid, hp);
new Float:ahp = GetPlayerArmour(playerid, ahp);
new Float:vhp = GetVehicleHealth(vehicleid, vhp);
if(hp < 100)
{
SetPlayerHealth(playerid, 100);
SendClientMessage(playerid, COLOR_GREEN, "Здоровье.");
}
if(ahp < 100)
{
SetPlayerArmour(playerid, 100);
SendClientMessage(playerid, COLOR_GREEN, "Броня");
}
if(vehicleid && vhp < 1000)
{
RepairVehicle(vehicleid);
SendClientMessage(playerid, COLOR_GREEN, "Машина");
}
return 1;
}
PHP код:
[upd] не заметил что у тебя ранее vehicleid уже объявлена |
if (GetPlayerState(playerid) == (PLAYER_STATE_ONFOOT || PLAYER_STATE_DRIVER))
Код смотри сначала, советчик.
0x002, у тебя в OnPlayerUpdate нигде return 0 нет? Обычно если где-то такое условие есть, то может пробивать и тогда GetPlayerState всегда одно и то же получает. |
public OnPlayerUpdate(playerid)
{
return 1;
}
Вернемся к коду: там просто имеется такого рода код, и все:
PHP код:
|
new Float:vhp = GetVehicleHealth(vehicleid, vhp); new vehid = GetPlayerVehicleID(playerid); |
CMD:hp(playerid, vehicleid)
{
new Float:hp, Float:ahp, Float:vhp, pstate = GetPlayerState(playerid);
GetPlayerHealth(playerid, hp);
GetPlayerArmour(playerid, ahp);
vehicleid = GetPlayerVehicleID(playerid);
GetVehicleHealth(vehicleid, vhp);
switch(pstate)
{
case PLAYER_STATE_DRIVER:
{
if (hp < 100.0 && vhp < 1000.0)
{
RepairVehicle(vehicleid);
SetPlayerHealth(playerid, 100.0);
SendClientMessage(playerid, COLOR_GREEN, "Здоровье восстановлено, машина починена.");
return 1;
}
else if (hp == 100.0 && vhp != 1000.0)
{
RepairVehicle(vehicleid);
SendClientMessage(playerid, COLOR_GREEN, "Машина починена. Восстановление здоровья не требуется.");
return 1;
}
else return SendClientMessage(playerid, COLOR_GREEN, "Третее условие");
}
case PLAYER_STATE_ONFOOT:
{
if(hp <= 100.0 && ahp < 1.0)
{
SetPlayerHealth(playerid, 100.0);
SendClientMessage(playerid, COLOR_GREEN, "Здоровье восстановлено.");
return 1;
}
else if(hp < 100.0 && ahp < 100.0)
{
SetPlayerHealth(playerid, 100.0);
SetPlayerArmour(playerid, 100.0);
SendClientMessage(playerid, COLOR_GREEN, "Здоровье и броня восстановлены.");
return 1;
}
else return SendClientMessage(playerid, COLOR_GREEN, "Условие после всех IF");
}
default: return SendClientMessage(playerid, COLOR_RED, "Ошибка!");
}
return 1;
}
CMD:hp(playerid, vehicleid)
{
vehicleid = GetPlayerVehicleID(playerid);
new Float:hp;
GetPlayerHealth(playerid, hp);
new Float:ahp;
GetPlayerArmour(playerid, ahp);
new Float:vhp;
GetVehicleHealth(vehicleid, vhp);
new pstate = GetPlayerState(playerid);
switch(pstate)
{
case PLAYER_STATE_DRIVER:
{
if (hp < 100.0 && vhp < 1000.0)
{
RepairVehicle(vehicleid);
SetPlayerHealth(playerid, 100.0);
SendClientMessage(playerid, COLOR_GREEN, "* Iaoeia ii?eiaia, cai?iaua ainnoaiiaeaii.");
}
else if (hp == 100.0 && vhp < 1000.0)
{
RepairVehicle(vehicleid);
SendClientMessage(playerid, COLOR_GREEN, "* Iaoeia ii?eiaia. Ainnoaiiaeaiea cai?iauy ia o?aaoaony.");
}
else if (hp < 100.0 && vhp == 1000.0)
{
SetPlayerHealth(playerid, 100.0);
SendClientMessage(playerid, COLOR_GREEN, "* Cai?iaua ainnoaiiaeaii. Iaoeia a ii?eiea ia io?aaaony.");
}
else SendClientMessage(playerid, COLOR_YELLOW, "* Ii?eiea iaoeiu e ainnoaiiaeaiea cai?iauy ia o?aaoaony");
}
case PLAYER_STATE_ONFOOT:
{
if(hp < 100.0 && ahp < 100.0)
{
SetPlayerHealth(playerid, 100.0);
SetPlayerArmour(playerid, 100.0);
SendClientMessage(playerid, COLOR_GREEN, "* Cai?iaua e a?iiy ainnoaiiaeaiu.");
}
else if(hp == 100.0 && ahp < 100.0)
{
SetPlayerArmour(playerid, 100.0);
SendClientMessage(playerid, COLOR_GREEN, "* A?iiy ainnoaiiaeaia. Ainnoaiiaeaiea cai?iauy ia o?aaoaony.");
}
else if (hp < 100.0 && ahp == 100.0)
{
SetPlayerHealth(playerid, 100.0);
SendClientMessage(playerid, COLOR_GREEN, "* Cai?iaua ainnoaiiaeaii. Ainnoaiiaeaiea a?iie ia o?aaoaony.");
}
else SendClientMessage(playerid, COLOR_YELLOW, "* Ainnoaiiaeaiea a?iie e cai?iauy ia o?aaoaony!");
}
default: SendClientMessage(playerid, COLOR_RED, "* Nenoaiiay ioeaea, ia?aoeoanu e aaieieno?aoi?o!");
}
return 1;
}
new Float:hp = GetPlayerHealth(playerid, hp); |