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: M4tr1X - 2010. augusztus 22. - 22:22:18

Cím: GetPlayerVelocity hiba
Írta: M4tr1X - 2010. augusztus 22. - 22:22:18
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?
Cím: GetPlayerVelocity hiba
Írta: ChuckNorris - 2010. augusztus 22. - 22:28:38
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));

 
?
Cím: GetPlayerVelocity hiba
Írta: M4tr1X - 2010. augusztus 22. - 22:35:20
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.
Cím: GetPlayerVelocity hiba
Írta: ChuckNorris - 2010. augusztus 22. - 22:47:06
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;
}
Cím: GetPlayerVelocity hiba
Írta: M4tr1X - 2010. augusztus 22. - 22:49:01
PRESSED definíció és newkeys & KEY_AKARMI ugyanaz, de egy próbát megér.
Cím: GetPlayerVelocity hiba
Írta: maark - 2010. augusztus 22. - 22:54:39
Idézetet írta: M4tr1X date=1282510141\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"2943\" data-ipsquote-contentclass=\"forums_Topic
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
Cím: GetPlayerVelocity hiba
Írta: M4tr1X - 2010. augusztus 22. - 22:56:34
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
Cím: GetPlayerVelocity hiba
Írta: ChuckNorris - 2010. augusztus 22. - 22:57:38
Idézetet írta: maark date=1282510479\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"2943\" data-ipsquote-contentclass=\"forums_Topic


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.
Cím: GetPlayerVelocity hiba
Írta: M4tr1X - 2010. augusztus 22. - 23:01:28
Idézetet írta: ChuckNorris date=1282510658\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"2943\" data-ipsquote-contentclass=\"forums_Topic


 

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á.
Cím: GetPlayerVelocity hiba
Írta: GroX - 2010. augusztus 22. - 23:04:51
A kódban nincs hiba. Talán a változókkal rontottál el valamit.
Cím: GetPlayerVelocity hiba
Írta: ChuckNorris - 2010. augusztus 22. - 23:05:33
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.
Cím: GetPlayerVelocity hiba
Írta: GroX - 2010. augusztus 22. - 23:08:14
Idézetet írta: ChuckNorris date=1282511133\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"2943\" data-ipsquote-contentclass=\"forums_Topic
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.
Cím: GetPlayerVelocity hiba
Írta: M4tr1X - 2010. augusztus 22. - 23:12:00
Teszteltem, de semmi. Változókat átnézem.
Cím: GetPlayerVelocity hiba
Írta: ChuckNorris - 2010. augusztus 22. - 23:15:23
Idézetet írta: Fade date=1282511294\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"2943\" data-ipsquote-contentclass=\"forums_Topic


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...
Cím: GetPlayerVelocity hiba
Írta: M4tr1X - 2010. augusztus 22. - 23:28:25
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. .\\
Cím: GetPlayerVelocity hiba
Írta: M4tr1X - 2010. augusztus 23. - 23:29:58
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
Cím: GetPlayerVelocity hiba
Írta: Iceaac - 2010. augusztus 24. - 00:04:03
Idézetet írta: M4tr1X date=1282598998\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"2943\" data-ipsquote-contentclass=\"forums_Topic
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