Szavazás

Értékes volt számodra ez a leírás?

Összes szavazó: 15

Szerző Téma: [Leírás] Objekt csatolása Jármûhöz MTA-val  (Megtekintve 2543 alkalommal)

[Leírás] Objekt csatolása Jármûhöz MTA-val
« Dátum: 2012. Május 13. - 17:58:06 »
+2
Nos, sok kérdésben láttam, hogy a kezdõ scripterek keresik a módját annak, hogy a jármûvekre különbözõ objekteket \"aggassanak\". Én most leírom, hogyan lehet ezt egyszerûen elvégezni.
======================================================================
Nyissuk meg az MTA pályatervezõjét, azon belül kezdjünk egy teljesen új pályát.
Tegyük le a tetszõleges jármûvet  ezekre a koordinátákra:
x:0.0 y:0.0 z:0.0 (igen, ez a föld alatt van, de ettõl nem kell megijedni)
Ha ez megvan, aggasd fel a kocsit amivel akarod és mentsd el.
A .map fájlt konvertáljad át pl itt:
http://gtamap.delux-host.com/converter/
Konvertálás:
Válaszd ki a .map fájl helyét, ezután a fülecskén  az IPL File format-ot állítsd át PAWN code for SA:MP-ra  és átkonvertálja neked a mapot
CreateObject

 sorokra.
Nos, most hozzuk létre az autót, amire szeretnénk aggatni a dolgokat:
 
new vehicleid= AddStaticVehicle(...);// az autó létrehozása

 
Most hozzuk létre a tárgyakat, amiket fel akarunk rá aggatni:
 
new objectid = CreateObject(...);// tárgy, amit felaggatnánk az autóra

 
Ezzel pedig rácsatolod a jármûre az objektumot
 
AttachObjectToVehicle(objectid, vehicleid, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0); // Tárgy felcsatolása az autóra( tárgy, jármû, koordináták)

 
a koordináták helyére szintén másoljuk be a CreateObject utáni számokat.
Több tárgy esetén:
 
new objectid1 = CreateObject(...); //tárgy 1
new objectid2 = CreateObject(...); //tárgy 2
new objectid3 = CreateObject(...); //tárgy 3
new objectid4 = CreateObject(...); //tárgy 4
AttachObjectToVehicle(objectid1, vehicleid, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0); //csatolni a kocsihoz az 1. tárgyat
AttachObjectToVehicle(objectid2, vehicleid, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0); //csatolni a kocsihoz az 2. tárgyat
AttachObjectToVehicle(objectid3, vehicleid, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0); //csatolni a kocsihoz az 3. tárgyat
AttachObjectToVehicle(objectid4, vehicleid, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0); //csatolni a kocsihoz az 4. tárgyat

 
Itt egy példa a használatára:
 
