Sziasztok.
Szeretnek segitseget kerni, mert nemtudom, hogy mi lehet a baj.
A flip kulcs vagyis az Y key jol mukodik ki is irja amikor nem vagy autoban meg minden, de a masik a 2-os gomb is mukodik megjavitsa a kocsit de ha nincs kocsiban akkor nem ir ki semmit.
Mar sok mindent megprobaltam de nemtudom, hogy mi lehet a baj.
KOszonom elore is. :)
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
if(newkeys & KEY_SUBMISSION)
{
new vehicleid = GetPlayerVehicleID(playerid);
if(IsPlayerInVehicle(playerid, vehicleid))
{
SetVehicleHealth(vehicleid,1000.0);
RepairVehicle(GetPlayerVehicleID(playerid));
PlayerPlaySound(playerid, 1133, 0.0, 0.0, 0.0);
SendClientMessage(playerid,sarga,\"A Te Jarmuved Sikeresen Megjavitva!\");
}
else SendClientMessage(playerid, 0xFFFF00FF ,\"Nem vagy jármûben!\");
}
if(newkeys & KEY_YES)
{
if (IsPlayerInAnyVehicle(playerid))
{
new Float:X,Float:Y,Float:Z,Float:Angle;
GetVehiclePos(GetPlayerVehicleID(playerid),X,Y,Z);
GetVehicleZAngle(GetPlayerVehicleID(playerid),Angle);
SetVehiclePos(GetPlayerVehicleID(playerid),X,Y,Z+2);
SetVehicleZAngle(GetPlayerVehicleID(playerid),Angle);
SendClientMessage(playerid, 0x9900FFAA,\"Jármu felálítva\");
}
else SendClientMessage(playerid, 0xFFFF00FF ,\"Nem vagy jármûben!\");
}
return 1;
}
Igy is probaltam de igy sem mukodik, es ha csak ezt teszem be key-nek tobbet nem akkor sem mukodik.
if(newkeys & KEY_SUBMISSION)
{
if(IsPlayerInVehicle(playerid))
{
RepairVehicle(GetPlayerVehicleID(playerid));
PlayerPlaySound(playerid, 1133, 0.0, 0.0, 0.0);
SendClientMessage(playerid,sarga,\"A Te Jarmuved Sikeresen Megjavitva!\");
}
else SendClientMessage(playerid, 0xFFFF00FF ,\"Nem vagy jármûben!\");
}
Javítottam a tag-eket.
if( IsPlayerInAnyVehicle( playerid ) ) return SendClientMessage( playerid, -1, \"{ff0000}Hiba: {ffffff}Nem ülsz jármûben így nem tudod használni ezt a funkciót!\" );
Használd a fenti megoldást mivel sokkal rövidebb, majd töröld az else visszatérést és a sorok számán is spórolsz. ;)
Javított változat:
if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage( playerid, -1, \"{ff0000}Hiba: {ffffff}Nem ülsz jármûben Így nem tudod használni ezt a funkciót!\" );
ZyZu verziója akkor írná ki, ha jármûben van és tovább engedné ha nincs. Ez annyiban külömbözik, hogy van egy \'!\' jel, hogy tagadja.
azért kell a \'return\' mert az megállítja a folyamatot amennyiben a feltétel igaz! Ha a feltétel hamis, akkor tovább engedi.
Szerintem felesleges kiiratni hogy Nincs jármûben a játékos, vagy hogy meg lett javítva a jármû..
próbáld így:
#define PRESSED(%0) \\
(((newkeys & (%0)) == (%0)) && ((oldkeys & (%0)) != (%0)))
public OnPlayerKeyStateChange( playerid, newkeys, oldkeys ) {
if(PRESSED(KEY_SUBMISSION) && IsPlayerInAnyVehicle(playerid)) {
new vehid = GetPlayerVehicleID(playerid);
RepairVehicle(vehid);
PlayerPlaySound(playerid, 1133, 0.0, 0.0, 0.0);
}
return 1;
}