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: kadaradam - 2011. Április 26. - 10:39:32

Cím: [TUT]Dialog létrehozása
Írta: kadaradam - 2011. Április 26. - 10:39:32
Sziasztok,kicsit unatkoztam,és ezért gondoltam megírom,hogy hogyan lehet dialogot létrehozni.
1.Élõsszõr is hozzuk létre a dialog ID-jét definiálással.
 
#define DIALOG_0 100 //itt a dialog ID az 100

 
2.Ha ez megvan keressük meg,hogy milyen parancsnál vagy függvénynél jelenjen meg a dialog,és írjuk be,hogy melyik típusú dialogot szeretnénk használni.
Típusok:
0 - DIALOG_STYLE_MSGBOX
\"mmhc4.png\"
1 - DIALOG_STYLE_INPUT
\"UAqqz.png\"
2 - DIALOG_STYLE_LIST
\"o5fKo.png\"
Pl.:
 
public OnPlayerConnect(playerid)
{
ShowPlayerDialog(playerid, DIALOG_0, DIALOG_STYLE_LIST, \"SAMPFÓRUM\", \"Tutorial\\nTutorial\\nTutorial\\nTutorial\\nTutorial\\nTutorial\", \"Rendben\", \"Kilép\");//én a DIALOG_STYLE_LIST-t használtam
}

 
Magyarázat:
playerid   Akinek mutatni szeretnénk a dialogot
dialogid   Dialog ID-je,és ne használjatok negatív számokat(Max ID:32767).
style          Dialog stílusa.
caption[]   A dialog címe,ami a legtetején,fent van.
info[]   Ide kell a szöveget írni,ami bekerüljön a dialogba. Használd az \\n betût új sor kezdéséhez,és \\t -t a tabulátorhoz.
button1[]   A  bal gomb szövege.
button2[]   A jobb gomb szövege.Hagyd üresen,ha el akarod rejteni.
3.Ha meg vagyunk vele,csináljuk meg,hogy mi történjen ha rákkantint egy gombra.
Hozzuk létre az
 
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])

 
callback-t.
Majd rakjuk be alá ezt:
 
if(dialogid == DIALOG_0)
{
    if(response)
    {
        if(listitem == 0) //ha rákattintasz az 1. gombra mi történjen....
        {
      SendClientMessage(playerid, 0x400000FF, \"Dialog tutorial\");//üzenetet küld
}
if(listitem == 1) //ha rákattintasz az 2. gombra mi történjen....
        {
   SendClientMessage(playerid, 0x400000FF, \"sampforum.hu\");
}
if(listitem == 2) //ha rákattintasz az 2. gombra mi történjen....
        {
     SetPlayerHealth(playerid, 100);//feltõlti a játékos életét
}
if(listitem == 3) //ha rákattintasz az 4. gombra mi történjen....
        {
      SetPlayerArmour(playerid, 100);//feltõlti a játékos pajzsát
}
if(listitem == 4) //ha rákattintasz az 5. gombra mi történjen....
        {
                   new vehicleid = GetPlayerVehicleID(playerid);
      SetVehicleHealth(vehicleid, 1000.0);
           SendClientMessage(playerid, COLOUR_WHITE, \"Jármû megjavítva\"); //megjavítja a kocsit
}
if(listitem == 5) //ha rákattintasz az 6. gombra mi történjen....
        {
                   SetPlayerSpecialAction(playerid, SPECIAL_ACTION_DRINK_SPRUNK);//példáúl kap egy animot
                   GivePlayerMoney(playerid, -100);//levesz a pénzébõl $100-t
}
      }
}else{//ellentétben
        SendClientMessage(playerid, 0x400000FF, \"Kiléptél a dialogból\");
        }
}
return 1;
}

 
Ha a másik gombot szeretnétek szabályozni,akkor az if(response) részt tagadni kell,vagyis:
 
if(!response)

 

if(dialogid == DIALOG_0)
{
    if(!response)
    {
            SendClientMessage(playerid, 0x400000FF, \"Kiléptél a dilaogból!l\");
            }
         }

 
Ennyi lett volna a tutorial,remélem érthetõ volt.
Cím: [TUT]Dialog létrehozása
Írta: Sheet - 2011. Április 26. - 11:11:50
Szerintem annyit még irj bele, hogy a második gomb hogy szabályozható.
 

if(!response)
Cím: [TUT]Dialog létrehozása
Írta: Csabesz - 2011. Április 26. - 12:20:01
http://sampforum.hu/index.php?topic=9258.0  :-\\
Cím: [TUT]Dialog létrehozása
Írta: ChuckNorris - 2011. Április 26. - 12:40:46
Idézetet írta: SticK date=1303813201\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"7742\" data-ipsquote-contentclass=\"forums_Topic
http://sampforum.hu/index.php?topic=9258.0  :-\\
 
Inkább több mint egyse :D
Szép leírás lett.  :)
Cím: [TUT]Dialog létrehozása
Írta: kadaradam - 2011. Április 26. - 13:00:53
Idézetet írta: Sheet date=1303809110\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"7742\" data-ipsquote-contentclass=\"forums_Topic
Szerintem annyit még irj bele, hogy a második gomb hogy szabályozható.
[pawn]
if(!response)
[/pawn]
 
Köszi az ötletet,majd belerakom.
 

http://sampforum.hu/index.php?topic=9258.0  :-\\[/quote]
Bocs,nem láttam,hogy van-e már.
 
Inkább több mint egyse :D
Szép leírás lett.  :)
[/quote]
Köszi :)
Cím: [TUT]Dialog létrehozása
Írta: Epsilon - 2011. Április 26. - 13:10:48
Nem láttad? Még a képek is ugyanazok.
Javítsd a helyesírási hibákat!
Cím: [TUT]Dialog létrehozása
Írta: Mitsubishi_Lancer - 2011. Április 28. - 07:34:01
Azt hogy lehet megoldani, hogy az egeret mutassa? Mert így csak vakon lehet kattintgtatni.
Cím: [TUT]Dialog létrehozása
Írta: kadaradam - 2011. Április 28. - 14:22:13
Idézetet írta: Mitsubishi_Lancer date=1303968841\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"7742\" data-ipsquote-contentclass=\"forums_Topic
Azt hogy lehet megoldani, hogy az egeret mutassa? Mert így csak vakon lehet kattintgtatni.
 
Alapból benne van az egér a dialogban.
Cím: [TUT]Dialog létrehozása
Írta: Mokus - 2012. Február 05. - 01:57:17
Csinálhatnál egy dialog készités DIALOG_STYLE_INPUT ilyen style leirásal
Cím: [TUT]Dialog létrehozása
Írta: xTomiX - 2012. Február 05. - 07:30:59
Idézetet írta: Mokus date=1328403437\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"7742\" data-ipsquote-contentclass=\"forums_Topic
Csinálhatnál egy dialog készités DIALOG_STYLE_INPUT ilyen style leirásal
 
http://sampforum.hu/index.php?topic=9258.0
Cím: [TUT]Dialog létrehozása
Írta: Mokus - 2012. Február 05. - 15:31:55
Kössz ez jol jött regisztráciohoz
Cím: [TUT]Dialog létrehozása
Írta: Zola - 2012. Március 08. - 18:50:47
bocsi de most láttam egy oldalt! PONTOSANez volt szóról-szóra!


nem adhatok url-t mivel csak láttame de ha kértek...megnézem
 
nem sampforum.hun
Cím: [TUT]Dialog létrehozása
Írta: nyE - 2012. Március 08. - 21:22:25
Idézetet írta: Zola date=1331229047\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"7742\" data-ipsquote-contentclass=\"forums_Topic
bocsi de most láttam egy oldalt! PONTOSANez volt szóról-szóra!


nem adhatok url-t mivel csak láttame de ha kértek...megnézem
 


http://sampforum.hu/index.php?topic=9258.0  :-\\
 
[/quote]Tudjuk . . .
Cím: [TUT]Dialog létrehozása
Írta: Flash - 2012. Március 09. - 07:01:15
Szép leírás!
De odaírhattad volna a 0.3d-s stílust. (DIALOG_STYLE_PASSWORD)
Cím: [TUT]Dialog létrehozása
Írta: Zotyabuszos - 2012. Március 09. - 17:34:07
Amúgy ez hibás, a listitemes dialogok response-je mindig 0-val kezdõdik  :yes:
 
if(listitem == 1) [/quote]
helyett tehát
 
 if(listitem == 0)
Cím: [TUT]Dialog létrehozása
Írta: Zola - 2012. Március 09. - 18:26:37
Idézetet írta: Antonyo date=1331238145\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"7742\" data-ipsquote-contentclass=\"forums_Topic


bocsi de most láttam egy oldalt! PONTOSANez volt szóról-szóra!


nem adhatok url-t mivel csak láttame de ha kértek...megnézem
 


http://sampforum.hu/index.php?topic=9258.0  :-\\
 
[/quote]Tudjuk . . .
[/quote]
nem itt!!!!!!!!!egfy másik fforum
Cím: [TUT]Dialog létrehozása
Írta: Episode - 2012. Március 22. - 17:18:30
Komoy lett Kádár. Gratulálok  :-*
Cím: [TUT]Dialog létrehozása
Írta: leito222 - 2012. Március 22. - 17:27:00
Szép tut, és hasznos! Biztosan hasznára vállik a kezdõknek. :D
Cím: [TUT]Dialog létrehozása
Írta: N@rbirock - 2012. Április 19. - 20:17:52
1 kérdés a DIALOG_STYLE_MSGBOX-nál hogy lehet megcsinálni hogy van 2 bomd mikor az egyik gombra katintsz lesz valami és mikor a mésikra más valami?
Cím: [TUT]Dialog létrehozása
Írta: kurta999 - 2012. Április 19. - 20:21:00

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
switch(dialogid)
{
case DIALOG_ID_M:
{
   if(!response) // Ha a másik gomb-ra ment, tehát amire az \"ESC\" is megy.
   {
   }
   else // Ellentétben..
   {
   }
}
}
}
Cím: [TUT]Dialog létrehozása
Írta: N@rbirock - 2012. Április 19. - 20:25:31
Idézetet írta: kurta999 date=1334859660\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"7742\" data-ipsquote-contentclass=\"forums_Topic


public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
switch(dialogid)
{
case DIALOG_ID_M:
{
   if(!response) // Ha a másik gomb-ra ment, tehát amire az \"ESC\" is megy.
   {
   }
   else // Ellentétben..
   {
   }
}
}
}

 

ezt írja
C:\\Users\\user\\Desktop\\szerverem.pwn(224) : error 017: undefined symbol \"DIALOG_ID_M\"
Pawn compiler 3.2.3664           Copyright © 1997-2006, ITB CompuPhase
1 Error.
Cím: [TUT]Dialog létrehozása
Írta: kadaradam - 2012. Április 19. - 20:26:52
Helyére a dialog ID-t kell írni.
Cím: [TUT]Dialog létrehozása
Írta: norbee0170 - 2012. Június 16. - 10:31:53
input -ról (DIALOG_STYLE_INPUT) is szívesen látnék tuto-t mer mikor még nemtudtam h hogy is kell ez alapján nemtudtam megcsinálni, de lehet írok én egy tuto-t  :hmmm:
Cím: [TUT]Dialog létrehozása
Írta: xXGoofreXx - 2012. Június 18. - 19:43:52
Nagyon jó leírás lett szerintem  ;D
Amúgy y_less-nek van egy ilyen dialogos pluginja ha jóltudom.
Cím: [TUT]Dialog létrehozása
Írta: zeteni - 2012. Június 18. - 20:14:06
Ha DIALOG_STLYE_LIST et csinálok akkor, hogy lehet megcsinálni, hogy csak 1 gomb legyen?
Cím: [TUT]Dialog létrehozása
Írta: Flash - 2012. Június 18. - 20:18:55
Van a végén általába hogy \"Választ\", \"Mégse\");
Töröld ki a 2.-at, vagyis: \"Választ\", \"\");
Cím: [TUT]Dialog létrehozása
Írta: zeteni - 2012. Június 18. - 20:20:18
És akkor nem kell az OnDialogResponse alá if(!response)?
Cím: [TUT]Dialog létrehozása
Írta: Flash - 2012. Június 18. - 20:20:53
Nem.
Cím: [TUT]Dialog létrehozása
Írta: zeteni - 2012. Június 18. - 20:22:23
Köszi a segítséget!
Cím: [TUT]Dialog létrehozása
Írta: Flash - 2012. Június 18. - 20:23:41
Nincs mit. :)
Egyébként ezt mindegyik dialog fajtánál meglehet csinálni.
Cím: [TUT]Dialog létrehozása
Írta: xXGoofreXx - 2012. Június 19. - 08:55:25
Szerintetek textdraw-al lehet saját stílusú input dialogom? Mármint az újításokkal lehet e beviteli mezõt csinálni.
Cím: [TUT]Dialog létrehozása
Írta: kadaradam - 2012. Június 19. - 09:42:53
Hát max azt tudod bescriptelni,hogy az egérrel,vagy a lekérdezhetõ gombokkal (pl.:nyilak,W,A,S,D) kiválasztgatod a karaktereket!
Cím: [TUT]Dialog létrehozása
Írta: László - 2012. Június 19. - 20:49:01
Figyi én is megnéztem a weboldalt, és tényleg ugyan azt írtad mint õ.Szerintem másoltad, de lehet tévedek, de így fölösleges volt megírnod ezt. :(
Cím: [TUT]Dialog létrehozása
Írta: kadaradam - 2012. Június 19. - 21:18:53
Idézetet írta: László date=1340131741\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"7742\" data-ipsquote-contentclass=\"forums_Topic
Figyi én is megnéztem a weboldalt, és tényleg ugyan azt írtad mint õ.Szerintem másoltad, de lehet tévedek, de így fölösleges volt megírnod ezt. :(
 
Valószínû,hogy másoltam...Ha tudtam volna,hogy létezik az a téma,akkor nem is írom meg!A képek,meg azért ugyan azok,mert samp wikirõl szedtem le õket!
Cím: [TUT]Dialog létrehozása
Írta: Bonfini - 2012. Július 09. - 18:24:15
Köszönöm,nekem segített.
Cím: [TUT]Dialog létrehozása
Írta: Poisonasd - 2012. Július 29. - 12:35:19
Üdv :)
Ezzel meglehet oldani h dialogos legyen az ladmin? :O
Cím: [TUT]Dialog létrehozása
Írta: Rupert - 2012. Július 29. - 12:36:45
Szia, persze hogy meg lehet, de már van dialogos ladmin, töltsd le.
Cím: [TUT]Dialog létrehozása
Írta: Cappsy - 2012. Augusztus 06. - 16:00:10
Szép :D
Cím: [TUT]Dialog létrehozása
Írta: Kyeman - 2012. Augusztus 14. - 09:27:45
Ennyivel kijavítanám!
listitem == 1 helyett listitem == 0

 Hogy miért? Enélkül minden továbbcsúszik. Tehát így:
 
if(dialogid == DIALOG_0)
        {
            if(response)
            {
                if(listitem == 0) //ha rákattintasz az 1. gombra mi történjen....
                {
                                SendClientMessage(playerid, 0x400000FF, \"Dialog tutorial\");//üzenetet küld
                        }
                        if(listitem == 1) //ha rákattintasz az 2. gombra mi történjen....
                {
                                SendClientMessage(playerid, 0x400000FF, \"sampforum.hu\");
                        }
                        if(listitem == 2) //ha rákattintasz az 2. gombra mi történjen....
                {
                          SetPlayerHealth(playerid, 100);//feltõlti a játékos életét
                        }
                        if(listitem == 3) //ha rákattintasz az 4. gombra mi történjen....
                {
                           SetPlayerArmour(playerid, 100);//feltõlti a játékos pajzsát
                        }
                        if(listitem == 4) //ha rákattintasz az 5. gombra mi történjen....
                {
                   new vehicleid = GetPlayerVehicleID(playerid);
                           SetVehicleHealth(vehicleid, 1000.0);
                       SendClientMessage(playerid, COLOUR_WHITE, \"Jármû megjavítva\"); //megjavítja a kocsit
                        }
                        if(listitem == 5) //ha rákattintasz az 6. gombra mi történjen....
                {
                   SetPlayerSpecialAction(playerid, SPECIAL_ACTION_DRINK_SPRUNK);//példáúl kap egy animot
                   GivePlayerMoney(playerid, -100);//levesz a pénzébõl $100-t
                        }
                }
        }
}
return 1;
}