Jump to content

Tanga

Uživatel
  • Příspěvků

    1278
  • Registrován

  • Aktivní

  • Vítězných dnů

    29

Příspěvky posted by Tanga

  1. Tak kvoli pohodliu hračov by som si naukladal (/save) pozície všetkych možnych štartovnych pozicii aut.

    enum BridgeCarsEnum {
      Float:POSX,
      Float:POSY,
      Float:POSZ,
      bool:OCCUPIED 
    };
    
    new BridgeCars[20][BridgeCarsEnum]; // tu si nasledne niekde napln tento enum.. Radsej v inom subore, bude to prehladnejsie
    
    /joinbridge
    new bool:joined;
    for (new i; i < sizeof BridgeCars; i++) {
      if (!BridgeCars[i][OCCUPIED]) { // zaradom prirad hracov do dalsieho volneho auta
        BridgeCars[i][OCCUPIED] = true;
        bridgeauto = CreateVehicle(402, BridgeCars[i][POSX], BridgeCars[i][POSY], BridgeCars[i][POSZ], 1, 1, 1, 0); 
        joined = true;
        ...
        break; // rovno skonci cyklus
      }
    }
    if (!joined) SendClientMessage(playerid, -1, "Zavod je uz plny, nemohol si sa pripojit.");
    
    /konieczavodu
    for (new i; i < sizeof BridgeCars; i++)
      BridgeCars[i][OCCUPIED] = false;
    

    Nasledne by som hračov posadil na trať na volne pozicie.

    • Líbí se mi to! (+1) 1
  2. Možno daka kniha, cjavim, "Učebnice jazyka C" od Herouta. Neni to o Pawn, ale je to skoro rovnaky jazyk. To mne pomohlo. uloz.to

    Ale keby niečo moj skype je gtanoncheat, mozes sa spytat, ale az ked dočítaš prvych 15 stran z tej knihy, skorej ani nepiš :p
     

  3. Mám jednu otázku. Je nutné používat CallRemoteFunction? Nešlo by zavolat funkci přímo? Takhle totiž nelze předávat pole jako argument (nemyslím řetězec).

     

    Dobrá otázka, dík. :p

    Po pár experimentoch som zistil, že áno. Resp. CallLocalFunction() j, to upravím.

     

    Povedzme, že includ z bodu 5 (callback hook) bude v include "testcode".

    Lepšie sa to predstavuje keď to volanie dám už mimo pôvodného súboru (nemusíš rozmýšlať či už to bolo definované alebo ktorý krok preprocesora prebieha... ale stalo by sa to isté).

    #include <a_samp>
    #include <testcode>
    
    main() {
      OnPlayerGiveDamage(1, 2, 3, 5, 6); // example of a normal call
    }
    

    a tiež teda ku koncu testcode.inc (riadok 19) je 

    #define OnPlayerGiveDamage MyOnPlayerGiveDamage // premenovanie nasledujuceho callbacku
    

    z čoho vznikne

    main() {
      MyOnPlayerGiveDamage(1, 2, 3, 4, 5);
    }
    

    čo následne

    a) ak neexistuje ďalší hook, crashne pri forwarde z testinclude.inc "error 004: function "MyOnPlayerGiveDamage" is not implemented"

    B) ak existuje ďalší hook, zavolá rovno ten ďalší a preskočí ten môj (skompiluje, ale kód bude chybný)

  4. Vyskusam. :)

    Z latinskeho por ciento, tj. "zo sto, na sto, ku sto, rozdelit medzi 100, ...".
    Teda 5"%" = 5 "zo sto" = 5 "rozdelit medzi sto" = 5 "/100" = 0.05.

    No a ked chces 5% z nejakej inej sumy, len to nou vynasobiš,

     

    Keď ale povieš 5%, nie je jasne "čo rozdeluješ medzi 100, predpoklada sa teda že čislo 1"

    5% z 1 = (5/100) * 1

    Keď tam maš zadane aj čo presne rozdeluješ, napr. "686", tak

    5% z 686 = (5/100) * 686

    (je to "opačny" zapis nez pouzil Ewwe, vysledok je rovnaky)

    • Líbí se mi to! (+1) 1
  5. OK, neda mi nepozriet to teraz... :d Hlavne sa nenechaj odradit od Pawn tym co som napisal.. Proste, tje jedno. Neberte to tak važne.
    Kod som pozrel, nechapem z toho nič, ale to bude tym ako timestamp funguje plus tym tvojim optimalizačnym riešenim.

     

    Tak ak chceš, možem ti aspon poradit co by som tam zmenil ja...
    Pozrel som ten tvoj kod, a tiez ten z odkazu co si dal, tipujem ze tym nekonecnym cyklom si sa inspiroval odtial... Ten kod co tam chlapik dal je tiež nejaky podozrivy.. Nerozumiem mu teda, ale

    Timestamp -= 172800; // Delete two days from the current timestamp. This is necessary, because the timestamp retrieved using gettime() includes two too many days.
    

    wat

    @Highpritn :d to s tymi dvoma hodinami :d shet :d skoro mi pri tom zhorel mozog, ale uz viem :d
    Čo je unix timestamp: kolko sekund ubehlo od 1970-01-01T00:00:00 GMT

    U nás však 01.01.2017 00:00:00 nastalo kvôli časovému posunu o dve hodiny skorej než v Greenwichi, a teda "náš" timestamp stihol napočítať o dve hodiny menej oproti nejakému na kompe v Greenwichi. :)

    (GMT) 01.01.2017 00:00:00 = 1483228800
    (MY)    01.01.2017 00:00:00 = GMT - 2 hodiny = 1483228800 - 7200 = 1483221600

    Je to potrebné odpočítať teda preto, lebo tipujem autor dal vypočítať cez online kalkulačku dátum 1.1.2017 a len pre GMT. Keby v tej kalkulačke našiel naše časové pásmo, rovno mu ukáže náš dátum a netreba nič odčitovať.
    zo zvyškom čo pišeš suhlasim
     

    No a čo by som ti/autorovi poradil, #define pisat vzdy s velkymi pismenami. Robi sa to tak vzdy a vzdy sa to tak aj robilo. Lahsie sa to cita. Tiez by som nepomenovaval tie #define rovnako ako premenne.
    A tiež nepouživat goto, next, break, atd. Samotne použitie takychto konštruktcii spomaluje celkovu rychlost vykonania kodu kvoli branch prediction (podobny pripad, hlavne mad obre vysvetlenie). Ale to nei je podstatne. Hlavne sa to zle číta, lebo musíš hladať kde to začína a končí. Tiež switch je rýchlejší než ify.

    Na druhej strane viem, že najrýchlejší kód je vždy najmenej čitatelný.

    Inak teda priznavam, nemam šajnu čo sa v tom kode deje a netušim čo su tie magicke čisla. Do buducna, piš komentare. ;)
    Evidentne sa totiž chceš pochváliť svojim kódom, tak musíš aj zariadit, že ten kod je to čo nas zaujme. A dobry kod je ten, ktory ma komentare.
    A tiež teda chvalim napad.

  6. Čusbus.

    Napadlo mi, že by som sa pochválil akú hudbu počvúam, resp., že by som sa opýtal čo počúvate vy.
    Už to tu párkrát bolo a je mi jasné, že by to ajtak nikto nepočúval.

    Všetci by teda len napísali mená songov. Ale to mi prišlo vcelku oničom, už predsalen je ľudstvo ďalej.

     

    A teda mi napadlo, keďže ja používam youtub v podstate len na počúvanie songov, abo aspoň v drvivej väčšine, dajte sem screenshot svojho home na youtube. Tam sa zobrazujú videá, ktoré pozeráte najčastejšie a teda, "ste to vy".

    Takto budeme môcť vidieť aj náhľad na daný song a je to celkovo lepšie.

    Samozrejme, ak počúvate hudbu cez nejaký iný softvér, tak dajte podobný screen.

     

    Ako?
    Buď si stiahnite nejaký web-to-image plugin do prehliadača, alebo napr. (ja) sa dá použiť nejaký web-to-pdf a následne vygoogliť pdf-to-jpeg converter a cez to spraviť obrázok.

    Obrázky dajte do spojleru, to ich resizne tak, aby boli čitateľné.

     

     

    Met0.fb.png

     

     

  7. Fakt kvalitná práca. Hodně dobré. Nehanbil by som sa tky za také interiéry.

     

    Inak mozno dojdem, ked tak pokecat, ale musel by som stiahnut gta najprv. icon_e_biggrin.gif

    Edit: teraz citam ten cokoladovy post
     

     

    Nicméně gratuluji, dosáhli jste svého - na SFDFD už pomalu 2 měsíce neproběhl update, protože člověk v takovéhle situaci už opravdu neví, co může a nemůže udělat, zvláště v už tolik omezeném SA:MP.

    cotijebe kamo, preco by ta malo trapit co ma on na serveri? icon_e_biggrin.gificon_e_biggrin.gif
    Keby mne posielal niekto hentake vyhrazne mejly ako nice, ani ho neposlem doprdele.
    Len sa zasmejem čosi :d

  8. Si zena?

    btw

     

    Ano ale nelze hráči nastavit offset na vozidle. Tudíž když nebudeš brát v uvahu , že se vozidlo hýbe tak tě to portne přesně do středu vozidla. Což je k ničemu když chceš na střechu. 

     

     

    Jednoduše v SA-MP se to nedá udělat tak ,že budeš přímo přilepený na střechu auta. A hrozí u toho ,že tě to čas od času portne až za auto ( desync, ping ). 

    Ked uz riesite tuto myslienku, ked da /glue vypocitas rozdiel hračovych xyz a lietadla. Ten rozdiel si ulozis a v tom timeri das
    SetPlayerPos(lietadloStredX+rozdielX, ...);
     

  9. 3fb.jpg:

     

    main() {}

     

     

     

    brain-Food-720x380.jpg:

     

    main()
    {
        print("Prebieha inicializacia skriptu RookieSkript.pwn...");
        print("Autorom tohoto skriptu ©2017 (tm):");
        print("        _.::[Pu$$Y_D3$TR0Y3R]::._");
    }

     

     

     

     

    hqdefault.jpg:

     

    #define COLOR_EYEFUCKER 0xFF6EC7FF
    public OnPlayerConnect(playerid) {
        SendClientMessage(playerid, COLOR_EYEFUCKER, "VITAJ NA SERVERY, NA KTOROM BEZI SKRIPT ROOKIESKRIPT.PWN");
        SendClientMessage(playerid, COLOR_EYEFUCKER, "TENTO FILESKRIPT NAPIZAL PAWNISTA{FF0000}_.::[Pu$$Y_D3$TR0Y3R]::._");
        GameTextForPlayer(playerid, "~r~~r~~r~_.::[Pu$$Y_D3$TR0Y3R]::._", 50000, 2);
    }

     

     

     

     

    expanding-brain-ultra.jpg:

     

    #include <a_samp>
    
    #define isChar(%0) ((%0 >= 'a') && (%0 <= 'z')) || ((%0 >= 'A') && (%0 <= 'Z'))
    
    #define CELL_SIZE 4
    
    new autor[] = "Nikto";
    
    main()
    {
        doIt();
        print("Skript bol spusteny uspesne.");
        printf("Autorom je: %s", autor);
    }
    
    stock doIt() {
        new tango[] = "tango";
        new p, chr, heap;
        
        heap = get_heap_relative_address();
        
        while (p < heap) {
            for (new i; i < sizeof(tango) - 1; i++) {
                #emit lref.s.pri p
                #emit stor.s.pri chr
                if (isChar(chr)) {
                    chr = tango[i];
                    #emit load.s.pri chr
                    #emit sref.s.pri p
                    p += CELL_SIZE;
                } else if (chr == '%') { // printf("%s", sht);
                    p += 2 * CELL_SIZE;
                    break;
                } else {
                    p += CELL_SIZE;
                    break;
                }
            }
        }
    }
    
    stock get_heap_relative_address() {
        new dat, heap;
        #emit lctrl 1
        #emit neg
        #emit add.c 20
        #emit stor.s.pri heap
        #emit lref.s.pri heap
        #emit stor.s.pri heap
        #emit lctrl 1
        #emit neg
        #emit add.c 16
        #emit stor.s.pri dat
        #emit lref.s.pri dat
        #emit stor.s.pri dat
        return heap - dat;
    }

    • Líbí se mi to! (+1) 2
  10. Na take ukladanie pouzi includ file, nie INI.

    Da sa to aj s ini pripadne, ale je to skarede. V jednom tagu budeš mať celkovy počet mien (napr. 6)
    a cez format() budeš lepiť dokopy napr.
    Meno1
    Meno2
    Meno3
    .. a pouzijes ich ako tagy.


    Jo ahlavne mam pocit ze to co robis je cele zle... IPčky su niečo na čo sa nikdy neda spoliehat od viac ludi na sieti, cez dynamicke IPčky po odosielanie dat s falošnou IP.

  11. No ked uz tu spamujete, niesom zas najstarsi clen.. Ale j, pawno cloveka naučí. :d :D
    Poznam to tu od konca pawnoboxu, ale dlho som nevedel o com to je. Do komunity som prisiel az davno po pawnoboxe.
    Tak ci onak, nech si niekto "povazuje" ewo za nieco ine, pre mna to patri k pawnu. Ostatne boli tam ti isti clenovia :d. Pamatam sa ked som dakomu do SZ poslal spravu o ewo, on ma nahlasil omenovi a ten zas pisal ewwemu. :d tf ale samozrejme sa nič nestalo a to sa mi pači :d

     

    Nejak som nikdy nevnimal tieto admin-veci. Ani to kto je vo vedení ma nejak netrápilo nikdy, ani to že či su nejake konkurenčne fora atd.
    Aj preto u mna "golden age" znamena nieco ine nez u vacsiny tu. Bolo to ewolutions ,kde som minul najviac casu co ma strasne sere ze zmizli vsetky tie veci čo sme tam pisali.  Nvm cim to bolo, ale tie konverzacie tam mi prisli profesionalnejsie, boli tam thready po 20 prispevkoch o jednotkach a nulach, atd. Asi sme uz neboli take deti ked sme tam presli. Tky ma stve ze zmizol "moj" (v uvodzovkach preto, lebo som iba zlepil spravy dokopy) navod "co ste nevedeli o pawn" z čisto informacneho hladiska, na ktorom som sa aj ja naucil fakt huste veci (kto nevie, bola tam kopa informacii co mi poposielali atomas, milous22,xhunterx a ini). Myslim ze na tom stratila cela komunita.

    Ale tje jedno, beriem to ako "jedno" spolu s pawnom a teraz hnijem tu. Je to sranda no. :d Chcel by som este niekedy pre pawn urobit, kedze vidim ze stale je čo.

    Hall of fame:
    milous22 - skutocny hacker, zaujimava osoba
    vEnd - bol moderator od zaciatku sveta a bol hodne v pohode. Pomedzi to ako vsetci kradli skripty, navody, atd. mi pripadal ze tak ako ja som sa nevenoval tej admin stranke fora, tak sa on nevenoval tym drobnostiam a konfliktom čo sme riešili my a preto zostal neutralny

    xhunterx - rozumel pawn viac nez je na CZ/Sk zvykom, skoda ze sa tomu moc nevenoval, pretoze stale mame iste zaostanie oproti y_lessovi a zeexovi, ale som presvedceny ze ten posun je len kvoli tomu ze u nas nikto nepise navody na to na čo pride a že y_less mal autorov kompileru priamo pri sebe

    bloodman - inventarny kusok (posledne moc neni online), ale je tu v chate najaktivnejsi. V podstate bol jediny co sa so mnou v chate bavil a ulavoval mojmu svedomiu ked vsetky spravy v chate boli odomna.

    Hal of shame:
    cjavim, nebol tu nikto koho by som zvlast nemal rad.

    Hodne sa zmenila ta komunita oproti tomu čo to byvalo, neni tu tolko spamu a agresie mam pocit, pripadne občas ja napišem daku kktinu do chatu, ale ajtak to enberiem vazne a stale iba do chatu.

    Vcelku vidim, ako sa tu objavuju novi členovia a začinaju to tu preberat a to ma bavi. :d Pomaly sice, ale aspon daco. Mozno je to aj tym ze my sme moc aktivni a nikoho sem nepustime.

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