Peršokti į turinį

[Naujokams] /Setskin komandos kūrimas


Doniss

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 3587 dienas (-ų). Patariame sukurti naują temą, o ne rašyti naują pranešimą.

Už neaktyvių temų prikėlimą galite sulaukti įspėjimo ir pranešimo pašalinimo!

Recommended Posts

Taigi norėčiau jus pamokyti kaip sukurti /setskin komandą, kuri parodo lentelę kurioje nurodžius Skin ID bus galima pasikeisti į tą skin.

Taigi visų pirmiausia - Čia visi Skinų ID'ai: http://wiki.sa-mp.com/wiki/Skins:All



Dabar sukursime pačią komandą kuri parodo lentelę:



Jeigu neturite jokių Command Sistemų:



po:

public OnPlayerCommandText(playerid, cmdtext[])

kuriame if'ą:

if(!strcmp(cmdtext, "/setskin", true))
{
    ShowPlayerDialog(playerid, 0, DIALOG_STYLE_INPUT, "Keičiame skin", "Įrašykite norimo Skin ID!", "Testi", "Atšaukti");
    return 1;
}

/setskin - Keičiame į jūsų norimos komandos pavadinimą (Čia yra tai, ką parašys žmogus, kad suveiktų komanda)

ShowPlayerDialog - Funkcija kuri iškviečia tą lentelę.

playerid - Žmogaus ID kuriam bus parodyta lentelė (Šiuo atveju tam, kuris parašė komandą)

0 - lentelės ID. Pagal šį ID vėliau išgausime informaciją. (Jeigu turite daugiau Dialog'ų - Nenaudokite jau esamo ID!!!)

DIALOG_STYLE_INPUT - Čia nurodėme Dialog'o stiliu (Šiuo atveju - Input (Įvedimas)). Dar yra: _MSGBOX, _LIST, _PASSWORD

Tada matome """""" ,"" - Jie negali būti palikti tušti (Kai kuriais atvejais galima palikti antrą ir ketvirtą). Pirmasis - Pavadinimas, Antrasis - Tekstas, Trečiasis - Pirmas Mygtukas, Ketvirtasis - Antras mygtukas



Dabar kai jau suprantame kaip kurti dialogus - išgaukime iš jų informaciją.



po:

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])

Dedame:

switch(dialogid)
{
    case 0: // Šiuo atveju - setskin dialogas
    {
        if(response)
        {
            new skinid;
            skinid = strval(inputtext);
            if (skinid < 0 || skinid > 299) { return SendClientMessage(playerid, -1, "[ERROR] Neteisingas skin ID! (0-299)"); }
           else
            {
                SetPlayerSkin(playerid, skinid);
            }
        }
    }
}

switch(dialogid) - Skaidom į paprastesnius if'us pagal Dialogų ID'us.

case 0: (taspats kaip if(dialogid == 0) - Nurodome kuriam čia dialogui šie kodai (Šiuo atveju 0, nes taip nurodėme kurdami komandą)

if(response) - Jeigu paspaudė pirmąjį mygtuką - tada vykdome kodus. (Pirmas mygtukas - 1/true, antras mygtukas - 0/false)

new skinid; - naujas kintamasis

strval(inputtext) - paverčiam įvestą tekstą į "integer" (skaičių)



if(skinid < 0 || skinid > 299) - Jeigu įvestas skin id yra mažesnis už 0 arba didesnis už 299 - Parašome, kad jis nėra teisingas taip stabdydami likusį kodą



else { } - Jeigu viskas gerai vykdome likusį kodą



SetPlayerSkin - Keičiame žaidėjo skin'ą

playerid - žaidėjo id - šiuo atveju to kuris iškvietė komandą

skinid - kintamasis kuriame patalpintas id kurį įrašė žaidėjas



Tikiuosi naujokams labiau padėjo ir dabar lengviau suprast bus kas ką daro!



su keliomis komandų sistemomis - lentelių iškvietimas:



zcmd:

CMD:setskin(playerid)
{
    ShowPlayerDialog(playerid, 0, DIALOG_STYLE_INPUT, "Keičiame skin", "Įrašykite norimo Skin ID!", "Testi", "Atšaukti");
    return 1;
}

 Pamoka baigta.

 

P.S. Pamoka kurta ne mano.

Pamokos autorius:

Sidicer.

Redaguota , nario Danas_Card
Nuoroda į komentarą
Dalintis per kitą puslapį

Šaunuolis kad dalinies. Tarp kitko, nurodyk autorių pamokos, nes net jei ir parašei, kad pamoka ne tavo, tai jau skaitosi kopijavimas (realiai, tai ir nurodžius autorių, be jo sutikimo paplatintas kūrinys, skaitosi kopijavimas, bet abejoju ar autorius pyks jei jį nurodysi).

Nuoroda į komentarą
Dalintis per kitą puslapį

Šaunuolis kad dalinies. Tarp kitko, nurodyk autorių pamokos, nes net jei ir parašei, kad pamoka ne tavo, tai jau skaitosi kopijavimas (realiai, tai ir nurodžius autorių, be jo sutikimo paplatintas kūrinys, skaitosi kopijavimas, bet abejoju ar autorius pyks jei jį nurodysi).

Ačiū, jau pataisiau. ;)

Nuoroda į komentarą
Dalintis per kitą puslapį

Ačiū, jau pataisiau. ;)

+R3P :) Kitą kartą bandyk sukurti kažką pats. Pvz.: perdaryk šitą pamoką http://adf.ly/pymXb (P.S. būtų malonu jei sugalvotum kurt pamoka ir mane paminėtum. Reklamos tikslais :D) taip, kad būtų pirkimas. Tikrai nėra sunku, o jei kils klausimų visada gali konsultuotis: skype - arnas.reserv

Nuoroda į komentarą
Dalintis per kitą puslapį

+R3P :) Kitą kartą bandyk sukurti kažką pats. Pvz.: perdaryk šitą pamoką http://adf.ly/pymXb (P.S. būtų malonu jei sugalvotum kurt pamoka ir mane paminėtum. Reklamos tikslais :D) taip, kad būtų pirkimas. Tikrai nėra sunku, o jei kils klausimų visada gali konsultuotis: skype - arnas.reserv

Ačiū! ;)

Gera pamoka +REP.

Ačiū.

na man ji padejo, nemaciau kitur net ir neiskojau bet mokinuosi praverte spaudziu zalia :)

Dėkoju.
Nuoroda į komentarą
Dalintis per kitą puslapį

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 3587 dienas (-ų). Patariame sukurti naują temą, o ne rašyti naują pranešimą.

Už neaktyvių temų prikėlimą galite sulaukti įspėjimo ir pranešimo pašalinimo!

Prisijungti prie diskusijos

Palikti atsakymą galite iš karto, o užsiregistruoti vėliau. Jeigu jau turite paskyrą mūsų forume, Prisijunkite.

Svečias
Atsakyti šioje temoje...

×   Įklijuotas tekstas turi teksto formatavimą.   Pašalinti teksto formatavimą

  Galimi tik 75 veidukai.

×   Nuoroda buvo automatiškai įterpta.   Įterpti nuorodą paprastai

×   Jūsų ankstesnis pranešimas buvo atkurtas.   Išvalyti redaktorių

×   Jūs negalite įkelti nuotraukas tiesiogiai.Įkelkite arba įdėkite nuotraukas iš URL.

  • Šiame puslapyje naršo:   0 nariai

    • Nėra registruotų narių peržiūrinčių šį forumą.

Skelbimai


×
×
  • Sukurti naują...