Jump to content

DooM

Uživatel
  • Příspěvků

    3481
  • Registrován

  • Aktivní

  • Vítězných dnů

    16

Příspěvky posted by DooM

  1. před 14 minutami, Ironman1M said:

    Ahoj, mám kódik z jedneho modu na nete kde všetky subory neboli skompilovane a boli k nim .inc subory. Všetko išlo až na jeden súbor, ls_apartments12.pwn a toto je chyba

    
    ../include/gl_common.inc(163) : error 028: invalid subscript (not an array or too many subscripts): "i"
    ../include/gl_common.inc(165) : error 001: expected token: "}", but found "if"
    ../include/gl_common.inc(165 -- 167) : error 029: invalid expression, assumed zero
    ../include/gl_common.inc(169) : error 017: undefined symbol "i"
    ../include/gl_common.inc(175) : error 054: unmatched closing brace ("}")
    Pawn compiler 3.2.3664	 	 	Copyright (c) 1997-2006, ITB CompuPhase
    
    
    5 Errors.
    

    Díky za pomoc a zatím čus 😁 ( Přikládám použitý gl_common.inc )

    gl_common.inc 4 kB · 0 downloads

    Pawno nemám, takže si to nemohu zkompilovat, ale co jsem tak koukal, tak ti na řádku 161 chybí část cyklu for 😄 

    stock PlaySoundForPlayersInRange(soundid, Float:range, Float:x, Float:y, Float:z)
    {
    	for(new i=0; i// Toto nahraď: for(new i = 0; i < MAX_PLAYERS; i++)
    	{
        	if(IsPlayerConnected(i) && IsPlayerInRangeOfPoint(i,range,x,y,z))
        	{
    			PlayerPlaySound(i, soundid, x, y, z);
    		}
    
    	}
    
    }

    Asi bude třeba někde definovat tu konstantu MAX_PLAYERS, která by měla odpovídat počtu slotů na serveru. Už si nevzpomínám po těch letech jak to přesně fungovalo 😄

    • Paráda! (+1) 1
  2. před 14 hodinami, Guyy said:

    Ja to potrebujem len cca do konca školského roka, pretože Slovenské zákony mi ešte neumožňujú brigádu, ale ja by som skôr bral úplne nový PC s alzy kedže z bazáru nerád kupujem elektroniku. Takže by sa mi to možno aj vyplatilo kebyže nájdem nejakú stránku podobnú boosteroidu kde zaplatíš 10€ na mesiac a streamuju ti hru neobmedzene dlho ale musíš ju vlastniť (Steam, Epic, ...). Len bohužiaľ boosteroid zatiaľ nemá toľko hier.

    Zákony bych nebral jako výmluvu. Peníze se v dnešní době dají vydělat všelijak. Domluv se se strejdou, že mu naštípeš dříví nebo něco takového 😄Bazarové komponenty jsem ti doporučil z důvodu tvého velmi omezeného rozpočtu. PC, který by stačil na AC: Syndicate by vyšel minimálně na 600-700€ s novými komponenty. Pokud máš nějaký neobyčejný talent nebo schopnost, můžeš se pokusit najít sponzora. Já jsem zhruba před rokem našel v Číně v jedné chudé vesnici velmi talentovanou dívku s neuvěřitelným grafickým nadáním. Samozřejmě finance byly problém. Domluvili jsme se, že jí poskytnu vše, co potřebuje a ona bude pro mě zpracovávat zakázky. Těch streamovacích služeb není mnoho. Pokud jsi hledal, tak jsi je už pravděpodobně všechny našel. Před pár lety tady byla služba OnLive, která byla docela dobrá s nejnovějšími Áčkovými tituly, a tenkrát jediná na trhu. Mohl sis na půl hodiny zahrát hru z jejich seznamu zdarma, pak už se muselo platit, avšak dlouho nevydržela z důvodu nedostatku zákazníků. Proto pochybuji, že by se nyní mělo něco změnit v tomto odvětví. Vždy tam budeš něčím limitovaný.

  3. Ahoj, zatím každá mně známá obdobná služba po čase zanikla. Lidé se slabými PC jsou velice úzká klientela, která prostě nedokáže pokrýt náklady na tak finančně náročný projekt. Na tvém místě bych si zkusil najít nějakou brigádu a postupně si sestavil PC z bazarových komponent. Platit si nějaké "minuty hraní" se stejně z dlouhodobého hlediska nevyplatí.

    • Líbí se mi to! (+1) 1
  4. Tak snad se vám to podaří. Já se neodvážím se nabízet, zase takový profík nejsem a hlavně bych to dělal jen po večerech a ne každý den.

     

    Mohu jen potvrdit, že za oponou se toho děje mnohem více, než se zdá :) Na projektu je dost práce i pro méně zkušené vývojáře(ne však úplné začátečníky) a když někdo udělá prasárnu, tak mu to dá Filip sežrat a hezky si to musí opravit :d

    Jen mě mrzí, že kvůli aktuálním časovým možnostem se nemohu projektu věnovat více. Považuji Hexcom za velice perspektivní :)

    • Líbí se mi to! (+1) 1
  5. Nauč se rozumět jazyku a nauč se dobře pracovat s dokumentací.

    Nečekej, že za týden uděláš WTLS (nebo co je teď nejpopulárnější. Už to nějakou dobu nesleduju :d), ze začátku to bude těžké. Budeš narážet na spoustu bugů, trhat si vlasy a proklínat tento svět, protože ti to nefunguje :lol:

    No, každý jeden z nás si tímto prošel. Postupem času se budeš stále zdokonalovat a dělat méně chyb a všechno půjde líp.

     

    Hlavně začni s malými krůčky. Začít gamemodem je podle mě na úplného začátečníka příliš velké sousto. Zkus začít s jednoduššími scripty a postupně navyšuj obtížnost. Musíš si svůj cíl stanovit tak, aby nebyl příliš složitý, ale zároveň ani příliš jednoduchý, jinak se nic nenaučíš. Taky není na škodu studovat kódy zkušenějších pawnerů. Takhle se můžeš dost věcí naučit, ale to bych doporučoval až ovládneš alespoň základy jazyka.

     

    Mimochodem tím, že budeš číst jen návody se toho moc nenaučíš, pokud si to neosaháš v praxi. Nesnaž se vědět a pamatovat si všechno, ale jen to, co nezbytně potřebuješ. Pro to ostatní je tu google a wiki.

     

    Pawn není zase tak těžké. Věřím, že to zvládneš V.gif

    • Líbí se mi to! (+1) 1
  6.  
     

     

    Je to tak že já sem Dal Kod

    if(newkeys == KEY_SECONDARY_ATTACK) // Zmáčknul tlačítko, mělo by to jít na Enter / F { if (IsPlayerInRangeOfPoint(playerid, 1.0, 2514.3208, -1691.5126, 14.0460)) // Tohle zčekne, jestli ten playa je vůbec v pickupu, resp. na souřadnicích jako je pickup { SetPlayerPos(playerid, 2261.2107,-1136.4813,1050.6328); // Teleport do šopy SetPlayerInterior(playerid, 0); // Nastaví ID interiéru, kde sa šopa nacházá } }

     

    a pak to dám do pawna a dam to do Amx dam to na Fak*edu a dám to restartovat když příjdu na server Zaregistruji se tak mi nefungují věci jako jsou Scripty a Nevidím objekty jako jsou Dveře závory atd ... Prosím Pomocte mi Předem Děkuji ...

     

    Pravděpodobně příliš mnoho objektů, budeš muset použít object streamer.

  7. Já ti to teda trochu vysvětlím.

    Takže jak udělal DooM tu podmínku do toho budeš nahrávat hodnotu kolik aut má. Ovšem jelikož chceš použít pouze na žádné nebo 1 auto, doporučil bych ti boolean (vrací pouze hodnotu true (1) a false (0)). Pokud by jsi to chtěl na více aut, podmínka, co napsal DooM vy přišla vhod.

    Následná podmínka:

    if(PCar[playerid]) return SendClientMessage(playerid, COLOR_BLUE, "You already have one car");// Zde můžeš použít i PCar[playerid] == true, ovšem PCar[playerid] toto je podstatně kratší.
    

    Dále, co patří k podmínkám a měl bys vědět, co znamenají tyto znaky: "&& a ||".

    && - pokud platí třeba obě dvě podmínky, co zadáš ("a zároveň"). Např.: Budu bankéř a chci aby majitel napsal svůj podpis a vložil své heslo, a pokud se jedno z těch dvou údajů nebude shodovat, peníze mu nevydám.

    if(podpis[playerid] && heslo[playerid])//pokud se oba shodují
        GivePlayerMoney(...);
    else if //jakýkoliv jiný případ
        return SCM(plid, col, "Některý z údajů je nesprávný")

    || - pokud platí alespoň jedna z podmínek ("nebo").Např.: Uplně stejná situace, ale bude mi stačit když bude alespoň jeden z údajů správný (v praxi asi nevyužiješ :d ):

    If(podpis[playerid] || heslo[playerid]) //
        GivePlayerMoney(...);
    else if //pokud se ani jeden neshoduje
        return SCM(plid, col, "Žádný z údajů se neshoduje")

    Určitě sis všiml, že jsem neudělal složené závorky za podmínkou. Je to z toho důvodu, že když zadáváš pouze jeden příkaz, který se má vykonat, tak ti ho program vykoná, pokud by jsi ovšem zadal bez složených závorek více akcí, udělala by se ti pouze ta jedna, druhá by se třeba udělala i kdyby si podmínky nesplnil (to už záleží na kódu). Takže pokud zadáváš blok příkazů, co má program udělat musíš použít složité závorky. Jinak já spíš doporučuju je dělat všude, je to z toho důvodu, že když budeš chtít třeba něco přidat, tak budeš muset zase zadávat složené závorky a zbytečně to jenom zkomplikuješ. + se mi to zdá přehlednější. 

     

    Další, o čem by jsi měl vědět je negace (možná ses to už učil ve škole), zde se na negaci používá "!":

     

    Např.:

    Uděláme třeba to s autama, akorád je budeš chtít zničit:

    f(!PCar[playerid]) return SendClientMessage(playerid, -1, "Nemáš žádné auto vytvořené!"); //Znegujeme hodnotu PCar, pokud by zde nebyl vykřičník znamenalo by to "Je li hodnota true(1)", s ! to teďka znamená "Je-li hodnota false (0)". 
    if(PCar[playerid] >= 1 && !PCar[playerid] > 0) //"Je-li alespoň jedno auto a zároveň není méně jak 0 auta"  ---> Spíše by se to hodilo k penězům. Šlo by samozřejmě použít i else if ale máš tu dvě možnosti, která by mohla proměnná PCar obsahovat a to kladnou hodnotu i zápornou, ale pochybuji, že by si někde prodával -1 auta, ale chyba by se někde vyskytnou mohla.
    {
    DestroyVehicle(...);
    PCar--; //odečte jednu jednotku u PCar
    }

    Kód jako takový je samozřejmě blbě, buď by jsi musel zadat id vozidla, kdyby si jich měl víc nebo by se museli zničit všechny, na to samozřejmě cyklus a od PCar odečíst počet vozidel, co jsi měl.

     

    Jinak doufám, že ti to trochu pomohlo, kdyby jsi něco nechápal, tak se klidně zeptej.

     

    Vysvětluješ to špatně :) ... To pole jsem použil, aby každé auto mělo individuální index, dle hráčovo ID, nikoli počet vozidel.

  8. Zkus to takto.

    Vysvětlovat asi nemá cenu, ten kód je podle mě samopopisný.

    new PCar[MAX_PLAYERS];
    
    
    public OnPlayerCommandText(playerid, cmdtext[])
    {
    if (strcmp("/car", cmdtext, true, 10) == 0)
    {
    if(PCar[playerid]) return SendClientMessage(playerid, COLOR_BLUE, "You already have one car");
    new Float:x, Float:y, Float:z;
    GetPlayerPos(playerid,x,y,z);
    PCar[playerid] = CreateVehicle(411, x+3, y, z, 90, -1, -1, -1);
    SendClientMessage(playerid, COLOR_BLUE, "Car was spawned");
    return 1;
    }
    return 0;
    }
×
×
  • Create New...