public OnPlayerCommandText(playerid, cmdtext[])
{
if (strcmp(\"/Katyusa\", cmdtext, true, 10) == 0) //ha a játékos beírja /katyusa
{
        new Float:x, Float:y, Float:z; //beállítjuk, hogy milyen jelre kérje le az adatokat(x,y,z-hosszúság, szélesség, magasság)
GetPlayerPos(playerid, x, y, z); //lekérjük az adatokat az elõbb meghatározott jelekre
new katyusa = AddStaticVehicle(578, x, y, z, 0.0,0,0); //létrehozom az autót, ez egy katyusa lesz, egy szovjet Föld-Föld rakéta
PutPlayerInVehicle(playerid, katyusa, 0); //beültetjük a játékost az autóba
new allas = CreateObject(2893, -1.1582450866699, 2.3950941562653, 1.3178603649139, 0, 0, 0); //az MTA-ban a teherautóra rátettem egy fém lapot, ez lesz a rakéta állás
new raketa = CreateObject(3790, 1.0506319999695, -0.034515380859375, 0.83443319797516, 0, 16, 270.68664550781); //az MTA-ban rátettem a fém lapra a rakétát
AttachObjectToVehicle(allas, katyusa, -1.1582450866699, 2.3950941562653, 1.3178603649139, 0, 0, 0); //felcsatoljuk az állást
AttachObjectToVehicle(raketa, katyusa, 1.0506319999695, -0.034515380859375, 0.83443319797516, 0, 16, 270.68664550781); //felcsatoljuk a rakétát
        return 1;//a returnt ne hagyjuk ki, fontos része a scriptnek!
}
return 0;//a returnt ne hagyjuk ki, fontos része a scriptnek!
}

 
így ha a játékos beírja /katyusa, a script létrehoz számára egy teljesen új jármûvet, beleülteti és felcsatolja a jármûre a kívánt tárgyakat.
Remélem a leírásom érthetõ volt és a katyusát megéri még tovább fejleszteni! Nekem már készen van a végleges változat, gyönyörûség :) Lõni persze nem tud, de a hangulata megvan!
Sok sikert!

[Leírás] Objekt csatolása Jármûhöz MTA-val
« Válasz #1 Dátum: 2012. Május 13. - 21:42:40 »
0
Ehhez hozzátenném ,hogy nem csak 0,0,0-ás pozíción lehet 100%-ra lementeni a pozíciókat.Máson is lehet, péld a Grove Street-en is csak 1 kis logika kell hozzá, és matematika tudás. :smokin:

Nem elérhető kurta999

  • 2759
  • Éllő fédisznó
    • Profil megtekintése
[Leírás] Objekt csatolása Jármûhöz MTA-val
« Válasz #2 Dátum: 2012. Május 13. - 21:46:41 »
0
Esetleg lehetek olyan bunkó, hogy megkérdem, hogy le-e írnád nekem, hogy azt mivel kell kiszámítani?
Mert én már próbálkoztam és szarra se mentem XD

[Leírás] Objekt csatolása Jármûhöz MTA-val
« Válasz #3 Dátum: 2012. Május 14. - 05:06:41 »
0
Persze, és le írom:
Az object x,y,z pozícióját vedd el a kocsi x,y,z pozíciójából.
Ha jól számoltál akkor megkaptad az x,y,z offsetet.
Persze az object pozícióit ingame ne írd át az object csatolásnál.xD
« Utoljára szerkesztve: 2012. Május 14. - 05:08:26 írta lackos888 »

[Leírás] Objekt csatolása Jármûhöz MTA-val
« Válasz #4 Dátum: 2012. Május 14. - 15:38:09 »
0
direkt a legegyszerûbb koordinátát ismertettem... nem kell számolni, csak megszerkeszted és átalakítod... nem értem minek túlbonyolítani...  :hmmm: :nono:

[Leírás] Objekt csatolása Jármûhöz MTA-val
« Válasz #5 Dátum: 2012. Május 14. - 17:22:30 »
0
De valakinek kényelmesebb, ha nem a föld alatt editelget.xD

[Leírás] Objekt csatolása Jármûhöz MTA-val
« Válasz #6 Dátum: 2012. Május 13. - 17:58:06 »
0
Nos, sok kérdésben láttam, hogy a kezdõ scripterek keresik a módját annak, hogy a jármûvekre különbözõ objekteket \"aggassanak\". Én most leírom, hogyan lehet ezt egyszerûen elvégezni.
======================================================================
Nyissuk meg az MTA pályatervezõjét, azon belül kezdjünk egy teljesen új pályát.
Tegyük le a tetszõleges jármûvet  ezekre a koordinátákra:
x:0.0 y:0.0 z:0.0 (igen, ez a föld alatt van, de ettõl nem kell megijedni)
Ha ez megvan, aggasd fel a kocsit amivel akarod és mentsd el.
A .map fájlt konvertáljad át pl itt:
http://gtamap.delux-host.com/converter/
Konvertálás:
Válaszd ki a .map fájl helyét, ezután a fülecskén  az IPL File format-ot állítsd át PAWN code for SA:MP-ra  és átkonvertálja neked a mapot
CreateObject

 sorokra.
Nos, most hozzuk létre az autót, amire szeretnénk aggatni a dolgokat:
 
new vehicleid= AddStaticVehicle(...);// az autó létrehozása

 
Most hozzuk létre a tárgyakat, amiket fel akarunk rá aggatni:
 
new objectid = CreateObject(...);// tárgy, amit felaggatnánk az autóra

 
Ezzel pedig rácsatolod a jármûre az objektumot
 
AttachObjectToVehicle(objectid, vehicleid, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0); // Tárgy felcsatolása az autóra( tárgy, jármû, koordináták)

 
a koordináták helyére szintén másoljuk be a CreateObject utáni számokat.
Több tárgy esetén:
 
new objectid1 = CreateObject(...); //tárgy 1
new objectid2 = CreateObject(...); //tárgy 2
new objectid3 = CreateObject(...); //tárgy 3
new objectid4 = CreateObject(...); //tárgy 4
AttachObjectToVehicle(objectid1, vehicleid, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0); //csatolni a kocsihoz az 1. tárgyat
AttachObjectToVehicle(objectid2, vehicleid, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0); //csatolni a kocsihoz az 2. tárgyat
AttachObjectToVehicle(objectid3, vehicleid, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0); //csatolni a kocsihoz az 3. tárgyat
AttachObjectToVehicle(objectid4, vehicleid, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0); //csatolni a kocsihoz az 4. tárgyat

 
Itt egy példa a használatára:
 
public OnPlayerCommandText(playerid, cmdtext[])
{
if (strcmp(\"/Katyusa\", cmdtext, true, 10) == 0) //ha a játékos beírja /katyusa
{
        new Float:x, Float:y, Float:z; //beállítjuk, hogy milyen jelre kérje le az adatokat(x,y,z-hosszúság, szélesség, magasság)
GetPlayerPos(playerid, x, y, z); //lekérjük az adatokat az elõbb meghatározott jelekre
new katyusa = AddStaticVehicle(578, x, y, z, 0.0,0,0); //létrehozom az autót, ez egy katyusa lesz, egy szovjet Föld-Föld rakéta
PutPlayerInVehicle(playerid, katyusa, 0); //beültetjük a játékost az autóba
new allas = CreateObject(2893, -1.1582450866699, 2.3950941562653, 1.3178603649139, 0, 0, 0); //az MTA-ban a teherautóra rátettem egy fém lapot, ez lesz a rakéta állás
new raketa = CreateObject(3790, 1.0506319999695, -0.034515380859375, 0.83443319797516, 0, 16, 270.68664550781); //az MTA-ban rátettem a fém lapra a rakétát
AttachObjectToVehicle(allas, katyusa, -1.1582450866699, 2.3950941562653, 1.3178603649139, 0, 0, 0); //felcsatoljuk az állást
AttachObjectToVehicle(raketa, katyusa, 1.0506319999695, -0.034515380859375, 0.83443319797516, 0, 16, 270.68664550781); //felcsatoljuk a rakétát
        return 1;//a returnt ne hagyjuk ki, fontos része a scriptnek!
}
return 0;//a returnt ne hagyjuk ki, fontos része a scriptnek!
}

 
így ha a játékos beírja /katyusa, a script létrehoz számára egy teljesen új jármûvet, beleülteti és felcsatolja a jármûre a kívánt tárgyakat.
Remélem a leírásom érthetõ volt és a katyusát megéri még tovább fejleszteni! Nekem már készen van a végleges változat, gyönyörûség :) Lõni persze nem tud, de a hangulata megvan!
Sok sikert!

[Leírás] Objekt csatolása Jármûhöz MTA-val
« Válasz #7 Dátum: 2012. Május 13. - 21:42:40 »
0
Ehhez hozzátenném ,hogy nem csak 0,0,0-ás pozíción lehet 100%-ra lementeni a pozíciókat.Máson is lehet, péld a Grove Street-en is csak 1 kis logika kell hozzá, és matematika tudás. :smokin:

Nem elérhető kurta999

  • 2759
  • Éllő fédisznó
    • Profil megtekintése
[Leírás] Objekt csatolása Jármûhöz MTA-val
« Válasz #8 Dátum: 2012. Május 13. - 21:46:41 »
0
Esetleg lehetek olyan bunkó, hogy megkérdem, hogy le-e írnád nekem, hogy azt mivel kell kiszámítani?
Mert én már próbálkoztam és szarra se mentem XD

[Leírás] Objekt csatolása Jármûhöz MTA-val
« Válasz #9 Dátum: 2012. Május 14. - 05:06:41 »
0
Persze, és le írom:
Az object x,y,z pozícióját vedd el a kocsi x,y,z pozíciójából.
Ha jól számoltál akkor megkaptad az x,y,z offsetet.
Persze az object pozícióit ingame ne írd át az object csatolásnál.xD
« Utoljára szerkesztve: 2012. Május 14. - 05:08:26 írta lackos888 »

[Leírás] Objekt csatolása Jármûhöz MTA-val
« Válasz #10 Dátum: 2012. Május 14. - 15:38:09 »
0
direkt a legegyszerûbb koordinátát ismertettem... nem kell számolni, csak megszerkeszted és átalakítod... nem értem minek túlbonyolítani...  :hmmm: :nono:

[Leírás] Objekt csatolása Jármûhöz MTA-val
« Válasz #11 Dátum: 2012. Május 14. - 17:22:30 »
0
De valakinek kényelmesebb, ha nem a föld alatt editelget.xD

[Leírás] Objekt csatolása Jármûhöz MTA-val
« Válasz #12 Dátum: 2012. Június 15. - 13:09:29 »
0
Idézetet írta: lackos888 date=1337008950\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"21423\" data-ipsquote-contentclass=\"forums_Topic
De valakinek kényelmesebb, ha nem a föld alatt editelget.xD
 
Akkor egy kis logikával 5 koordinátával feljebbrakja a kocsit, és akkor csak a z offsetet kell kiszámítani. :D

[Leírás] Objekt csatolása Jármûhöz MTA-val
« Válasz #13 Dátum: 2012. Június 15. - 13:26:08 »
0
végre vlaki mta-val csinált NORMÁLIS tutot :D ty  :thumbsup:

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal