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

San Andreas Multiplayer (SA-MP) => SA-MP: Szerverfejlesztés => Leírások/Útmutatók => A témát indította: ALIEN - 2010. Április 06. - 12:57:09

Cím: [TuT]Boostok
Írta: ALIEN - 2010. Április 06. - 12:57:09
Boostok
 

by Mr.Maark
 
Eloszó
Most leírom hogy egy kocsiba ülõ player
hogy tud pl. ALT gombal ugrani a kocsival.
Persze lehet más funkciót is csinálni nem csak ugrani.
Ez eleve maark tutorialja kissé átalakítva, de nagyrészt az õ érdeme.
Nézzük meg!
Ugrás, ALT gombal
Most a kocsiban tartózkodó player az ALT gomb lenyomásával
tud ugrani, a kocsiával.
1.Keressük meg a public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
mert itt fogunk dolgozni. Itt egy példa:
 
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
if(newkeys == KEY_FIRE)
{
if(IsPlayerInAnyVehicle(playerid))
{
new Float:x, Float:y, Float:z;
GetVehicleVelocity(GetPlayerVehicleID(playerid), x, y, z);
SetVehicleVelocity(GetPlayerVehicleID(playerid), x, y, z+0.4);
else
{
return false;
}
}
return 1;
}

 
Magyarázat:
if(newkeys == KEY_FIRE)  // key_fire alt gomb
 
KEY_FIRE  =  ALT gomb
KEY_ACTION  =  CTRL gomb
KEY_SPRINT  =  W gomb
KEY_HANDBREAK  =  Space gomb
KEY_SUBMISSION  =  2-es gomb
[/quote]
if(IsPlayerInAnyVehicle(playerid)) // ha  kocsiba ül akkor:
GetVehicleVelocity(GetPlayerVehicleID(playerid), x, y, z); // lekérdezzük a játékos pocícióját
SetVehicleVelocity(GetPlayerVehicleID(playerid), x, y, z+0.4); //a magasságot növeljük 0.4-el vagy is ugrik az autó
return false; // ha nem ül autóba akkor  nem megy végbe a feladat.
Itt van még pár függvény:
SetVehicleHealth(VehicleID,1000.00);                                                        -a jármu élete teljes lesz
RepairVehicle(GetPlayerVehicleID(playerid));                                             -a jármu külseje megjavul
SetVehicleVelocity(GetPlayerVehicleID(playerid), x*1.5, y*1.5, z*1.5)              -kocsi gyórsulása
 

Utószó

Persze lehet sok mindenre használni, nem csak autó ugratására, gyórsitására.
Remélem értheto volt! Ha valamit nem értesz akkor írj! Most már jöhetnek a kritikák.
Cím: [TuT]Boostok
Írta: Zharko - 2010. Április 06. - 13:08:12
Szép kis Tut! Grat ;D 8) :idea:
Cím: [TuT]Boostok
Írta: ZeRo - 2010. Április 06. - 13:17:45
Idézetet írta: ALIEN date=1270551429\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"1268\" data-ipsquote-contentclass=\"forums_Topic

KEY_FIRE  =  ALT gomb
KEY_ACTION  =  CTRL gomb
KEY_SPRINT  =  W gomb
KEY_HANDBREAK  =  Space gomb
KEY_SUBMISSION  =  2-es gomb

[/quote]
Jó leírás lett, de annyit hozzátennék, hogy ezek a felhasználó által módosíthatóak( fomenüben ), úgyhogy inkább csak a jelentését írd le( nekem pl. a KEY_SPRINT a shift gomb  ;) ).
Cím: [TuT]Boostok
Írta: ALIEN - 2010. Április 06. - 19:50:23
Idézetet írta: ZeRo date=1270552665\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"1268\" data-ipsquote-contentclass=\"forums_Topic
Jó leírás lett, de annyit hozzátennék, hogy ezek a felhasználó által módosíthatóak( fomenüben ), úgyhogy inkább csak a jelentését írd le( nekem pl. a KEY_SPRINT a shift gomb  ;) ).
 
Ezt hogy érted?
 

Szép kis Tut! Grat ;D 8) :idea:
 
[/quote]
Kösz.
Cím: [TuT]Boostok
Írta: Vampesz - 2010. Április 06. - 19:55:59
Ezek a gombok A Beállításoknál változtathatók tehát amit odaírtál, h ALT gomb azok átállíthatóak :)
Cím: [TuT]Boostok
Írta: ALIEN - 2010. Április 06. - 20:00:34
Idézetet írta: Vampesz date=1270576559\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"1268\" data-ipsquote-contentclass=\"forums_Topic
Ezek a gombok A Beállításoknál változtathatók tehát amit odaírtál, h ALT gomb azok átállíthatóak :)
 
Ja  :D
De attól még a gombokat oda írom  :D
Cím: [TuT]Boostok
Írta: Vampesz - 2010. Április 06. - 20:02:27
Nem gond csak ZeRo mondta \"érdekességként\" :)
Cím: [TuT]Boostok
Írta: GroX - 2010. Április 07. - 16:27:05
SetVehicleVelocity(GetPlayerVehicleID(playerid),x+(x/4), y+(y/4), z+(z/4));

 
(Speedhack, nem ugrás)
Egyszerubb és gyorsabb a sok lebegopontos muvelet helyett :/
Mivel így ha 0 az egyik akkor az elosztja 4-el és ugyebár nem lesz semmi mert 0/4 = 0...
Ahogy Epsilon mondaná: egy kis térgeometria.
Szorzással is meg lehet ugyan oldani.
Vagy kiszámoljuk az abszolút értékét, meg a négyzetgyökét stb... és azt addoljuk de ezt inkább nem írom le :amazed:
 
GetVehicleVelocity(GetPlayerVehicleID(playerid), x, y, z); // lekérdezzük a játékos pocícióját

 
Fail mert nem a pozícióját kérdezzük le hanem a térbeli mozgása értékét.
 
new Float:x, Float:y, Float:z;

 (Igaz régebben én is így csináltam)
Ezzel az a gond h kicsit pazarol mivel 3-at hozol létre.
Egyszerubben:
 
new Float:V[3];
GetVehicleVelocity(vehicleid,V[0],V[1],V[2]);

 és így tovább.
Amúgy jó leírás lett, de kicsit javíthatnál rajta.
Cím: [TuT]Boostok
Írta: BeNiBoY - 2010. Április 08. - 19:20:21
sztem jó lett, de még egy gomb, amit sok helyen használnak boost-hoz
 
KEY_HORN = Duda(alapbeállításban H, meg a caps lock)
Cím: [TuT]Boostok
Írta: maark - 2010. Április 10. - 20:43:37
hehe :D az enyéém ^^
Cím: [TuT]Boostok
Írta: Vampesz - 2010. Április 10. - 20:55:25
Idézetet írta: maark date=1270925017\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"1268\" data-ipsquote-contentclass=\"forums_Topic
hehe :D az enyéém ^^
 
mi a tiéd? ???
Cím: [TuT]Boostok
Írta: Lömpi - 2010. Április 11. - 11:18:35
Idézetet írta: maark date=1270925017\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"1268\" data-ipsquote-contentclass=\"forums_Topic
hehe :D az enyéém ^^
 
már kisajátítottad ? :O O.o
Cím: [TuT]Boostok
Írta: jana4 - 2010. Április 11. - 13:49:44
KEY_SPRINT

 
ez mióta W?

ez a Space, de mind1.


am GroX, te tanultál e egyáltalán négyzetgyököt?  :o

 
Ahogy Epsilon mondaná: egy kis térgeometria.[/quote]
Térgeometriát 10. -ben tanulnak a diákok.  ;) :D
Cím: [TuT]Boostok
Írta: Epsilon - 2010. Április 12. - 15:12:46
A témában szereplo kódoknak és példáknak nem sok köze van a térgeometriához.
Cím: [TuT]Boostok
Írta: GroX - 2010. Április 12. - 19:28:44
Idézetet írta: Epsilon date=1271077966\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"1268\" data-ipsquote-contentclass=\"forums_Topic
A témában szereplo kódoknak és példáknak nem sok köze van a térgeometriához.
 
Jókor mondod mivel te mondtad nekem :dodge:
Cím: [TuT]Boostok
Írta: Epsilon - 2010. Május 01. - 09:57:37
Természetesen vannak olyan lehetoségek is, de én az ebben a témában megemlített kódokról nyilatkoztam.
 
Idézetet írta: ScreaM date=1270986584\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"1268\" data-ipsquote-contentclass=\"forums_Topic

KEY_SPRINT

 
ez mióta W?

ez a Space, de mind1.


am GroX, te tanultál e egyáltalán négyzetgyököt?  :o

 
Ahogy Epsilon mondaná: egy kis térgeometria.
Térgeometriát 10. -ben tanulnak a diákok.  ;) :D
 
[/quote]
Hát ez nem nyert okoska.
A 8.-as matek tankönyv 2. kötetének 44. oldala már a térgeometriával foglalkozik.
Visszatérve a KEY_SPRINT-hez ez nem feltétlenül a space gomb hanem amire a játékos beállítja ;)
(Nálam pl. shift)
Cím: [TuT]Boostok
Írta: GroX - 2010. Május 01. - 16:22:11
Gametextbe meg lehet oldani h a játékosnak beálítottat írja ki nem pedig azt h pl H gomb... Csak sajnos nehezen értelmezheto amikor kiírja :/
 
A 8.-as matek tankönyv 2. kötetének 44. oldala már a térgeometriával foglalkozik.[/quote]
Csak sajnos ez a kiadótól is függ. A mienkben elvileg benne van, de van amiben nem.
Cím: [TuT]Boostok
Írta: jana4 - 2010. Május 01. - 19:18:47
Hát ez nem nyert okoska.[/quote]
mért, volt tét?  :o

amúgy meg ha rossz a gta_sa.set -et akkor törölni kell és újra beállítani, de én alapon hagyom. írjunk már gratulációt is -.-


alien, azér jó lett, bár kicsit magyarosabb lehetne, és még elmagyarázni mi micsoda. ez nekem (ha 1napos kezdo lennék) kínai lenne
Cím: [TuT]Boostok
Írta: krisk - 2010. Május 02. - 09:07:03
Csináljunk pár globális változót
 
new Float:x, Float:y, Float:z;

 
Ezzel megkíméljük magunkat a sokszoros újrabeírkálástól, egyszerubb lesz a munka. Aztán, leegyszerusíthetjük a scriptünket
 
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
 if(newkeys == KEY_FIRE && IsPlayerInAnyVehicle(playerid)) return  GetVehicleVelocity(GetPlayerVehicleID(playerid), x, y, z); SetVehicleVelocity(GetPlayerVehicleID(playerid), x, y, z+0.4);
 else if(newkeys == KEY_SPRINT && IsPlayerInAnyVehicle(playerid)) return  GetVehicleVelocity(GetPlayerVehicleID(playerid), x, y, z); SetVehicleVelocity(GetPlayerVehicleID(playerid), x, y+0.4, z);
return 1;
}

 
Ám, ha csak a speedboostokra használjuk a gombokat, akkor használhatjuk csak egyszer, a callback elején:
 
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
GetVehicleVelocity(GetPlayerVehicleID(playerid), x, y, z);
 if(newkeys == KEY_FIRE && IsPlayerInAnyVehicle(playerid)) return SetVehicleVelocity(GetPlayerVehicleID(playerid), x, y, z+0.4);
 else if(newkeys == KEY_SPRINT && IsPlayerInAnyVehicle(playerid)) return SetVehicleVelocity(GetPlayerVehicleID(playerid), x, y+0.4, z);
