Jump to content

Guyy

Uživatel
  • Příspěvků

    329
  • Registrován

  • Aktivní

  • Vítězných dnů

    7

Příspěvky posted by Guyy

  1. Pozerám na to 10 minút, a stále si niesom istá či ti to pôjde :d Totiž.. vo všetkých príkazoch máš for na MAX_SLOTS.. Ale MAX_SLOTS je define, ktoré sa v hre nedá nijako zmeniť.. Takže čísla si tam síce dáš, ale nič sa nezmení.. Ako som hore písal, vytvor si premennú nejakú, ktorú budeš meniť v hre, a podľa tej premennej dáš aj for..

    a SLOT[ i] vždy bude 8.. Lebo MAX_SLOTS je 8, takže i bude 8 :)

     

  2. Tak ja by som skúsil niečo takéto..

    CMD:nastavitsloty(...)
    {
    if(sscanf...)
    MaximumSlots = params;
    return 1;
    }
    
    CMD:weapons(...)
    {
    	new sString[140];
    	for(new i; i < MaximumSlots; i++) format(sString, sizeof(sString), "%s%s\n", sString, /* Premenná ktorá zistí aká zbraň je na danom slote */);
        ShowPlayerDialog(...);
        return 1;
    }

    Neskúšal som to, ale malo by ti to vytvoriť toľko riadkov, koľko má premenná MaximumSlots..

  3. Ahoj, chcel som sa spítať jak vytvoriť funčný Vehicle Systém.. Že by ste mi napísali nejaký postup, podľa ktorého mám postupovať.. Na vytvorenie vozidla, uloženie a načítanie.. A potom príkaz kde sa zobrazia všetký vozidlá ktoré hráč má, niečo podobné jak má ATomas :d Ďakujem za pomoc..

    ( Pokiaľ to tu nepatrí, tak to presunte :d

  4. před 48 minutami, MajorGames4 said:

    ACH... dobre budem najkonkrétnejší.

     

    Chcem skrátka vedieť, ako sa pracuje case pri format().

    Takže keď mám napr.:

      Opětovně skrýt obsah

            format(String,sizeof(String),"- Každá zbraň má 1,000 AMMO -\n");  
            format(String,sizeof(String),"AK47 - (3,000$)\n");         
            format(String,sizeof(String),"M4 - (3,000$)\n");       
            format(String,sizeof(String),"Sawn-Off Shotgun - (1,500$)\n");  
            format(String,sizeof(String),"Knife - (50$)\n");                  
            format(String,sizeof(String),"Desert Eagle - (100$)\n");        
            format(String,sizeof(String),"Minigun - (1,500,000$)\n");
            format(String,sizeof(String),"Snipe - (550$)\n");
                          
            spd(id,102,list,"Kúpiť zbraň",String,"Kúpiť","Zrušiť");

    Ako vytvorím na jednotlivé riadky, čo sa má stať?

    No nie, ty tu pošleš 20 tisíc riadkov FilterScriptu, Errory a každý ma prekontrolovať riadok po riadku kde sa nachádza tá chyba.. Takto si to predstavuješ ??

    Premenná String má obsah "AK47 - (3,000$)\n" atď. A ten string vložíš ako text do Dialógu.. Tak ako asi sa bude robiť case ? Pomocov switch :) Čiže nejako takto

    switch(listitem)
    {
    	case 0: // AK47
    	case 1: // ...
    }

    :o Problém vyriešený

     

    A v dialógu ti zobrazí posledný format.. Daj to takto

    format(String,sizeof(String),"%sKúpiť zbraň\n", String);
    format(String,sizeof(String),"%sKúpiť skin\n", String);
    format(String,sizeof(String),"%sKúpiť auto\n", String);
    format(String,sizeof(String),"%sPravidlá\n", String);

     

  5. Fest mi to vadí, a asi nie len mne.. Tie tvoje define, to si mám furt zistovať čo je napr. 'gpw', 'gpm', 'msg', 'spd'... Ludia ti pomôžu ked si nemusia všetko hľadať čo to znamená, dávaj si to normálne 'GivePlayerWeapon / Money', 'DIALOG_STYLE_MSGBOX', 'ShowPlayerDialog'.. Lebo ja by som tu niež neodpovedal, lebo sa mi to nechce zisťovať.. V Pawne si to maj jak chceš, ale myslím že tu každý píše všetko normálne, a nie skratky..

    K tým errorom:

    To mám akože skade nabrať ten riadok kde sú tie errory.. Ty tam máš 50 dialogov a 20 formatov.. Tak to si mám vybrať ten ktorý sa mi bude páčiť a opraviť errory ?? A prečo máš tak veľa znakov v premenných ??

    new pripoj[1000];
    format(pripoj,sizeof(pripoj),"[CONNECT] Hráč %s sa pripojil do hry!",gpn(id));

    Tam aj keby som dal 200 ta je veľa, nie to dalších 800.. Zbytočná veľkosť.

  6. před 57 minutami, DuFF said:

    Neviem, či sme sa pochopili, pýtal som sa ťa, či má význam mať v kóde cyklus, ktorý sa vykoná iba raz (prečo ho úplne neodstrániť?). 

    A už som zistil, kde je chyba: rInfo[listitem][Used] == true... Ak vyberieš listitem >= MAX_RADIO, tak to tu spadne, skús tú podmienku prerobiť na: if (listitem < MAX_RADIO && rInfo[listitem][Used]) prípadne na if (listitem < MaxRadio)

    Ouu.. Ďakujem :) Pomohlo

     

    před 52 minutami, Quiter said:

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

    Lebo včera som sa pýtal v chate a Lukasz mi povedal že nemám používať case, ale cyklus.. lebo case 0 .. MaxRadio nejde

  7. Tak ten cyklus má význam taký, že ja ked kliknem na riadok, tak to spustí toľko krát, koľko je MaxRadio.. Ale už som tam dal return 1; takže to spustí len raz.. a MAX_RADIO už nepoužívam.. v príkaze mám MaxRadio.. Lenže to bude problém v listitem-och lebo mne tie rádia spustí aj ked ich je 10, aj prída.. Len ked kliknem na upraviť tak sa nestane nič

  8. Začal som na novom projekte, Dynamický Rádio Systém.. Aby som stále nepridával case, riadky v príkaze... urobil som si všetko cez cyklus, ale keď mám vytvorených 9 a viac rádií, tak mi riadky Upraviť Meno / Link vôbedz nefungujú.. Ďakujem za pomoc :)

    #define MAX_RADIO 10
    
    new rInfo[MAX_RADIO][RadioSys];
    
    // OnDialogResponse
    for(new i; i < 1; i++)
    {
        if(rInfo[listitem][Used] == true) PlayAudioStreamForPlayer(playerid, rInfo[listitem][rUrl]);
    	else 
    	{
    		if(listitem == MaxRadio) 	   AddNewRadio(playerid); // Toto ide stále, až do MAX_RADIO
    		if(listitem == MaxRadio + 1)   ShowNameEdit(playerid); // Ked je 9 a viac rádií, toto nefunguje
    		if(listitem == MaxRadio + 2)   ShowLinkEdit(playerid); // Toto tiež nie
    	}
    }
    
    // Vytvorenie rádia v Inite, premenná MaxRadio
    stock Radio(Name[], Url[])
    {
    	/* ... */
    	rInfo[MaxRadio][Used] = true;
    	return MaxRadio++;
    }

  9. Hm.. Zaujímavý návod.. Veľa návodov čo som videl bolo v príkaze že ked pLang == 0 tak mu pošle správu v tom jazyku, else pLang == 1 tak mu pošle tiež v inom :d Ja som chcel tiež urobiť Multi Lang GM ale nechcelo sa mi stým if pLang blabla babrať :d Toto je lepšie, možno využijem ;) Dobrý návod.

  10. Kedže mi vždy YSI 4 dávalo velkú veľkosť súboru (MB) tak YSI nepoužívam, ale páči sa mi CoreJobs (YSI), ale nechcel som tam mať YSI tak som to celé prerábal, jediné čo som tam nechal je y_va na Update TextDrawu.. Ale narazil som na problém, každý funkcia používa funkciu SGetJobIDFromName, a v tej funkcií je "foreach(new iJob_ID: Jobs)" a ked som to zmenil na "for" a dal tam dMAX_JOBS , napísalo že Zamestnanie neexistuje.. Prosím niekoho skúseného, ktorý vie pracovať s YSI, aby mi poradil jak to nahradiť funkciou "for" aby to nepísalo že to Zamestnanie neexistuje.. Ďakujem :)

    #define dMAX_JOBS (100)
    new Iterator: Jobs<dMAX_JOBS>;
    
    stock SGetJobIDFromName(sJobName[]) {
    
    	foreach(new iJob_ID: Jobs) {
    
    		if (!strcmp(JobsInfo[iJob_ID][eJob_Name], sJobName, false)) {
    
    			return iJob_ID;
    		}else return printf("| SJob | Error: Prace %s neexistuje! Nektere fce nebudou spravce fungovat!", sJobName);
    	}
    }

     

    A ešte jedna vec, v vytváraní je 

    iJob_ID = Iter_Free(Jobs);

    Čím mám toto nahradiť ?? Ďakujem :)

  11. No áno.. Lenže on neodstránil to na peniaze, a teraz má score aj na peniaze aj na killy.. A zbytočne zataží server ked to dá do OnPlayerUpdate.. Predsa, Killy a umrtia sú len v OnPlayerDeath.. Takže je zbytočné to dávať do OnPlayerUpdate :) Skús si dáť správu do OnPlayerUpdate, a stlačiť W.. Dá ti ju tak cca 3 krát, a skús isť Infernusom 3 minúty, ta máš 20 tisíc správ.. Takže zbytočne 20 tisíc krát (napríklad) 100 hráčom bude nastavovať score za sekundu, no nie ? :d

  12. Pekný tutorial pre nováčikov.. Ale.. Sú to nováčikovia, jak im povieš, tak to budú robiť vždy, takže čo si dal to "Viac premien"..

    new pawn;
    new pawno;

    Vždy budú davať premenné do dalších  riadkov, tak tam aj pripíš že to môžu dávať aj do riadku..

    new pawn, pawno;

     


  13. if(KockaCislo > KockaCisloPC) SendClientMessage(playerid, RUZOVA, "Vyhrali ste!");
    if(KockaCisloPC > KockaCislo) SendClientMessage(playerid, RUZOVA, "Prehrali ste!");
    if(KockaCislo == KockaCisloPC) SendClientMessage(playerid, RUZOVA, "Remíza!");
  14. Ježiš.. Mivčo, zistí si čo robia dané podmienky, a nezvaluj to na Objecty.. icon_e_biggrin.gif Ked napísal Hip že čo to robí, dal som si na newkeys & 2 zobrazenie InfoBoxu.. Hádaj na aké to máš tlačítko icon_e_smile.gif C.. Nie H icon_e_smile.gif Ked som stlačal H, tak nič, ked C tak sa mi zobrazoval InfoBox.. icon_e_wink.gif Si tam daj nabudúce aj správu či sa to vôbedz vyvolá.. Lebo by si na to neprišiel nikdy prečo ti to nejde icon_e_biggrin.gif

    A teraz som hladal na Wiki.. Ty tam máš newkeys & 2.. Ale 2 je Crouch icon_e_biggrin.gif Neviem kde si hladal, ale Hčko je 262144****icon_e_biggrin.gif Tu máš, na budúce tam nepchaj somariny, a potom sa stažuješ že ti to nejde icon_e_biggrin.gif http://wiki.sa-mp.com/wiki/Keys A pozri si tam hned aj druhý riadok 'Macro', 'Value' (čo si dal za newkeys) a 'Default key (On Foot)' icon_e_biggrin.gificon_e_biggrin.gif Ale kde si našiel že 2 je Hčko ?? :d To ma zaujíma, fakt :d

  15. Popis problému:

    Zrobil som si textdraw na InfoBox, všetky podmienky, zobrazenie, skritie mám.. Ale dáva mi Error mismatch pri podmienke na Zobrazenie textrawu :/ Ďakujem za pomoc

     

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

    error 035: argument type mismatch (argument 2)

     

    Kód:

     

    CMD:showinfobox(playerid, params[])
    {
      new id, titl, commen, dela;
      if(!IsPlayerAdmin(playerid)) return 0;
      if(sscanf(params, "ussi", id, titl, commen, dela)) return SendClientMessage(playerid, -1, "...");
      ShowPlayerInfoBox(id, titl, commen, dela); // Riadok s Errorom
      return (true);
    }
    
    
    public ShowPlayerInfoBox(playerid, Title[], Comment[], Delay)
    {
      if(ShowedInfoBox[playerid] == false)
      {
        TextDrawSetString(TextdrawInfoBox0[playerid], Title);
        TextDrawSetString(TextdrawInfoBox1[playerid], Comment);
        TextDrawShowForPlayer(playerid, TextdrawInfoBox0[playerid]);
        TextDrawShowForPlayer(playerid, TextdrawInfoBox1[playerid]);
        SetTimerEx("HideInfoBox", Delay, false, "i", playerid);
      }
      else SendClientMessage(playerid, -1, "{FF0000}[ %s ] {FFFFFF}%s", Title, Comment);
      return 1;
    }

     

     

     

    Dodatečné poznámky:

    --

×
×
  • Create New...