Szerző Téma: Dialog-os Cucc - Segítséget kérek :(  (Megtekintve 1270 alkalommal)

Dialog-os Cucc - Segítséget kérek :(
« Dátum: 2013. Január 23. - 19:58:56 »
0 Show voters
Sziasztok.
Szeretnék pár parancsot egybe fûzni.. Azaz Dialog segítségével meg csinálni mondjuk az az 5 parancsot.
Szóval Például meg van ez:
 

ShowPlayerDialog(playerid, RLeader, DIALOG_STYLE_LIST, \"Rendõr Leader Kezelõ Felület.\", \"Rendõr Felvétel\\nFõnökös Rang\\nRendõr Kirúg\", \"Ok\", \"Mégse\");

 
Na igen. De ha rá megy mondjuk a \"Rendõr Felvétel\"-re akkor Dobja tovább egy olyan Dialogra amibe lehet írni és az a ID-t kéri. Ha a Id-t lenyomja hogy ok akkor azt az ID-t felveszi.
Erre a Dialog Típusra menyen tovább:
 

DIALOG_STYLE_INPUT

 
És segítségül le írom hogy a Módomba így lehet fel venni rendõrt:
 

if(strcmp(cmd, \"/rendõr\", true) == 0 || strcmp(cmd, \"/rendõr\", true) == 0)
{
    if(IsPlayerConnected(playerid))
    {
            tmp = strtok(cmdtext, idx);
   if(!strlen(tmp))
   {
      SendClientMessage(playerid, COLOR_GRAD2, \"HASZNÁLAT: /rendõr [JátékosID/NévRészlet]\");
      return 1;
   }
                        new para1;
   para1 = ReturnUser(tmp);
   tmp = strtok(cmdtext, idx);
   if (PlayerInfo[playerid][pLeader] == 1 || Admin(playerid, 4))
   {
       if(IsPlayerConnected(para1))
       {
           if(para1 != INVALID_PLAYER_ID)
           {
               if(PlayerInfo[para1][pMember] > 0)
               {
                   SendClientMessage(playerid, COLOR_GREY, \"A játékosnak már van leaderes munkája!\");
                   return 1;
               }
            GetPlayerName(para1, giveplayer, sizeof(giveplayer));
            GetPlayerName(playerid, sendername, sizeof(sendername));
            PlayerInfo[para1][pMember] = 1;
            PlayerInfo[para1][pRank] = 1;
            format(string, sizeof(string), \"%s felvett rendõrnek!\", sendername);
            SendClientMessage(para1, 0x33CCFFAA, string);
            format(string, sizeof(string), \"Felvetted %s rendõrnek.\", rag(giveplayer,3));
            SendClientMessage(playerid, 0x33CCFFAA, string);
            GetPlayerName(playerid, sendername, sizeof(sendername));
            format(string, sizeof(string), \"<< %s felvette %s a rendõrségbe >>\", sendername, rag(giveplayer,3));
            SendFAdminMessage(COLOR_ADMIN,string);
            SetPlayerColor(para1, 0x3399FF);
            if(PlayerInfo[para1][pSex] == 1)
            {
               PlayerInfo[para1][Munkaruha1] = 280;
               SetPlayerSkin(para1,280);
            }
            if(PlayerInfo[para1][pSex] == 2)
            {
               PlayerInfo[para1][Munkaruha1] = 192;
               SetPlayerSkin(para1,192);
            }
            new nev[32];
            GetPlayerName(playerid, nev, sizeof(nev));
            new h,mi,s,y,m,d;
            getdate(y,m,d);
            gettime(h,mi,s);
                format(stringx,sizeof(stringx), \"[%d/%d/%d][%d:%d:%d] %s felvette %s rendõrnek.\",y,m,d,h,mi,s,nev,rag(giveplayer,3));
            LoOoG(stringx);
         }
      }//not connected
   }
   else
   {
      SendClientMessage(playerid, COLOR_GRAD1, \"Nem vagy rendõrfõnök!\");
   }
}
return 1;
}

 
És ez segícségével szeretném a segícségeteket kérni.
Ha ebben birtok segíteni akkor ön állóan meg bírom magam is csinálni a többit
Remélem birtok segíteni.

Dialog-os Cucc - Segítséget kérek :(
« Válasz #1 Dátum: 2013. Január 23. - 20:34:17 »
0 Show voters
Felül definiálod:
 
#define RLeader2 55  //input dialóg azonosító

 
OnDialogResponse -részhez:
 

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    if(dialogid == RLeader)
    {
        if(response)
       if(listitem == 0) //ha kiválasztja a \"Rendõr Felvétel\" -t
       {
            ShowPlayerDialog(playerid, RLeader2, DIALOG_STYLE_INPUT, \"Rendõr Felvétel\", \"Add meg az ID-t, akit felszeretnél venni.\", \"Rendben\",\"Mégse\");
       }
    }
    if(dialogid == RLeader2) //ID beírás
    {
        if(response)
        {
            SetPVarInt(playerid, \"felvettID\", strval(inputtext));  //ID elmentése amit beír [by Virgonc]
}
    }
    return 1;
}

 
Késõbb, ezt a \"felvettID\" -t használhod pl. kiírásnál:
 
format(string, sizeof(string), \"[RENDÕR FELVÉTEL]  id:%d mostantól a Rendõrség tagja.\", GetPVarInt(playerid, \"felvettID\");
SendClientMessageToAll(0xB3D5B2AA, string);
« Utoljára szerkesztve: 2013. Január 23. - 20:43:09 írta takehun »

Dialog-os Cucc - Segítséget kérek :(
« Válasz #2 Dátum: 2013. Január 23. - 21:02:42 »
0 Show voters
ÉS akkor a felvevõs részt ide írjam? :
 

        if(response)
        {
            SetPVarInt(playerid, \"felvettID\", strval(inputtext));  //ID elmentése amit beír [by Virgonc] <--- Ez alá?
        }

 
Jó lenne ha ugy írnád le nekem hogy a /rendõr parancsbõl a cuccokat bele rakod a Dialogos részbe :)
« Utoljára szerkesztve: 2013. Január 23. - 21:13:48 írta Fanni12 »

Dialog-os Cucc - Segítséget kérek :(
« Válasz #3 Dátum: 2013. Január 24. - 12:00:36 »
0 Show voters
Az a baj, hogy összekavarodok a sok if-ben, meg alapból távol áll tõlem az strcmp de egyébként igen oda kell. (csak nem az összeset)
Konkrétan hogyan akarod? Beírja az illetõ a /rendõr parancsot és elõhozza azt a DIALOG_STYLE_LIST -et és akkor lehessen választani  a 3 opció közül?
« Utoljára szerkesztve: 2013. Január 24. - 12:04:19 írta takehun »

Dialog-os Cucc - Segítséget kérek :(
« Válasz #4 Dátum: 2013. Január 24. - 13:31:27 »
0 Show voters
Idézetet írta: takehun date=1359025236\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"32884\" data-ipsquote-contentclass=\"forums_Topic
Az a baj, hogy összekavarodok a sok if-ben, meg alapból távol áll tõlem az strcmp de egyébként igen oda kell. (csak nem az összeset)
Konkrétan hogyan akarod? Beírja az illetõ a /rendõr parancsot és elõhozza azt a DIALOG_STYLE_LIST -et és akkor lehessen választani  a 3 opció közül?
 
Ugy gondolom hogy be irja a /leaderr parancsot amikor be hozza neki azt a Dialogot amit az elején írtam.
Amikor rá megy a \"Rendõr Felvesz\" Gombra akkor Át dobja egy Inputos dialogba ahol kéri az ID-t vagy a Játékos nevét. Ha azt be írta akkor rá nyom az okra akkor felveszi azt a játékost Rendõrnek.
//-------------------
--------------------//
Ha ebben birsz segíteni akkor a többit meg birom csinálni.

Dialog-os Cucc - Segítséget kérek :(
« Válasz #5 Dátum: 2013. Január 25. - 00:36:05 »
0 Show voters

#include <a_samp>
#define RLeader 54
#define RLeader2 55
#define COLOR_RED 0xAA3333AA
#define COLOR_GREY 0xAFAFAFAA
public OnPlayerCommandText(playerid, cmdtext[])
{
    new cmd[256];
    if(strcmp(cmd, \"/rendõr\", true) == 0 || strcmp(cmd, \"/rendõr\", true) == 0)
    {
        if(PlayerInfo[playerid][pLeader] == 1 || Admin(playerid, 4))
        {
            ShowPlayerDialog(playerid, RLeader, DIALOG_STYLE_LIST, \"Rendõr Leader Kezelõ Felület.\", \"Rendõr Felvétel\\nFõnökös Rang\\nRendõr Kirúg\", \"Ok\", \"Mégse\");
        } else {
    SendClientMessage(playerid, COLOR_GRAD1, \"Nem vagy rendõrfõnök!\");
        }
    }
    return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    if(dialogid == RLeader)
    {
        if(response)
        if(listitem == 0) //Rendõr Felvétel
        {
            ShowPlayerDialog(playerid, RLeader2, DIALOG_STYLE_INPUT, \"Rendõr Felvétel\", \"Add meg az ID-t, akit felszeretnél venni.\", \"Rendben\",\"Mégse\");
        }
        if(listitem == 1) //Fõnökös Rang
        {
            //script
            //script
            //script
        }
        if(listitem ==2) //Rendõr Kirúg
        {
            //script
            //script
            //script
        }
    }
    if(dialogid == RLeader2) //Rendõr Felvétel - ID beírás
    {
        if(response)
        {
    if(!IsPlayerConnected(strval(inputtext))) return SendClientMessage(playerid,COLOR_RED,\"Ez a játékos nem elérhetõ.\");
            if(PlayerInfo[strval(inputtext)][pMember] > 0) return SendClientMessage(playerid, COLOR_GREY, \"A játékosnak már van leaderes munkája!\");
            SetPVarInt(playerid, \"felvettID\", strval(inputtext));  //ID elmentése amit beír [by Virgonc]
            GetPlayerName(GetPVarInt(playerid, \"felvettID\", giveplayer, sizeof(giveplayer));
            GetPlayerName(playerid, sendername, sizeof(sendername));
            PlayerInfo[GetPVarInt(playerid, \"felvettID\")][pMember] = 1;
            PlayerInfo[GetPVarInt(playerid, \"felvettID\"][pRank] = 1;
           
            format(string, sizeof(string), \"%s felvett rendõrnek!\", sendername);
            SendClientMessage(GetPVarInt(playerid, \"felvettID\", 0x33CCFFAA, string);
            format(string, sizeof(string), \"Felvetted %s rendõrnek.\", rag(giveplayer,3));
            SendClientMessage(playerid, 0x33CCFFAA, string);
            GetPlayerName(playerid, sendername, sizeof(sendername));
            format(string, sizeof(string), \"<< %s felvette %s a rendõrségbe >>\", sendername, rag(giveplayer,3));
            SendFAdminMessage(COLOR_ADMIN,string);
            SetPlayerColor(GetPVarInt(playerid, \"felvettID\", 0x3399FF);
            if(PlayerInfo[GetPVarInt(playerid, \"felvettID\"][pSex] == 1)
            {
                PlayerInfo[GetPVarInt(playerid, \"felvettID\"][Munkaruha1] = 280;
                SetPlayerSkin(GetPVarInt(playerid, \"felvettID\",280);
            }
            if(PlayerInfo[GetPVarInt(playerid, \"felvettID\"][pSex] == 2)
            {
                PlayerInfo[GetPVarInt(playerid, \"felvettID\"][Munkaruha1] = 192;
                SetPlayerSkin(GetPVarInt(playerid, \"felvettID\",192);
            }
            new nev[32];
            GetPlayerName(playerid, nev, sizeof(nev));
            new h,mi,s,y,m,d;
            getdate(y,m,d);
            gettime(h,mi,s);
    format(stringx,sizeof(stringx), \"[%d/%d/%d][%d:%d:%d] %s felvette %s rendõrnek.\",y,m,d,h,mi,s,nev,rag(giveplayer,3));
            LoOoG(stringx);
        }
    }
    return 1;
}

 
Szerintem full rossz az egész, de már belegabalyodtam.   :unsure:  Errorozik is össze-vissza :no:  Hátha valaki tudja, én feldobom.  :doubt:

Dialog-os Cucc - Segítséget kérek :(
« Válasz #6 Dátum: 2013. Január 25. - 18:09:59 »
0 Show voters
Azért errorozik mert nincs meg neked a módbol a Forwardok stb...

Dupla hozzászólás automatikusan összefûzve. ( 2013. Január 26. - 02:37:56 )

Valaki segít? Mert nem jó sehogy se :(
« Utoljára szerkesztve: 2013. Január 26. - 02:37:56 írta Fanni12 »

Dialog-os Cucc - Segítséget kérek :(
« Válasz #7 Dátum: 2013. Január 29. - 22:02:38 »
0 Show voters
Segít valaki? Sehogy se paszol bele:-S

Dialog-os Cucc - Segítséget kérek :(
« Válasz #8 Dátum: 2013. Január 31. - 21:35:54 »
0 Show voters
Na jó mivel olyan függvényeket stb.-ket használsz amiket lusta vagyok megkeresni illetve megírni ezért egy sablont kapsz tõlem amibe már beletudod építeni a gondolataidat, ezt ha berakod egy üres pawno fájlba akkor fs-ként müxik szóval tudod tesztelgetni, elõre szólok szokása összeakadni más fs/gm-ekben lévõ dialogid-kkel hogy miért azt ne kérdezd mert én nem tudom megmondani.
 

#include <a_samp>
new dialog1 = 101; //IGEN változóként adtam meg különben kb. semmi reakciót nem adott ki magából
new dialog2 = 102; // eléggé rühellem a dialógokat de mivel senki más nem segít ezért én megteszem arra figyelj ne ütközzön másik dialigid-vel
public OnFilterScriptInit()
{
print(\"\\n--------------------------------------\");
print(\" Dialog Test\");
print(\"--------------------------------------\\n\");
return 1;
}
public OnFilterScriptExit()
{
return 1;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
if (strcmp(\"/showdialog\", cmdtext, true, 10) == 0) //ez az ami elõhozza a menüdet
{
ShowPlayerDialog(playerid, dialog1, DIALOG_STYLE_LIST, \"Rendõr Leader Kezelõ Felület.\", \"Rendõr Felvétel\\nFõnökös Rang\\nRendõr Kirúg\", \"Ok\", \"Mégse\");
return 1;
}
if (strcmp(\"/showdialog2\", cmdtext, true, 10) == 0) //ezt csak magamnak teszteléshez csináltam törölheted
{
ShowPlayerDialog(playerid, dialog2, DIALOG_STYLE_INPUT, \"Tag felvétel\", \"Kérem adja meg a személy azonosítóját (ID)\", \"Ok\", \"Mégse\");
return 1;
}
return 0;
}
 
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(response)
{
if(dialogid == dialog1) { // megnézzük hogy a dialogid-je 1-es e
    if(listitem == 0) //ha igen megnézzük a  választott menüpontot
    {
        ShowPlayerDialog(playerid, dialog2, DIALOG_STYLE_INPUT, \"Tag felvétel\", \"Kérem adja meg a személy azonosítóját (ID)\", \"Ok\", \"Mégse\"); // inputos rész
    }
    return 1;
    }
if (dialogid == dialog2) { //inputos dialogid-jét nézi hogy az e
if(strlen(inputtext) != 0 ) //megnézzük írtak e bele valamit
{
new id = strval(inputtext); // az a stringet kicsit belevarázsoljuk az id , egész számos változóba
SendClientMessage(id,0xAA3333AA,\"MÜXIK BANYEK!!\"); // és ha minden jól ment és a saját id-det írtad be megkaptad ezt az üzit
}
return 1;
}
}
return 1;
}

 
Ha valaki belemer kötni hogy miért if-ek és nem switch(dialogid) | case dialog1 | case dialog2 | akkor azért mert ehhez volt kedvem azt egészségetekre xD
Igen valószínûleg meglehet jobban is oldani,de most ennyire tellett, remélem tudtam ezzel segíteni valamit Fanni  ^-^ (ha nem jó vagy további segítség kellene skype-on is elérsz vagy x-en mind2 aláírásomban van)
Na byebye mindenki Red-Eye voltam a Senkik földjérõl!  :smokin:

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal