Szerző Téma: [Include]mSelection - Avagy 0.3x Model nézet pár sorból  (Megtekintve 8577 alkalommal)

Nem elérhető SnooP

  • 1798
  • SnooP
    • Profil megtekintése
[Include]mSelection - Avagy 0.3x Model nézet pár sorból
« Dátum: 2013. május 25. - 20:01:33 »
+8 Show voters
mSelection
 
Bevezetõ és frissítései
Haszna
Ezzel hozhatjuk létre az új 0.3x-ben lévõ új modelnézõt (bõvebben itt olvashatsz róla). Ez azért hasznosabb, mint a SA:MP Wikin lévõ függvény, mert míg azt, hogy egy Skin nézõt el akarnánk készíteni egymás után be kéne írnunk a skin ID-ket és a minden skinidhez függvényt,ami elég sok sor lenne, ellentétben ezzel az includeal ami a fájlból simán kiolvassa a modelidt, a poziciókat és az egészet el lehet rendezni pár sorból. Ennek a készítõje D0erfler, aki egy Béta Teszter.
Frissítések
- 1.1 R3
 

-Javítva OnPlayerClick(Player)TextDraw mûködése (leblokkolása)


-Javítva a kiválasztó menü azonnali bezáródása, amikor a korábbi verziókban használva volt  OnDialogResponse-nál.

- 1.1 R2
-Javítva a bug az ESC lenyomásával.
- 1.1
- Javítva a bug az ESC lenyomásával.

