GTA Közösség - A magyar GTA fórum

San Andreas Multiplayer (SA-MP) => SA-MP: Szerverfejlesztés => Segítségkérés => A témát indította: eniko0513 - 2014. augusztus 23. - 07:16:15

Cím: OnPlayerKeyStateChange szoveg kiiras
Írta: eniko0513 - 2014. augusztus 23. - 07:16:15
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.
Cím: OnPlayerKeyStateChange szoveg kiiras
Írta: ZyZu. - 2014. augusztus 23. - 07:25:10
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. ;)
Cím: OnPlayerKeyStateChange szoveg kiiras
Írta: BackUP - 2014. augusztus 23. - 09:04:44
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.
Cím: OnPlayerKeyStateChange szoveg kiiras
Írta: eniko0513 - 2014. augusztus 23. - 10:41:58
Koszonom szepen a valaszokat de a baj forrasa nem valtozott ugyan ugy van h a 2os gombbal nem irja ki h nincs autoba.
Cím: OnPlayerKeyStateChange szoveg kiiras
Írta: Flash - 2014. augusztus 23. - 11:09:12
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;
}
Cím: OnPlayerKeyStateChange szoveg kiiras
Írta: BackUP - 2014. augusztus 23. - 11:14:41
Azért nem írja ki gondolom, mert a kettes gombot csak jármûvekben tudod használni. Wikin kint vannak a gombok, ott látod mit gyalog, mit jármûben és melyiket mindkét státuszban tudod használni.
Cím: OnPlayerKeyStateChange szoveg kiiras
Írta: slre14 - 2014. augusztus 23. - 12:24:29
Szerintem Probálj meg más bilenyütt bele irnni ne y betû legyen hanem pl x vagy bármi csak nem az szerintem de nem akkarok hülyeséget mondani
off


bocs az ékezeti hibárkért telefonrol van
Cím: OnPlayerKeyStateChange szoveg kiiras
Írta: eniko0513 - 2014. augusztus 23. - 14:52:32
Koszonom a valaszokat :)