Jump to content

Gameluner

Uživatel
  • Příspěvků

    37
  • Registrován

  • Aktivní

Příspěvky posted by Gameluner

  1. Aha, takže ty vezmeš nefunkční script, který jsi ani nezkusil pročíst, nebo upravit (nemyslím v jazyce, ale v kodu) a dáš to sem? Si snad děláš srandu... Register System si můžeš udělat i vlastní, to jsem zvládl i já, a to je už co říct :) 

     

    Menší dodatek: Scripty klidně na server nahrát můžeš, a použít je, ale gamemode je na serveru VŽDY jen 1

    Navíc, učit se s pawnem asi ani nezačneš, protože když ani nezkusíš upravit kod, tak to tak dopadne.

     

    Takže ti radím začít s něčím lehčím, než je YSI a Register System. To vskutku do prvního FS nepotřebuješ.

  2. Popis problému:

    som ešte začiatočnik pls mohli by ste mi napisat čo by som mal opravit aby to fungovalo?

    Chyby/varování kompilátoru a při běhu:

    C:\Server\filterscripts\login2.pwn(2) : fatal error 100: cannot read from file: "YSI\y_ini"

    Compilation aborted.Pawn compiler 3.2.3664 Copyright © 1997-2006, ITB CompuPhase

     

    1 Error.

    Kód:

     

     

    #include 
    #include 
    #include 
    #define DIALOG_REGISTER 1
    #define DIALOG_LOGIN 2
    #define COLOR_WHITE "(FFFFFF)"
    #define COLOR_RED "(F81414)"
    #define COLOR_GREEN "{00FF22)"
    #define COLOR_LIGHTBLUE "(00CED1)"
    #define PATH "/Accounts/%s.ini"
    #pragma tabsize 0
    enum pInfo
    {
      pPass,
      pCash,
      pAdmin,
      pScore,
      pBankmoney,
      pBanned
    }
    new Plazerinfo(MAX_PLAYERS)[pInfo];
    forward loadUser_data(playerid,name[],value[]);
    public LoadUser_data(playerid,name[],value[]|
    {
      INI_Int("Password",PlayerInfo[playerid][pPass]|;
      INI_Int("Cash",PlayerInfo[playerid][pCash]|;
      INI_Int("Admin",PlayerInfo[playerid][pAdmin]|;
      INI_Int("Score",PlayerInfo[playerid][pScore]|;
      INI_Int("Bankmoney",PlayerInfo[playerid][pBankmoney]|;
      INI_Int("Banned",PlayerInfo[playerid][pBanned]|;
      return 1;
    }
    stock Userpath(playerid)
    {
     new string(128),playername[MAX_PLAYER_NAME]
     GetPlazerName(playerid,playername,sizeof(playername)|;
     format(string,sizeof(string),PATH,playername);
     return string;
    }
    stock udb_hash(buf[])
    {
     new length=strlen(buf);
     new s1 = 1;
     new s2 = 0;
     new n;
     for (n=0; n

     

     

     

     

     

    Dodatečné poznámky:

     

    --

     

    RIP

     

     

    a neboj učim sa s pawnom

     

     

    Tady na tento kod jsem kdesi viděl návod, neříkej mi, žes to dělal ty, když ani neumíš zkompilovat script, twle...

    //Edit: Jop, našel jsem to: https://pastebin.com/dgQRjmRu

    //Edit2: Navíc, sám si řekl, že jsi začátečník, takže toto ROZHODNĚ neuděláš :d

  3. Díky, jsem rád, že se ti to líbí :-)
    A Hipe, ještě se vyjádřím k tobě, když jsi byl malý, učil ses chodit tak, že ses to šprtal, nebo tím, že jsi to zkoušel? Samozřejmě, prakticky. A argumenty typu: Tady to je jiné atp. neberu, jelikož je to to samé ve stylech učení. Praxe, a teorie.

  4. (i)zcmd hravě zvládne i příkazy s i bez parametrů, což se o strcmp způsobu říct nedá.

    Přesně tak.

     

     

     

    Podstatou tohoto návodu, pokud jsem to správně pochopil, je naučit uživatele programovat praxí

    To jsi pochopil naprosto správně. 

     

     

     

     Proč je učit strcmp i zcmd a složitě (ano, z jejich pohledu složitě) jim vysvětlovat, kdy použít první a kdy druhý?

     

    Souhlasím

     

     

     

    Nauč je jedno, v příštích tutoriálech či až se sami otrkají, může dojít řeč i na strcmp.

     

    A přesně o toto mi jde.

     

     

     

     

    to je právě ono. Začínat praxí není nejideálnější způsob. Např. na vysoké se OOP učí jenom teoreticky, protože ty lid potom nad tím přemýšlí jinak - lepší způsobem. To samé by mělo být tady. Naučíte je něco, ale nebude mít tušení co se děje a aby dále vymyslel něco svého tak maximálně udělá další příkaz. 

     

    Lidé přemýšlí lepším způsobem. Teoretických návodů je tu dostatek, a já se jen snažím, že když nepochopí teorii, tak se jim to vysvětlí na praxi. My je naučíme něco, kde nebude mít tušení, co se děje. Pokud to tušení chce mít, bude se to učit

    ne jen z jednoho návodu. Dále bych se vrátil k tématu příkazů, a podívej se na tohle:

     

     

     

    aby dále vymyslel něco svého tak maximálně udělá další příkaz. 

     

    Co by mohli kromě dalšího příkazu udělat přes ten slavnej strcmp? strcmp je v tomto návodu učit nechci, na strcmp tu myslím taky jsou návody. Znovu ti zopakuji to, co jsem již nejednou napsal

     

     

    Teoretických návodů je tu dostatek, a já se jen snažím, že když nepochopí teorii, tak se jim to vysvětlí na praxi.

     

    Doufám, že nyní již chápeš, oč mi jde, a chápeš, že návodů je tu dostatek, ale teoretických, nikoliv praktických. A to je dle mého názoru chyba.

    To se ale dá taky považovat za jednu z těch dobrých věcí, bude mít více znalostí

    Jestli je to typ člověka co si zde snaží získat více a více reputace tak může pomoct ve více věcech když toho bude vědět více

    Ano, bude mít více znalostí, ale k čemu je využije? Bude znát 3 styly psaní příkazů, kolik jich bude používat? Jeden. Správně.

  5. Tak já se rozepíšu.

    Naučíte je na strcmp, aby něco uměli. Ale jakmile to tak budou dělat, tak sem dají svůj třeba pátý FS. Jakmile vy ho přečtete, tak mu hned jdete říct, že to může dělat lépe, než-li jste ho dříve naučili, a řeknete mu o dcmd. Naučí se na dcmd. Ale jakmile to tak budou dělat, tak sem dají svůj třeba desátý FS. Jakmile vy ho přečtete, tak mu hned jdete říct, že to může dělat lépe, než-li jste ho dříve naučili, a řeknete mu o izcmd.

     

    Tak se 2x bude přeučovat

     

    Zato tady se rovnou naučí nejsnažší metodou.

  6. Hip, toto přesně nechápu. Naučíte je na strcmp, až si na to zvyknou, tak na dcmd, a jakmile to budou umět, tak jim řeknete, že dělají špatně, že existuje izcmd. Tomu já předcházím.

    Jo a vEnd, jelikož jsem se teprve nedávno naučil základy, tak jsem pochopil to přemýšlení úplných nováčků - sry za pravopis, píši z mobilu

    • Líbí se mi to! (+1) 2
  7. proč začínat s izcmd když se učí základy

    -

    Já hraji SA-MP na mnoho serverech s RZE 7.9 a jsou tam jen cizí scripty, nic vlastního - když jsem jednomu majiteli serveru vytvořil jednoduchý příkaz /heal, tak byl šťastný, ale fakt hodně, přitom to bylo toto. Proto chci, aby nováčci uměli si vytvořit svůj příkaz.

     

    u funkce Nick jsi nevysvětlil, že je to/co je to funkce a ani jak ji dále použít. To že tam napíšeš return a řekneš že vrátí nick je tudíž nepochopitelné.

    -

    To máš pravdu, doteď mě však nenapadá, jak to lépe vysvětlit.

     

     {

    - Musí se psát všude, kde chceme vykonat jakoukoliv funkci, aby to mohlo fungovat.
     
    - To taky není nejlépe vysvětlené
    -
    No, tak já na tom nevidím nic nepochopitelného, když něco chci vykonat, tak to musím dát do  { }
     
    - „params[]“ znamená, že příkaz „/heal“ vykoná stejnou funkci, jako když hráč zadá příkaz „/heal sdfsdfadfgsdfg“ - taky nesmyl
    -
    Tak toto tedy není nesmysl. Nováčci nepotřebují vědět, k čemu přesně to může sloužit, když to stejně s tím neudělají.
     
     
    řekl bych, že to nejzákladnější co by jsi měl právě úplným nováčkům říct, jsi neřekl. Neseznámil jsi je s proměnýma (namísto toho používáš new v kontextu "name je název newu a 25 je maximální"). Odkazuješ se na podmínky, ale to cílovka vůbec neví co je, atd.
    Pokud se nováček vážně něco chce naučit, tak tu je návod přímo na proměnné, i podmínky. Nováček, chce-li se něco naučit, si to přečte, byla by ztráta času vypisovat něco, co už tu je.
     
    Podle mě jsem podstatné věci řekl, a navíc tady máš výtažek, co jsem napsal na konci

     

     

    Nejspíše bude tento návod na více dílů, tady jsme si vysvětlili základy.

     

  8. Předmluva

    Předem bych chtěl podotknout, že návod je vážně určen absolutním nováčkům, a už mírně pokročilí si budou říkat, že to umí každý.


    Proč dělám tento návod? Když jsem s pawnem začínal úplně, nenašel jsem žádný návod, jež by byl pro největší „lamy“


    Pak jsem ale narazil na nejmenovaného člověka, a ten mě naučil začátky. Momentálně bych řekl, že jsem mírně pokročilý. A nyní k samotnému návodu

     

    Obtížnost: 1.png

    Úvod - základy


    Komentář v codu
    - Chcete-li si udělat nějakou poznámku v kodu, použijte „//“ (bez uvozovek), pokud to je na více řádků, tak „/*“ a na konci „*/“ (opět bez uvozovek)

    Include
    - Abyste vůbec mohli jakýkoliv FS / GM vytvořit, musíte mít na začátku codu „#include <a_samp>“
    - Dále Vám doporučuji „#include <izcmd>“, jež slouží k snažšímu psaní příkazů. Stáhnete jej tady:
    https://www.mediafire.com/file/76kh8qfmckpwzcx/izcmd.inc
    nebo
    http://forum.sa-mp.com/showthread.php?t=576114
    - A existují různé další includy, jež Vám ulehčí práci.

    Upozornění:
    - Za každou funkcí se musí psát „;“, za podmínkou ne




    První příkazy

    - Na začátek modu si dáme „#include <a_samp“, na další řádek „#include <izcmd>“.
    - Tento příkaz bude sloužit k doplnění HP a vesty. Níže si jej i rozebereme.

    Code:
     

    #include <a_samp>
    #include <izcmd>
    
    
    CMD:heal(playerid, params[])
    {
         SetPlayerHealth(playerid, 100);
         SetPlayerArmour(playerid, 100);
         SendClientMessage(playerid, 0xFF0000AA, "Doplnil sis HP a vestu");
         return 1;
    }

    Vysvětlení
    CMD:heal(playerid, params[])
    - Vytvoří nám příkaz /heal
    - „playerid“ nám zjišťuje ID hráče, jež příkaz zadal
    - „params[]“ Parametry, jež hráč zadal za samotným příkazem.

    }

    - Do těchto závorek se dávají kody. Kod se těmito závorkami "otevírá" a "uzavírá" Příklad:

    {
         //Náš kod
         return 1;
    }
    

    SetPlayerHealth(playerid, 100);
    - „SetPlayerHealth“ je funkce na nastavování HP
    - „playerid“ nám zjišťuje ID hráče, jež příkaz zadal
    - „100“ je počet HP, kolik daná funkce nastaví

    SetPlayerArmour(playerid, 100);
    - „SetPlayerArmour“ je funkce na nastavování vesty
    - „playerid“ nám zjišťuje ID hráče, jež příkaz zadal
    - „100“ je počet vesty, kolik daná funkce nastaví

    SendClientMessage(playerid, 0xFF0000AA, "Doplnil sis HP a vestu");
    - „SendClientMessage“ je funkce na odeslání zprávy konkrétnímu hráči (v našem případě hráči, jež zadal příkaz /heal)
    - „playerid“ nám zjišťuje ID hráče, jež příkaz zadal
    - „0xFF0000AA“ je hexadecimální kod barvy, touto barvou bude daná zpráva odeslána
    - "Doplnil sis HP a vestu" je zpráva, jež to danému hráči odešle

    return 1;
    - Vrátí hodnotu, resp. ukončí danou funkci

     

    Jak odeslat zprávu všem?

    stock Nick(playerid)
    {
         new name[25];
         GetPlayerName(playerid, name, 25);
         return name;
    }
    
    CMD:zprava(playerid, params[])
    {
         new string[128];
         format(string, sizeof(string), "Hráč %s zadal příkaz /zprava", Nick(playerid));
         SendClientMessageToAll(0xFF0000AA, string);
         return 1;
    }

    Vysvětlení:
    stock Nick(playerid)
    {
    new name[25];
    GetPlayerName(playerid, name, 25);
    return name;
    }

    - „stock Nick(playerid)“ je funkce na zjištění nicku hráče, aby jsme mohli odeslat formátovanou zprávu (v tomto případě s jeho nickem)
    - „new name[25];“ Tady se nám uloží nick hráče
    - „GetPlayerName“ Zjistí nám nick hráče
    - „(playerid, name, 25);“ playerid nám opět zjistí ID hráče, name je název newu a 24 je maximální délka nicku + místo pro nulový znak = 25 (Nulový znak se musí přidávat do každého newu, jelikož by se nám jinak zpráva nevypsala celá.)
    - „return name;“ nám vráti hodnotu, resp. ukončí danou funkci
     

    CMD:zprava(playerid, params[])
    {
         new string[128];
         format(string, sizeof(string), "Hráč %s zadal příkaz /zprava", Nick(playerid));
         SendClientMessageToAll(0xFF0000AA ,string);
         return 1;
    }

    CMD:zprava(playerid, params[])
    - vysvětlili jsme si výše
    - new string[128]; nám uloží zprávu, 128 je maximální délka zprávy
    - format(string, sizeof(string), "Hráč %s zadal příkaz /zprava", Nick(playerid));
    - format znamená formátování, resp. použití údajů zapsaných za (v našem případě) zprávou, ale může to být použito i v dialogu, nebo printf, ale to si vysvětlíme později
    - string je naše zpráva
    - sizeof(string) znamená, že velikost naší zprávy bude stejná jako velikost stringu
    - "Hráč %s zadal příkaz /zprava" zpráva vypsaná do chatu
    - Nick(playerid) je náš stock, jež nám zjistí údaj, v tomto případě nick, a vypíše ho
    - return 1; vrátí hodnotu



    Závěrem


    Doufám, že se menší návod líbil, jak bylo vzpomenuto výše, je určen absolutním nováčkům, tak to vezměte na vědomí při hodnocení.
    Nejspíše bude tento návod na více dílů, tady jsme si vysvětlili základy. Doufám, že návod bude označen jako platný, nováčkům by mohl pomoci.
     

     

    A vy, nováčci, nekopírujte, ale snažte se to pochopit, kopírováním získáte.. Vlastně nezískáte vůbec nic, ale když to pochopíte, budete moci tvořit FS, jež nikdo jiný nemá.
    • Líbí se mi to! (+1) 1
  9. No, já to myslím tak, že nechci kopírovat, ale spíš se to naučit icon_e_biggrin.gif

    Poprosil bych někoho, kdo je dobrý na vysvětlování, aby mi udělal tak trošku přednášku icon_e_smile.gif

     

    //Ale velice ti děkuji za ten cod icon_e_smile.gif   (chybí ti v něm závorka, ale tu už si domyslím :))

  10. Popis problému:


    Zdravím, lze nějak udělat příkaz, jež by mohl použít použe člověk s určitým nickem? Například:


    Chyby/varování kompilátoru a při běhu:
    --

    Kód:

     

    CMD:jetpack(playerid, params[])
    {
          SPSA(playerid, Jetpack);
          SCM(playerid, GOLD, "Nyní máš JetPack");
          return 1;
    }

     




    Dodatečné poznámky:

    Nadefinované to mám, errory to neháže icon_e_smile.gif

  11. Popis problému:

    Zdravím, mám problém s tím, že po napsání příkazu /test spadne server, místo aby to vypsalo daný text.

     

    Chyby/varování kompilátoru a při běhu:

    warning 202: number of arguments does not match definition

     

    Kód:

     

    stock PlayerName(playerid)
    {
    new pname[MAX_PLAYER_NAME];
    GetPlayerName(playerid, pname, MAX_PLAYER_NAME);
    return pname;
    }
    
    CMD:test(playerid, params[])
    {
    SendClientMessageToAll(0xFF000000, "Tady něco %s A tady něco", PlayerName(playerid));
    return 1;
    }

     

     

     

    Dodatečné poznámky:

    Includy mám, toto je jen výtažek toho nejdůležitějšího.

  12.  

    https://uloz.to/!xjh...ocmapeditor-amx

    Tady máš jeden starší FS na tvoření objektů ve hře..

    Do scriptfiles vytvoř složku "OcMapEditor", jinak ti to nebude fungovat..

    Příkaz: /mapeditor

     

    Možnosti tam máš takové:

    Sg3sEMlNShWpARvFjBWBuQ.jpg

     

    Toto je nejlepší Object System, co znám. Rozhodně jej doporučuji. OceT, fakt borec clap.gif

     

    //Akorát mi tam chybí automatické načítání map, ale.. Detail, a lehce lze dodělat

×
×
  • Create New...