Jump to content

Quiter

Uživatel
  • Příspěvků

    827
  • Registrován

  • Aktivní

  • Vítězných dnů

    32

Příspěvky posted by Quiter

  1. if(response)
    {
      new Slot = 0;
      for(new i=0;i<MAX_WEAPON;i++)
      {
        if(AllowWeap[i])
        {
          Slot++; 
          if(listitem == Slot-1) // Porovná, či sa listitem rovná vybranému slotu (zníženému o 1 pretože listitem začína na 0)
          {
            GivePlayerWeapon(playerid, i, WeapData[1]); // pridá hráčovi zbraň
            break; // Ukončí cyklus
          }
        }
      }
    }

    Tu máš ešte ako administratívne upraviť cenu a náboje

    WeapData[31][0] = 1368; // Nastavím zbrani č.31 cenu 1368
    WeapData[31][1] = 250; // Nastavím zbrani č.31 250 nábojov

     

  2. V priloženom pwn súbore môžeš pozrieť ako som to myslel ja ;) Máš to ovela jednoduchšie a funkcie si môžeš dorobiť :d WeapData - prvý parameter je cena a druhý počet nábojov, alebo ak si to prepíšeš ináč, to je na tebe ;) Ak by si niečomu nerozumel alebo nevedel, napíš buď sem alebo mne do správy

     

    PS: máš tam aj príklad ako spraviť, aby ti do dialogu vypísalo len zbrane ktoré "povolíš"

    Weapon.pwn

  3. Ja ti neviem, mne príde že ideš na to príliš komplikovane :/

    Sprav si tak, že budeš mať kompletný zoznam zbraní podla ich ID, a admin bude iba povolovať/zakazovať jej zobrazenie v dialogu... Následne cyklom for prejdi všetky zbrane, a pokial má zbraň nastavené zobrazenie tak mu ju zobraz :d

    Budeš na to potrebovať 2 premenné...

    new WeapName[][] = 

    {

    "Zbraň1", "Zbraň2", // atď, nepamätám si v akom idú poradí

    };

    new bool:AllowWeapon[MAX_WEAPON_ID]; // nezabudni nadefinovať max weapon id

     

     

    PS:

    format(sString, sizeof(sString), "%s%s\n", sString);

    Toto ti nikdy v živote nebude fungovať... :/ máš tam 2x %s ale len 1 parameter... 

  4. před 1 hodinou, rEf said:

    Dle všeho koupil bednu bez předinstalovaných win. a nemůže je nainstalovat :-D Bud je hdd v háji či ssd jestli má nebo špatně zapojené a nebo to prostě neumí udělat a nikdo mu nedokáže poradit. Osobně doporučuji jestli máš nějaký hdd jiný zkus ten nebo opačně napoj ten s toho nového na starý pc a uvidíš jestli půjde pokud víš jak to zjistit :d

    Bolo by dobré čítať celý príspevok - nemôže odskúšať či má dobrý HDD pretože nemôže otvoriť bedňu kvôli záruke...

    Autorovi: Čo riešiš? Bedňa je v záruke, predpokladám že si si to dal nejakému servisu poskladať a aj nakúpiť diely tak sa tam vráť, povedz im že ti bios nerozoznal ten disk a nech ti to spravia... nakoľko je to ich chyba, mali by ti to spraviť na počkanie... samozrejme záleží na servise...

    Do budúcna - nedávaj si PC skladať v servise, radšej popros schopného kamaráta :d

  5. před 4 hodinami, MajorGames4 said:

    Definícia je: #define scmta SendClientMessageToAll

    Ešte dodám:

    V tomto FS kde som dal ten TIP system mám viacej príkazov. Môže to byť aj tým že jdnoduche ten FS "je moc ťažký a server ho jednoducho nenačíta celý"?

    Pochybujem...

    Skôr si myslím že ti koliduje názov timeru s nejakým timerom v móde... spravil si si tie printy? Ak nie, na čo čakáš?

  6. No zásadný problém tam nevidím... Pošli definíciu scmta.

    Taktiež keď dáš random(7) tak máš hodnoty 0..6, takže case 7 sa ti nikdy nevykoná

     

    PS: sprav si kontrolu či sa ti volá public (daj tam print, aj do OnFSInit), taktiež môžeš pri settimer kontrolovať hodnotu ktorú vracia - či ti náhodou nevráti 0, ale to nepredpokladám

  7. Nech kukám ako kukám na ten tvoj kód tak mu stále nechápem... Načo tam je ten cyklus - ano viem už si to písal, stále tomu však nerozumiem...

    Uvediem príklad dialogu:

    1) Rádio 1

    2) Rádio 2

    3) Rádio 3

    ...

    7) Rádio 7

    8) Nové rádio

    9) Edituj meno

    10) Edituj link

     

    Tak logicky listitem 0 až 6 prehrajú zvuk a 7,8,9 spustia druhý dialog

     

    Tak mi vysvetli načo tam máš cyklus, ale zmysluplne ;)

  8. před 5 hodinami, rEf said:

    Proč nepoužít new? Např.

    
    new
        Language[2][2][] = { // [0 = Čeština, 1 = Angličtina][počet řádků]
        {
            "Vítej %s",
            "Auto"
        },
        {
            "Welcome %s",
            "Car"
            // nebo do includu např. #include <languages/en.pwn> s obsahem "Welcome %s", "Car"
        }
    };

    Použití např. nastavíme Jazyk:

    
    new
        lang[MAX_PLAYERS];

    default bude 0 tudíž Čeština
    nastavíme Jazyk

    
    lang[playerid] = 0; // nebo 1 což je Angličtina

    a použití bude

    
    Language[lang[playerid]][0] // pochopitelně 0 je řádek Vítej, Welcome
    Language[lang[playerid]][1] // 1 je řádek Auto, Car

    např.

    
    format(cesta, sizeof(cesta), Language[lang[playerid]][0], PlayerName(playerid));

    Zkouška:

     

     

     

    Ano, pri 10 textových reťazcoch o dĺžke 25 znakov možno...

    Ale čo keď bude v móde 100 000 textov o dĺžke 500-10000 znakov (hovorím teraz o dialogoch) :d nemyslím že by to bolo lepšie ;)

  9.  new value1[5] = dialogid == 7;
          new value2[5] = dialogid == 8;
          new idhraca = strval(value1);
          new ciastka = strval(value2);

     

    Úplna volovina...

    V dialogu 7 si sprav

    SetPVarInt(id, "IDHraca", strval(inputtext));

     

    V dialogu 8 si sprav

    GivePlayerMoney(GetPVarInt(id, "IDHraca"), strval(inputtext));

     

    To je celé :d 

    PS: nezabudni si to ošetriť (napr. aby nezadal ID neexistujúceho hráča a pod.

     

    SetPVarInt(playerid, "nazov", hodnota) - teoreticky ti vytvorí premennú typu integer s názvom "nazov" a hodnotou "hodnota"

    playerid je ID hráča na ktorého sa premenná vzťahuje... táto premenná sa automaticky vymaže keď sa hráč odpojí zo servera alebo sa reštartuje/vypne server

     

    GetPVarInt(playerid, "nazov") - podobné ako  SetPVarInt len s tým rozdielom, že chýba parameter hodnota a funguje na to, aby si tú hodnotu vyčítal - vráti ti uchovanú hodnotu 

     

    Veľký !!POZOR!! na malé a velké písmena... je rozdiel medzi "Názov" a "názov" a "Nazov" !!!

  10. před 2 hodinami, MajorGames4 said:

    Dobré ráno, mám problém so svojim FS. Robím si svoj FS, a keď v hre dám /môjpríkaz tak sa mi žiadne menu nezobrazí. Neviete mi prosím napísať script, ako sa robí základné menu? Napr. v menu bude: Výber zbraní, Výber skinu atď...

    Načo ti to máme písať keď to už máš vo svojom FS? Daj sem kód a mi ti ho možno opravíme

  11. Je síce pekné že chceš pomôcť začiatočníkom, ale mám pár výhrad:

    1) gramatika - doplný hráčovy

    2) Predpokladám že publicy už poznáte - nemôžeš predpokladať pri návode, hlavne ak má návod označenie #1... tz. nemôžeš použiť niečo čo si im nevysvetlil

    3) playerid => Zistí VAŠE ID.- nezistí, je to parameter s ID hráča ale nič nezisťuje iba uchováva hodnotu ID hráča ktorému sa public volá (neviem presne ako by som to vysvetlil)

    4) -1 => Farba správy (uvádzajte v "0xXXX" príklad si ukážeme a konci návodu) - píšeš že majú dávať ako 0xXXX ale ty použiješ -1? Prečo? Čo znamená -1... Začiatočník to nevie

    5)

     

    • Nechce sa vám stále písať "SetPlayerHealth", "SendClientMessage" atď?? Uľahčime si to definíciou!
    • Definíciu píšeme vždy pod #include (vysvetlíme si v budúcom návode). Ukážka:

    Prečo ich učíš deiníciu keď ju nevysvetlíš?

    6) Nemyslíš že by bolo najjednoduchšie začať vysvetlením premenných, aby si s nimi mohol pracovať v ďalšom návode?

     

    Páči sa mi ale štýl toho návodu, máš tam legendu a aj praktickú ukážku ;)

    • Líbí se mi to! (+1) 2
  12. if(IsPlayerVip(playerid)) return SendClientMessage(playerid, -1, "Niesi Admin!");

     

    Čo by si na tom chcel jednoduchšie? Best stocku?

     

    if(VIP[playerid] == 1) return SendClientMessage(playerid, -1, "Niesi Admin");

     

    Inak vôbec nechápem čo jednoduchšie na tom chceš :d

    Ešte ma napadá:

    #define VIPKontrola if(VIP[playerid] == 1) return SendClientMessage(playerid, -1, "Niesi Admin")

     

    a potom použiješ:

    VIPKontrola;

     

     

    BTW: Nerozumiem tej podmienke, kontroluješ či má VIP a ak áno, tak mu napíšeš že nie je admin? wtF?

  13. Ja jsem narozdíl od jeho scriptů, ty své vždy dokončil a to bez bugů. Pointa? Ten člověk vytvoří mód a vzápětí s tím konci a nic z toho neni. Je tu pro smích.

     

    Ale stále je to len a len jeho vec :d By ma zaujímalo čím ťa tak vytočil že si sa rozhodol ho takto konfrontovať ;)

  14. A pointa tohto "prínosného" príspevku? :d Naviac trochu silné slová od niekoho kto vytvoril 

    Všehoscript 1.0

    a chváli sa tým v podpise ;)

     

    Hold niektoré veci sa udejú z ničoho nič... Ja si napr. tiež nerobím zálohu svojich vecí, takže ak sa mi pokazí disk tak poviem iba zbohom :d A tiež som začal vela projektov ktoré skončili po menej ako týždni, lebo sa mi nechcelo :d nespravíš nič no :d

  15. Ja neviem prečo tu všetci riešite nejakú klávesu, keď to mu už dáááávno funguje... Viď citáciu nižšie.

     

    A ta funkcia je..? lebo objekt mi vytvorí ale nedeje sa sním nič 


    No nemalo to byť MoveObject ale MoveDynamicObject a funguje mi to icon_e_smile.gif a teraz ako odstranim toto ked mi to v MTA neukazuje ale v sa-mp ano 

    attachicon.gifsa-mp-000.png

     

     

    Ale samozrejme, to by niekto musel najprv čítať všetky príspevky a nie len prvý a posledný...

     

    BTW už si zistil či ten objekt vidíš len ty, alebo ho vidia všetci hráči?

×
×
  • Create New...