return 1;
}
Cím: [TuT]Boostok
Írta: [SWAT]Messi - 2011. Március 17. - 18:08:07
Helló.Nem akarok bumpolni de ez most fontos lenne az Õ és az Ú betûnek mi az \"elnevezése\"? máshogy nem tudom mondani bocsi.
Cím: [TuT]Boostok
Írta: nyE - 2011. Március 17. - 18:18:43
Messi\" post=\"122318\" timestamp=\"1300381687\"]
Helló.Nem akarok bumpolni de ez most fontos lenne az Õ és az Ú betûnek mi az \"elnevezése\"? máshogy nem tudom mondani bocsi.
 
[/quote]Ezeknek nincs \"elnevezése\". Ezen az oldalon le vannak írva az összes a sa-mpban használható billentyûnek az \"elnevezése\".
Cím: [TuT]Boostok
Írta: Mambo - 2011. Március 17. - 18:19:11
Messi\" post=\"122318\" timestamp=\"1300381687\"]
Helló.Nem akarok bumpolni de ez most fontos lenne az Õ és az Ú betûnek mi az \"elnevezése\"? máshogy nem tudom mondani bocsi.
 
[/quote]
Értelek.
Ezek vannak csak:
 
Define
Value
Gametext-Key on Foot
Gametext-Key in Vehicle
KEY_ACTION
1
~k~~PED_ANSWER_PHONE~
~k~~VEHICLE_FIREWEAPON~-
KEY_CROUCH
2
~k~~PED_DUCK~
~k~~VEHICLE_HORN~
KEY_FIRE
4
~k~~PED_FIREWEAPON~
~k~~PED_FIREWEAPON_ALT~
~k~~VEHICLE_FIREWEAPON~
~k~~VEHICLE_FIREWEAPON_ALT~
KEY_SPRINT
8
~k~~PED_SPRINT~
~k~~VEHICLE_ACCELERATE~
KEY_SECONDARY_ATTACK
16
~k~~VEHICLE_ENTER_EXIT~
~k~~VEHICLE_FIREWEAPON_ALT~
KEY_JUMP
32
~k~~PED_JUMPING~
~k~~VEHICLE_BRAKE~
KEY_LOOK_RIGHT
64
-
~k~~VEHICLE_LOOKRIGHT~
KEY_HANDBRAKE
128
~k~~PED_LOCK_TARGET~
~k~~VEHICLE_HANDBRAKE~
KEY_LOOK_LEFT
256
-
~k~~VEHICLE_LOOKLEFT~
KEY_SUBMISSION
512
-
~k~~TOGGLE_SUBMISSIONS~
KEY_LOOK_BEHIND
512
~k~~PED_LOOKBEHIND~
~k~~VEHICLE_LOOKBEHIND~
KEY_WALK
1024
~k~~SNEAK_ABOUT~
-
KEY_AIM*
128
-
-
KEY_ANALOG_UP
2048
-
~k~~VEHICLE_TURRETUP~
KEY_ANALOG_DOWN
4096
-
~k~~VEHICLE_TURRETDOWN~
KEY_ANALOG_LEFT
8192
~k~~VEHICLE_LOOKLEFT~
~k~~VEHICLE_TURRETLEFT~
KEY_ANALOG_RIGHT
16384
~k~~VEHICLE_LOOKRIGHT~
~k~~VEHICLE_TURRETRIGHT~
  • Key not defined in SA:MP includes. You must define this yourself.

Up/Down-Keys
Define
Value
Gametext-Key on Foot
Gametext-Key in Vehicle
KEY_UP
-128
~k~~GO_FORWARD~
~k~~VEHICLE_STEERUP~
KEY_DOWN
128
~k~~GO_BACK~
~k~~VEHICLE_STEERDOWN~
Left/Right-Keys
Define
Value
Gametext-Key on Foot
Gametext-Key in Vehicle
KEY_LEFT
-128
~k~~GO_LEFT~
~k~~VEHICLE_STEERLEFT~
KEY_RIGHT
128
~k~~GO_RIGHT~
~k~~VEHICLE_STEERRIGHT~
 
[/quote]
http://wiki.sa-mp.com/wiki/GetPlayerKeys egyértelmûen