-Hozzáadva egy Dynamic Player menü (lásd mint a streamer pluginnál


-Hozzáadva a \'Cancel\' gomb a menükhöz

- 1.0 R3
-Javítva a ShowModelSelectionMenu bugja az OnPlayerModelSelectionben
- 1.0 R2
-Lehetõségünk van ShowModelSelectionMenu-t használni az OnPlayerModelSelectionben
Függvényei és eljárásai
Az összes listája
 

// Mindkettõre érvényes (a static (- statikus) és a player( - játékos) listára is)
HideModelSelectionMenu(playerid)
//Statikus lista
LoadModelSelectionMenu(f_name[])
ShowModelSelectionMenu(playerid, ListID, header_text[], dialogBGcolor = 0x4A5A6BBB, previewBGcolor = 0x88888899 , tdSelectionColor = 0xFFFF00AA)
forward OnPlayerModelSelection(playerid, response, listid, modelid);
//Dinamikus játékos lista
ShowModelSelectionMenuEx(playerid, items_array[], item_amount, header_text[], extraid, Float:Xrot = 0.0, Float:Yrot = 0.0, Float:Zrot = 0.0, Float:mZoom = 1.0, dialogBGcolor = 0x4A5A6BBB, previewBGcolor = 0x88888899 , tdSelectionColor = 0xFFFF00AA)
forward OnPlayerModelSelectionEx(playerid, response, extraid, modelid);

 
A fájlunk kinézete
Mindenek elõtt, ahhoz  hogy kiolvassa az id-kat a fájlból a következõ minta szerint kell legyenek a paraméterek:
modelID (- KÖTELEZÕ !!! ) X rotáció (magyarúl kb forgásszöget jelent)  Y rotáció, Z rotáció, Zoom. ( A modelID-n kivül a többi NEM KÖTELEZÕ, OPCIONÁLIS !!!)

 
Megjegyzésem még hozzá: Ahhoz, hogy te mondjuk autókat rakj be a listába a játékba, a scriptfiles mappádban létre kell hozz egy .txt tömböt és oda beírni a példa szerint a paramétereket és úgy ki lesz olvasva a fájlból az adat és benne fog szerepelni a listába.
Infernus listába rakása - A fájlban hogy kell szerepeljen
 
411
411 180.0
411 0.0 180.0
411 0.0 0.0 180.0
411 0.0 0.0 0.0 1.0

 
Az összes megoldás jó, és a listában meg fognak jelenni különbözõ rotációval (magyarán el lesznek forgatva a meghatározott irányba, ha megadtuk a paramétereit)
 

460 16.0 0.0 -55.0
476 16.0 0.0 -55.0
511 16.0 0.0 -55.0
512 16.0 0.0 -55.0
513 16.0 0.0 -55.0
519 16.0 0.0 -55.0
520 16.0 0.0 -55.0
553 16.0 0.0 -55.0
577 16.0 0.0 -55.0
592 16.0 0.0 -55.0
593 16.0 0.0 -55.0

 
Ha egy XYZ rotáció vagy a Zoom több sorban ugyan az, akkor ezeknek a paramétereknek az értékeik csak egyszer lesznek elmentve memóriatakarékosság érdekébõl. ( Ergó ha 100 autónak ugyan az a rotációja csak egy rotáció lesz elmentve és a többihez pedig hozzáadja majd.)
Függvények
 
LoadModelSelectionMenu(f_name[])

 
Beolvassuk a fájlból a menühöz való tartalmakat. A visszatérése az listid (-listának az azonosítója) lesz.
Paraméterek
f_name - A fájlnak a neve amiben tároljuk a menühöz kellõ modelidkat
returns - A listának az ID-ja


HideModelSelectionMenu(playerid)

 
Eltüntetjük az adott játékosnak a kiválasztós menüjét
playerid - Annak a játékosnak az azonosítója akinek eltüntetjük a menüt.
returns - Nem tér vissza semmivel


ShowModelSelectionMenu(playerid, ListID, header_text[], dialogBGcolor = 0x4A5A6BBB, previewBGcolor = 0x88888899 , tdSelectionColor = 0xFFFF00AA)

 
Ezzel mutatjuk meg a játékosnak a menüt ( ez volt a fentebb / a frissítésekben emlegetett Dinamikus Játékos Lista)
playerid: Játékos Azonosítója
ListID: A listának / menünek ID-ja (azonosítója)
header_test[]: A menünek a fejléce vagy címe
dialogBGcolor(opcionális): Az 1* szerint saját magunk színezhetjük a hátterét
previewBGcolor(opcionális):A 2*-al elõnézhetjük (preview) milyen szinû lesz a választott tárgy háttere
tdSelectionColor(opcionális): A 3*-al beszínezhetjük a választott tárgy hátterét
returns: 1 - Ha sikeres 0 - Ha sikertelen
\"colorPreview.png\"


ShowModelSelectionMenuEx(playerid, items_array[], item_amount, header_text[], extraid, Float:Xrot = 0.0, Float:Yrot = 0.0, Float:Zrot = 0.0, Float:mZoom = 1.0, dialogBGcolor = 0x4A5A6BBB, previewBGcolor = 0x88888899 , tdSelectionColor = 0xFFFF00AA)

 
playerid: Játékos Azonosítója
items_array[]: A tárgyak tömbjének mérete amelyek szerepelnek a listában
item_amount: A tárgyak mennyisége az items_array[]-ben (Példáúl: item_amount = 3 akkor az items_array[0-2]  lesz (mivel amount egyenlõ 3-al és a számlálást 0-tól kezdjük, így 0-tól kettõig fog tartani))á
header_test[]: A menünek a fejléce vagy címe
extraid: Az ID-ja annak a tárgynak amely átadja az ID-jának értékét az OnPlayerModelSelectionEx-nek a kiválasztás után.
Xrot: X rotáció a listában szereplõ modelnek (lásd a felsõ képen a 2* vagy a 3*)
Yrot: Y rotáció a listában szereplõ modelnek (lásd a felsõ képen a 2* vagy a 3*)
Zrot: Z rotáció a listában szereplõ modelnek (lásd a felsõ képen a 2* vagy a 3*)
mZoom: Nagyítás a listában szereplõ objectre.
dialogBGcolor(opcionális): Az 1* szerint saját magunk színezhetjük a hátterét
previewBGcolor(opcionális):A 2*-al elõnézhetjük (preview) milyen szinû lesz a választott tárgy háttere
tdSelectionColor(opcionális): A 3*-al beszínezhetjük a választott tárgy hátterét
returns: 1 - Ha sikeres, 0 - Ha sikertelen


Eljárások
 
OnPlayerModelSelection(playerid, response, listid, modelid)

 
Akkor hívódik meg amikor a játékos kiválaszt egy modelt vagy kilép a listából
playerid - A játékos ID-je
response- 1 - Ha a játokos  kiválasztotta a modelt 0 - Ha kilépett
listid - A listának az ID-ja
modelid- A kiválasztott model id-ja.


OnPlayerModelSelectionEx(playerid, response, extraid, modelid)

 
Akkor hívódik meg, ha a játékos kiválaszt egy modelt vagy kilép a listából
playerid - A játékos ID-je
response- 1 - Ha a játokos  kiválasztotta a modelt 0 - Ha kilépett
extraid - Az extraid  ShowModelSelectionMenuEx-ben használunk
modelid- A kiválasztott model id-ja


Példascriptek
A fentebb leírt scriptfiles mappánkba rakjuk be a planes.txt-t vagy a skins.txt-t
1. Példa - Statikus lista
 

public OnPlayerCommandText(playerid, cmdtext[])
{
    if(strcmp(cmdtext, \"/plane\", true) == 0)
    {
        ShowModelSelectionMenu(playerid, planelist, \"->Planes<-\");
        return 1;
    }
    if(strcmp(cmdtext, \"/changeskin\", true) == 0)
    {
        ShowModelSelectionMenu(playerid, skinlist, \"Select Skin\");
        return 1;
    }
    return 0;
}
public OnPlayerModelSelection(playerid, response, listid, modelid)
{
    if(listid == planelist)
    {
        if(response)
        {
            SendClientMessage(playerid, 0xFF0000FF, \"Plane Spawned\");
            new Float:pos[3]; GetPlayerPos(playerid, pos[0], pos[1], pos[2]);
            CreateVehicle(modelid, pos[0] + 2.5, pos[1], pos[2] + 2.5, 0.0, random(128), random(128), -1);
        }
        else SendClientMessage(playerid, 0xFF0000FF, \"Canceled plane selection\");
        return 1;
    }
    if(listid == skinlist)
    {
        if(response)
        {
            SendClientMessage(playerid, 0xFF0000FF, \"Skin Changed\");
            SetPlayerSkin(playerid, modelid);
        }
        else SendClientMessage(playerid, 0xFF0000FF, \"Canceled skin selection\");
        return 1;
    }
    return 1;
}

 
2. Példa - Dinamikus Játékos Lista
 

#include <a_samp>
#include <mSelection>
#define CUSTOM_TRAILER_MENU 1
public OnPlayerCommandText(playerid, cmdtext[])
{
    if(strcmp(cmdtext, \"/selectVehicleTrailer\", true) == 0)
    {
        new cars[15];
        cars[0] = 435;
        cars[1] = 450;
        cars[2] = 569;
        cars[3] = 570;
        cars[4] = 584;
        cars[5] = 590;
        cars[6] = 591;
        cars[7] = 606;
        cars[8] = 607;
        cars[9] = 608;
        cars[10] = 610;
        cars[11] = 611;
        ShowModelSelectionMenuEx(playerid, cars, 12, \"Select trailer\", CUSTOM_TRAILER_MENU, 16.0, 0.0, -55.0);
        return 1;
    }
    return 0;
}
public OnPlayerModelSelectionEx(playerid, response, extraid, modelid)
{
    if(extraid == CUSTOM_TRAILER_MENU)
    {
        if(response)
        {
            SendClientMessage(playerid, 0xFF0000FF, \"Trailer Spawned\");
            new Float:pos[3]; GetPlayerPos(playerid, pos[0], pos[1], pos[2]);
            CreateVehicle(modelid, pos[0] + 2.5, pos[1], pos[2] + 2.5, 0.0, random(128), random(128), -1);
        }
        else SendClientMessage(playerid, 0xFF0000FF, \"Canceled trailer selection\");
    }
    return 1;

 
Remélem nem kell a példascriptet lefordítani és érthetõ.
Letöltés
Regisztráció nélkül letölthetõ ITT
Utószó
Remélem jó helyre nyitottam, ha mégse helyezzétek át. Remélem ennek megírásával sokat segítettem, ugyanis ezt nagyon sok helyre fel lehet használni : pl Inventiory és társai. Kösz, ha valaki vette a türelmet és elolvasta.  :) Ha fordítási hibákat találtok szóljatok és akkor átírom, de remélem nincs.
 
« Utoljára szerkesztve: 2013. május 30. - 22:12:35 írta SnooP »

xD1999

  • Vendég
[Include]mSelection - Avagy 0.3x Model nézet pár sorból
« Válasz #1 Dátum: 2013. május 30. - 07:33:12 »
0 Show voters
Szép forditás grat ment a \"+\"

[Include]mSelection - Avagy 0.3x Model nézet pár sorból
« Válasz #2 Dátum: 2013. május 30. - 07:46:44 »
0 Show voters
Ez sokaknak jól jöhet magyar fordítással! :D megy a \"+\"

Nem elérhető SnooP

  • 1798
  • SnooP
    • Profil megtekintése
[Include]mSelection - Avagy 0.3x Model nézet pár sorból
« Válasz #3 Dátum: 2013. május 30. - 16:42:19 »
0 Show voters
Remélem segíthettem :)

Nem elérhető ZSOLTI99

  • 1827
    • Profil megtekintése
[Include]mSelection - Avagy 0.3x Model nézet pár sorból
« Válasz #4 Dátum: 2013. június 08. - 19:16:41 »
0 Show voters
Kocsikat lehet módolni pl infernusra egy BMW-t?

Nem elérhető SnooP

  • 1798
  • SnooP
    • Profil megtekintése
[Include]mSelection - Avagy 0.3x Model nézet pár sorból
« Válasz #5 Dátum: 2013. június 08. - 20:18:29 »
0 Show voters
Idézetet írta: ZSOLTI99 date=1370711801\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"37807\" data-ipsquote-contentclass=\"forums_Topic
Kocsikat lehet módolni pl infernusra egy BMW-t?
 
Ez nem módoló. Ez arra szolgál, hogy jármûvek, objectek, fegyverek képei be legyenek szúrva, mint MTA-n az Inventory rendszerek csak itt nem cserélgetheted a képet.

Nem elérhető Loren

  • 1401
  • Ex Moderátor
    • Profil megtekintése
[Include]mSelection - Avagy 0.3x Model nézet pár sorból
« Válasz #6 Dátum: 2013. június 20. - 12:47:25 »
0 Show voters
Ezt még én is használni fogom, gratulálok, ment a \"+\"!

Nem elérhető SnooP

  • 1798
  • SnooP
    • Profil megtekintése
[Include]mSelection - Avagy 0.3x Model nézet pár sorból
« Válasz #7 Dátum: 2013. június 20. - 12:52:04 »
0 Show voters
Kösz ;) Szerintem RolePlay szerverben ideális egy Inventoryra csak egy tipp. ;)

Nem elérhető scripter01

  • 1035
  • Ex Moderálisan Globális
    • Profil megtekintése
[Include]mSelection - Avagy 0.3x Model nézet pár sorból
« Válasz #8 Dátum: 2013. szeptember 12. - 08:26:05 »
0 Show voters
Szép, fel is használom :) Gart

[Include]mSelection - Avagy 0.3x Model nézet pár sorból
« Válasz #9 Dátum: 2014. február 01. - 11:06:09 »
0 Show voters
és honnan tudja hogy skint kell e megjeleníteni vagy autót?

Nem elérhető SnooP

  • 1798
  • SnooP
    • Profil megtekintése
[Include]mSelection - Avagy 0.3x Model nézet pár sorból
« Válasz #10 Dátum: 2014. február 01. - 19:44:10 »
+1 Show voters
Skin ID 0-tol 299 -ig terjed, jármûvek 400-tol 611-ig ;)

[Include]mSelection - Avagy 0.3x Model nézet pár sorból
« Válasz #11 Dátum: 2014. február 03. - 21:13:18 »
0 Show voters
igaz:))))

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal