Jump to content

Lukasz

Obsahový guru
  • Příspěvků

    916
  • Registrován

  • Aktivní

  • Vítězných dnů

    75

Příspěvky posted by Lukasz

  1. před 56minutami, Quiter said:

    SAMP berie najnižšie volné ID pri pripojení, takže toto je veľmi ojedinelý prípad... Naviac random funguje viac menej podla rovnomerného rozdelenia, takže ak je 100 hodnôt, každá má približne 1/100 šancu, a keď budú na servery 2 hráči, tak je to cca 50 cyklov... 50 cyklov v ktorých sa skoro nič nerobí je totálne nič :) 
    Samozrejme existuje lepšie riešenie... napr. použiť list (arraylist) z PawnPlus a ukladať doň pripojených hráčov... vtedy by sa ten cyklus zopakoval cca 1x (môže sa stať že vygeneruje zabijaka a teda musí znova)

    Jj, je to ojedinele. Ja necim podobnym uz jednou server "crashnul".. 

  2. před 1hodinou, Quiter said:

    Treba čítať celé:

    Taktiež si určite pred spustením skontroluj, či je na servery viac ako 1 hráč...

    Jo, jsem slepý.

    Ono by bylo stejně asi lepší vzít reálný počet hráčů na serveru, vygenerovat podle toho náhodné číslo a dopočítat k jakému playerid to sedí. Ono když ti GetPlayerPoolSize() vrátí třeba 100 (na jeho serveru nereálné, pokud to nezaplní NPC), na serveru máš ale jen dva hráče, tak to pak dá zabrat trefit se do správného playerid.

  3. On 21. 4. 2021 at 18:16, Quiter said:

    1. rada - tabuj, nepoužívaj jednoriadkové podmienky s funkciou - zvyšuje to prehladnosť

    2. rada - spoznaj všetky cykly :) uľahčí ti to prácu... je pekné že vieš while ale treba poznať aj do-while :)

    3. rada - vždy si pozri svoj kód znova - tvoj kód hovorí, že pokiaľ je hráč pripojený A NIE JE npc, tak vylosuj nové náhodné číslo... to je blbosť, ty chceš aby sa vygenerovalo nové pokiaľ hráč NIE JE pripojený ALEBO je npc

    4. rada - pozri si definiciu funkcii ktoré používaš - random je od 0 po zadané číslo ale exclusive, takže zadané číslo sa nevygeneruje, takže hráč s najvyšším ID nebude nikdy cieľom

    Taktiež si určite pred spustením skontroluj, či je na servery viac ako 1 hráč... Ťažko budeš hladať cieľ keď tam je len ten zabijak - tvoj kód sa zacyklí

    Každopádne som skúšal tvoj kód a nepadá to (samozrejme ani nefunguje), takže chyba bude buď v kóde pred alebo po. Prikladám ti cyklus ako by mal vyzerať.

    
    new randomid;
    do {
    	randomid = random(GetPlayerPoolSize() + 1);
    } while (!IsPlayerConnected(randomid) || IsPlayerNPC(randomid) || randomid == playerid)

     

    Tvůj kód má problém v tom, že pokud bude připojený pouze jeden hráč, tak se bude jednat o nekonečný cyklus a server "padne".

  4. Podle mě by sis zasloužil trest hlavně ty.

    Zveřejňuješ tady cizí dílo, které sis zakoupil a reklamoval, bez dovolení autora. To, že to Janik někde "ukradl" a upravil, je irelevantní. Licence mnohdy povolují úpravu a následný přeprodej. Do jaké míry je to upravené a jak je to morální a etické je něco jiného, co ty ale vůbec neřešíš, ani tady nezveřejníš původní script, nevíš pod jakou je licencí, nevíš nic.

    Neposkytls ani znění smlouvy (je vůbec legitimní??), nevíme o tom vůbec nic, jen je to tvoje tvrzení

    Příště si vymyslím, že mi Scydo prodal nějaký film a zveřejním ho tady a bude tu z toho warezforům, cool.

     

    • Haha! 3
  5. Jak to můžou být výmluvy? Právě si napsal, že máš tisíce řešení. Jak si z nich mám vybrat to správné a vyhovující? Spálím na tom akorát tak hromadu času a to rovnou můžu zůstat u Excelu, který mi na momentální usecase stačí a mnohdy je to i lepší řešení. Nemluvě na možnosti dále jednoduše zpracovávat data. Nechápu tu snahu vše dělat dostatečně "IT".

    Btw, nevím jak Asana, ale JIRA je nejvíc komplikovaný a pomalý shit co jsem kdy viděl a ty fejkové loadingy tomu vůbec nepomáhají.

     

    //EDIT: nejsem proti trellu, asaně, jiře (i když ta je trash), jen nesouhlasím s pushnováním těchto technoligíí někomu, kdo chce očividně excel, který je dostačující na mnoho tasků..

     

  6. Použití excelu není žádná "chujovina" ani "drzost vůči IT". Úplně bych IT neopěvoval. Ono najít, nasadit a spravovat CRM vyjde draze a ve výsledku to stejně bude overkill a mnohdy to ani není efektivnější.

     

    • Líbí se mi to! (+1) 1
  7. Myslim si, že

    return max(1, damage - ((armor / 100) * per_armor))

    je víc fér, než check damage > armor. Tímhle nastavíš to, že vždy dá hráč alespoň 1 dmg, tvým způsobem by hráč mohl dát i damage v intervalu <0, 1).

     

    Proč by to bylo nefér. Hráč A má armor 1000, per armor má 100 %.

    - Hráč B ho attackuje s damage 1000. Hráč A dostane 0 damage.

    - Hráč B ho attackuje s damage 1000.5. Hráč A dostane 0.5 damage.

    - Hráč B ho attackuje s damage 999. Hráč A dostane 1 damage.

     

    Takže by slabší hráč mohl dávat víc damage než silnější. V mém případě by ve všech případech dostal hráč A 1 damage. Není to taky úplně fér, ale slabší hráč nedává pak víc damage než silnější.

     

    // Asi je to to stejné, co postl mxco, moje akorát nezaokrouhluje

    • Líbí se mi to! (+1) 1
  8. Tak gratuluju, vytvořils horší Dini obohacené o sekce. Koukl jsem se do toho tvého includu a musím říct, že je to hrozné a nikomu bych to nedoporučoval použít. Reinventing wheel není vždy nejlepší volba, zvlášť u takových věcí.

    Už jen to tvoje API, které nabízíš je něco hodně zvláštního a chtělo by na tom zapracovat - oddělené ukládání, načítání, mazání a wrapper funkce pro různé datové typy.

     

    Kód samotný je napsaný hodně na prasáka, chtělo by to separovat na více funkcí a použít nějaké guard clauses (třeba).  Pak například s tímhle by tě každý normální člověk vyfakoval

    if(strfind(string,secstr,true)!=-1){sectgle=1;secfnd=1;}else{sectgle=0;}

     

    Taky by bylo fajn vracet něco, co signalizuje error a ne string "not found". To je o ničem. Tahle věc je úplně zbytečná, stačí ta vnitřní podmínka (určitě je tam víc věcí, ale nedá se to číst)

    if(strfind(string,"[",true)!=-1)
    {
        if(strfind(string,secstr,true)!=-1){sectgle=1;secfnd=1;}else{sectgle=0;}
    }

     

    To nejdůležitější, což bohužel neděláš, je jak zmiňoval @Quiter optimalizování znovuotevírání souborů. Ty tam pro každý zapsaný záznam vytváříš temp file, přepíšeš originání soubor do temp filu (s novým klíčem a hodnotou) a pak temp file přepíšeš zpět do originálního souboru. To není vůbec optimální a za sekce (které v DOF můžeš simulovat prefixem klíčů) tohle nestojí. Btw, existuje y_ini a další includy podporující sekce a jsou optimalizované a s normálním API.

     

    • Paráda! (+1) 2
    • Líbí se mi to! (+1) 2
  9. před 21minutami, Reid said:

    Kdyby jsi mel trosku mozek potom to nechapu ale ocividne ho nemas jelikoz server bude mít omezeny pocet herních slotu zda-li víš co to znamená nadějný pawnere:D

    Zkus si to po sobě přečíst než to odešleš. Je to fakt hrozný

    • Zmatený 1
    • Líbí se mi to! (+1) 1
  10. A kde zmiňuju háčky a čárky? Vždyť ta prezentace je jak od nějakého negramota.

    před 2hodinami, Reid said:

    Jelikoz nemam taky dost casu, a furt pawnit a pawnit nejde tim padem pomalu vyvijim svuj herni mod.

     

    před 2hodinami, Reid said:

    Na server take byla pridana ambulance, vy kdyz tam vlezete muzete se tak vylecit behem par sekund pokud mate nedostatek HP(zdravi), poplatek je nyni $2.000 hernich penez.

     

    před 2hodinami, Reid said:

    Myslim si ze hraci ktere nebavi realne zeme, paradise worldy nebo ostatni komunitni servery tak urcite nas navstiv.

     

    před 2hodinami, Reid said:

    Myslim si ze tohle prozatim staci. Pokud administratori budou tak hodni a nechaji mi tema neuzamcene tak budu porad pridavat ruzne informace co bude atd na serveru budu vas informovat na to kdy bude otevreni serveru.

    Můžu pokračovat, to bych ti ale quotnul celý post. Hlavně ta druhá "věta" v prvním odstavci je gold.

    • Líbí se mi to! (+1) 1
×
×
  • Create New...