-
Sziasztok.
Akadna egy kis gondom ezzen a fügvénnyel.
A kód így néz ki:
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
if(!IsPlayerInAnyVehicle(playerid))
{
if(pSpeedBoost[playerid] == true)
{
if(newkeys & KEY_SPRINT)
{
new Float:x, Float:y, Float:z;
GetPlayerVelocity(playerid,x,y,z);
SetPlayerVelocity(playerid,x+(x/4),y+(y/4),z+(z/4));
}
}
if(BiggestJump[playerid] == true)
{
if(newkeys & KEY_JUMP)
{
SetPlayerVelocity(playerid,0.0,0.0,0.2);
}
}
}
return 1;
}
De sajnos nem mûködik. Én írtam el valamit, vagy bugos a SetPlayerVelocity függvény?
-
SetPlayerVelocity(playerid,x+x(/4),y+(y/4),z+(z/4));
Ez nem inkább
SetPlayerVelocity(playerid,x+(x/4),y+(y/4),z+(z/4));
?
-
Nem teljesen a módból másoltam most, csak úgy írtam itt is meg, ahogyan ott van. Kössz, hogy szóltál, de ott nincs elírva.
-
Talán így:
#define PRESSED(%0) \\
(((newkeys & (%0)) == (%0)) && ((oldkeys & (%0)) != (%0)))
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
if(!IsPlayerInAnyVehicle(playerid))
{
if(pSpeedBoost[playerid] == true)
{
if(PRESSED(KEY_SPRINT))
{
new Float:x, Float:y, Float:z;
GetPlayerVelocity(playerid,x,y,z);
SetPlayerVelocity(playerid,x+(x/4),y+(y/4),z+(z/4));
}
}
if(BiggestJump[playerid] == true)
{
if(PRESSED( KEY_SPRINT ))
{
SetPlayerVelocity(playerid,0.0,0.0,0.2);
}
}
}
return 1;
}
-
PRESSED definíció és newkeys & KEY_AKARMI ugyanaz, de egy próbát megér.
-
PRESSED definíció és newkeys & KEY_AKARMI ugyanaz, de egy próbát megér.
A pressed az amikor lenyomva tartja
A newkeys az pedig egy nyomásra
Tudomásom szerint
-
Rosszul tudod. :) SA-MP Wikirõl származik a PRESSED, ahol megemlítik még a HOLDING és a RELEASED defínciót is. Most leírnám ezeknek jelentését:
PRESSED = Megnyomta a gombot
HOLDING = Nyomva tartja a gombot
RELEASED = Elengedte a gombot
-
PRESSED definíció és newkeys & KEY_AKARMI ugyanaz, de egy próbát megér.
A pressed az amikor lenyomva tartja
A newkeys az pedig egy nyomásra
Tudomásom szerint
[/quote]
pressed = lenyomva
Tehát ugyanaz,csak a definíció még ellenörzi az oldkeys-t is.
Most esett le!SZerintem ez volt a hiba:
if(newkeys & KEY_JUMP == KEY_JUMP)
nem
if(newkeys & KEY_JUMP)
Szerk:Megelõztek.
-
PRESSED definíció és newkeys & KEY_AKARMI ugyanaz, de egy próbát megér.
A pressed az amikor lenyomva tartja
A newkeys az pedig egy nyomásra
Tudomásom szerint
[/quote]
pressed = lenyomva
Tehát ugyanaz,csak a definíció még ellenörzi az oldkeys-t is.
Most esett le!SZerintem ez volt a hiba:
if(newkeys & KEY_JUMP == KEY_JUMP)
nem
if(newkeys & KEY_JUMP)
Szerk:Megelõztek.
[/quote]
Már bocs, de ez hülyeség, mellesleg errort kapnék rá.
-
A kódban nincs hiba. Talán a változókkal rontottál el valamit.
-
Már bocs,de miért lenne hülyeség?Érdekes,nekem nincs rá error,és nézd csak meg jobban a defiíciót:
#define PRESSED(%0) \\
(((newkeys & (%0)) == (%0)) && ((oldkeys & (%0)) != (%0)))
newkeys & (%0)) == (%0))
newkeys & KEY_JUMP == KEY_JUMP
A () jelek most nem számítanak.
-
Már bocs,de miért lenne hülyeség?Érdekes,nekem nincs rá error,és nézd csak meg jobban a defiíciót:
#define PRESSED(%0) \\
(((newkeys & (%0)) == (%0)) && ((oldkeys & (%0)) != (%0)))
newkeys & (%0)) == (%0))
newkeys & KEY_JUMP == KEY_JUMP
A () jelek most nem számítanak.
Mûveletek végzésénél (mint itt is), igenis számítanak, különben össze kavarodik az egész.
-
Teszteltem, de semmi. Változókat átnézem.
-
Már bocs,de miért lenne hülyeség?Érdekes,nekem nincs rá error,és nézd csak meg jobban a defiíciót:
#define PRESSED(%0) \\
(((newkeys & (%0)) == (%0)) && ((oldkeys & (%0)) != (%0)))
newkeys & (%0)) == (%0))
newkeys & KEY_JUMP == KEY_JUMP
A () jelek most nem számítanak.
Mûveletek végzésénél (mint itt is), igenis számítanak, különben össze kavarodik az egész.
[/quote]
Jó,de félreértetél :D
Én úgyértettem,nézze meg hogy zárójelek nélkül a 2 kód ugyanaz,csak az összehasonlítás kedvéért.
Egyébként igazad van,és úgylátszik még mindig nem mûködik...
-
Tudom, utána vettem észre, hogya a PRESSED is így van definiálva, azért húztam át, hogy errort írna rá.
Am, a változókban se találok hibát. .\\
-
Témát zárom, rájöttem mi a gond. :)
Mivel én a földön próbálgattam, így a Z koordináta mindig is 0 volt. Így pedig a fügvény nem futott le rendesem.
E: Hogy kell zárni? XD
-
Témát zárom, rájöttem mi a gond. :)
Mivel én a földön próbálgattam, így a Z koordináta mindig is 0 volt. Így pedig a fügvény nem futott le rendesem.
E: Hogy kell zárni? XD
Lenti linkeknél van, keresd meg. ;D