Szerző Téma: Gomblenyomásra való történés  (Megtekintve 1898 alkalommal)

Gomblenyomásra való történés
« Dátum: 2016. Október 18. - 21:39:48 »
0
Helló!
Az lenen a kérdésem, hogy hogy lehet azt megoldani, hogyha beírok egy parancsot (pl.: getpos) és  lenyomom pl a tűzgombot (balklikk) akkor lekérje a pozt az interiort és a vw.
Valamint lenne még egy kérdésem, meg lehet e azt oldani, hogy előhozom a kurzort ( egy paranccsal pl) és ha rákattintok egy actorra akor kihoz egy dialogot vagy szöveget.
Válaszitok előre is köszönöm!

Gomblenyomásra való történés
« Válasz #1 Dátum: 2016. Október 18. - 22:29:55 »
+2
hahó, ez nem MTA

Nem elérhető Flash

  • 5726
  • (っ◕‿◕)っ
    • Profil megtekintése
Gomblenyomásra való történés
« Válasz #2 Dátum: 2016. Október 18. - 23:10:21 »
+1
Azt nagyon adnám, ha ezt SA:MP-ra tervezed. Megkönnyítené a folyamatokat és jobban kezelhetőek lennének a dolgok.. :)

Gomblenyomásra való történés
« Válasz #3 Dátum: 2016. Október 19. - 11:21:59 »
0
Megoldhato mind a ket dolog. Az actorosra van otletem 2d-3d koordi atalakitassal.

Gomblenyomásra való történés
« Válasz #4 Dátum: 2016. Október 19. - 12:07:36 »
0
megoldható, a gomb megy a tűz gomb pont olyan, az actorra meg megoldható hogy kijelöléssel menjen

Nem elérhető anGeL

  • Adminisztrátor
  • 2158
    • Profil megtekintése
Gomblenyomásra való történés
« Válasz #5 Dátum: 2016. Október 19. - 12:27:46 »
+1
Akkor valaki csinálja meg és publikálja. :D

Gomblenyomásra való történés
« Válasz #6 Dátum: 2016. Október 19. - 12:49:35 »
+1

Gomblenyomásra való történés
« Válasz #7 Dátum: 2016. Október 19. - 13:16:11 »
0
Az actor jobb gombos kijelölés:
 

new Sanyi;
public OnGameModeInit()
{
    Sanyi = CreateActor(0, 0.0, 0.0, 3.0, 0.0);
    return true;
}
public OnPlayerUpdate(playerid)
{
   ActorKijeloles(playerid);
   return true;
}
forward ActorKijeloles(playerid);
public ActorKijeloles(playerid)
{
    new actorid = GetPlayerTargetActor(playerid);
    if(actorid != INVALID_ACTOR_ID )
    {
        switch(actorid)
        {
            case Sanyi: ShowPlayerDialog(....);
            default: SendClientMessage(playerid, -1, \"Nincs interakció társítva az Actorhoz!\");
        }
    }
}

 
bal gombos&getpos:
 

#include <zcmd>
new bool:GetPos[MAX_PLAYERS] = false;
CMD:getpos(playerid)
{
    switch(GetPos[playerid])
    {
        case 0: GetPos[playerid] = true, SendClientMessage(playerid, -1, \"Bekapcsoltad a getpos parancsot!\");
        case 1: GetPos[playerid] = false, SendClientMessage(playerid, -1, \"Kikapcsoltad a getpos parancsot!\");
    }
    return true;
}
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
    if((newkeys & (KEY_FIRE)) == (KEY_FIRE))
    {
        if(GetPos[playerid] == true)
        {
            new adatok[128], Float:Pozok[4];
            GetPlayerPos(playerid, Pozok[0],Pozok[1],Pozok[2]);
            GetPlayerFacingAngle(playerid, Pozok[3]);
            format(adatok, sizeof(adatok), \"Poziciód: X: %f | Y:%f | Z: %f | A: %f | VW: %d | Int:%d\", Pozok[0],Pozok[1],Pozok[2], Pozok[3], GetPlayerVirtualWorld(playerid), GetPlayerInterior(playerid));
            SendClientMessage(playerid, -1, adatok);
            GetPos[playerid] =false;
        }
    }
    return true;
}

 
Nem teszteltem, de ennek így jónak kell lennie.
« Utoljára szerkesztve: 2016. Október 19. - 13:39:07 írta Brian Harris »

Gomblenyomásra való történés
« Válasz #8 Dátum: 2016. Október 19. - 16:10:16 »
+1
A GetPlayerTargetActor-t használtam egy időben ilyen célra, aztán el kezdtem gondolkozni, hogy meg lehetne ezt oldani MTA stílusban , most, hogy végiggondolom, egy SelectObjecttel meg lehetne oldani, csak rondán nézne ki.

Gomblenyomásra való történés
« Válasz #9 Dátum: 2016. Október 19. - 19:21:17 »
+1
hát ha raksz egy objectet az actorra pl egy mellényt akkor arra már lehet clickelni nem? hiszen object [bár nem 100%]

Gomblenyomásra való történés
« Válasz #10 Dátum: 2016. Október 19. - 19:47:05 »
0
Gyorsan megírtam valami próbálkozást.
\"width=500http://kepfeltoltes.hu/161019/sa-mp-124_www.kepfeltoltes.hu_.png[/img]
( link a képhez: http://kepfeltoltes.hu/161019/sa-mp-124_www.kepfeltoltes.hu_.png )
Hát igen, leég csúnyán néz ki.

Gomblenyomásra való történés
« Válasz #11 Dátum: 2016. Október 19. - 21:45:52 »
+1
de király, majd publikot is kapunk? :)

Gomblenyomásra való történés
« Válasz #12 Dátum: 2016. Október 20. - 14:27:40 »
0
Háát... Ezen sok mindet nincs mit publikálni, de leírom hogy mire jutottam.
ez hozza létre az actor és az objectet
 

CMD:createactor(playerid, params[])
{
new objid, Float:x, Float:y, Float:z;
if(sscanf(params, \"d\", objid)) return SendClientMessage(playerid, 0xFF0000AA, \"Használat: /createactor [ObjectID]\");
GetPlayerPos(playerid, x, y, z);
CreateActor(objid, x, y, z, 0.0);
CreateObject(3045, x, y, z, 0, 0, 0, 0.0);
new string[256];
format(string, sizeof(string), \"(( Létrehoztál egy actort! (SkinID: %d) ))\", objid);
SendClientMessage(playerid, COLOR_SIKER, string);
return 1;
}

 


CMD:sss(playerid, params[])
{
SelectObject(playerid);
return 1;
}

 
ez előhozaz a kulzort

Gomblenyomásra való történés
« Válasz #13 Dátum: 2016. Október 22. - 09:24:58 »
0
Valaki esetleg nem tudja, hogy hol van az az include, ami tartalmazza a SelectObject(playerid) fügvényt?

Gomblenyomásra való történés
« Válasz #14 Dátum: 2016. Október 22. - 11:24:41 »
0
a_objects.inc

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal