Jump to content

Quiter

Uživatel
  • Příspěvků

    827
  • Registrován

  • Aktivní

  • Vítězných dnů

    32

Everything posted by Quiter

  1. http://string-functions.com/length.aspx Your string is 71 characters long. Takže keďže max. dlžka stringu je 80 znakov (new query[80] logicky tam nezmestíš všetky potrebné údaje
  2. Quiter

    pomoc Register

    no dobre, ale vypíše ti Zadajte heslo tvare od 4 až po 24!!! alebo niečo iné? A daj si tam vypísať inputtext aspoň do chatu nech vieš čo sa ti ukladá do inputtext (prípadne aj strlen(inputtext) vypísať)
  3. Quiter

    pomoc Register

    No chybu tam nevidím... Co presne ti to vypíše do dialogu? Prípadne si nechaj vypísať aj INPUTTEXT, či ti tam dáke ptákoviny nehádže
  4. Quiter

    pomoc CP

    Nebude celý problém v tom, že hore vytváraš CP a dole mažeš RCP? (race CP) Alebo si si to už upravil?
  5. Myslím si, že odsledované to nebude mať nikto jediné čo ti môžem doporučiť je sadnúť si k tomu s kamarátom a skúšať a skúšať
  6. Mrkni sa opäť na ten kód... ....a ešte raz... ...a naposledy... fajn. Teraz sa ťa opýtam, ideš si tak na svojom novom BMW a vidíš že ti pomály dochádza palivo, tak teda vytiahneš kanister (pretože čerpačka je ďaleko) a namiesto toho, aby si ho nalial do nádrže, ho vypiješ... prečo ti nestúpne ukazateľ paliva v aute? Vieš mi to vysvetliť? Riešenie nájdeš tu:
  7. Quiter

    pomoc Jak na to?

    Nooo, tak začneme tým, prečo nám dávaš kód na prihlásenie? Neviem ako máš spravenú banku a výplaty, ale ak chceš aby ti miesto peňazí na ruku chodili peniaze do banky, tak musíš zmeniť v odmene za vykonanú prácu riadok GivePlayerMoney(playerid, hodnota); na Banka[playerid] += hodnota; // Banka je premenná do ktorej ukladáš koľko peňazí má v banke A to je všetko EDIT: Sorry, nevšimol som si text "A Dále =>" Potrebujeme riadok nad a riadok pod tým kódom na prihlásenie
  8. new string[256]; - načo toľko znakov?? if(IsPlayerConnected(playerid)){ - čo je sakra toto? ako môže hráč ktorý nie je pripojený zadať príkaz /ann? Ukladanie si sprav cez registráciu, je tu mnoho návodov, stačí pohladať
  9. Noo, rotácia bude problém, pokiaľ nie si dobrý v matematike a geometrii, tak bych sa do toho nepúšťal... Pretože akonáhle zmeníš rotáciu, posunú sa ti všetky pozície... Predstav si sieť s osou x a y... Odporúčam si kresliť aby si to lepšie pochopil Povedzme že je na pozícii 2 a 3 (x a y), tento objekt smeruje na východ (tj. smeruje na uhol 0) no a máme ďalší objekt na pozícií 3 a 4 smerujúci k uhlu 38. Teraz chceš presunúť prvý objekt na poziciu 6 a 7 a chceš ho pootočiť 90 stupňov (tj. bude ukazovať na sever). Povieš si fajn, tak dopocitam súradnice a taktiež otočím druhý objekt, výjde ti že druhý je na pozícii 7 a 8 a smeruje na uhol 108... A teraz je tu problém, objekt je síce správnym smerom otočený, ale je na inom mieste než by mal byť... Správne by mal byť na pozícií 5 a 7. Na to, aby si zistil akú pozíciu mu musíš nastaviť treba počítať s cosinusmi, sinusmi, tangensami - stredoškolská matematika. No a toto bol len 1 smer a 2 rozmerná pozícia, teraz si to predstav s 3 smermi a 3 rozmernou pozíciou... Preto je to tak komplikované. PS: som za každý šialený nápad, takže ak sa do toho pustíš, určite mi daj vedieť aspoň do správy alebo na skype
  10. 1) Neviem odkiaľ public SC berie playerid? Pokiaľ ho nikde neudávaš, automaticky je vždy 0, takže to bude fungovať len pre ID 0 2) Nenapísal si, ako sa to chová teraz, čo máme riešiť?
  11. No, v kóde chybu nevidím... každopádne kedy používaš ForMaxPlayer? Čo všetko máš pred if(IsPlayerInAnyVehicle(playerid)) ? Ako sa to teraz chová?
  12. V podstate rovnaká vec ako som už písal... zistíš pozíciu objektu a prirátaš k nej posun v ose X, Y a Z... MoveObject(StructObj, PosX+X, PosY+Y, PosZ+Z, RYCHLOST); nezabudni zachovať konštatnú rýchlosť pri všetkych objektoch
  13. Quiter

    pomoc NahratýČas

    if(!(++NahratyCas[playerid] % 60)) { Peniaze[playerid] += 10.00; SendClientMessage(playerid,COLOR_RED,"YAYYYY"); } Tá podmienka sa mi nejako nepáči... Nikdy som taký zápis nevidel, radšej si ju sprav normálne a vyskúšaj to NahratyCas[playerid]++; if(NahratyCas[playerid]%60 == 0) { Peniaze[playerid] += 10.00; SendClientMessage(playerid,COLOR_RED,"YAYYYY"); }
  14. Čo ti poradil Atomas je síce pekné, ale takmer zbytočné, nakoľko zmena textu v TD sa prejavuje až po jeho opätovnom prekreslení/zobrazení. Pošli sem ešte raz celý kód a snáď ti poradím.. PS: spravi si to tak ako si to mal na začiatku, následne pridaj && GetPlayerVehicleSeat(playerid) == 0) a potom ešte TextDrawShowForPlayer - potom to skús a ak to nepojde, postni celý kod
  15. Áno, bude to presne tak... Teda pokiaľ si to nespravíš správne... príklad: X - objekt ktorým pohybujem O - ostatné objekty _ - volne miesto O O O O O X O O O Chcem dosiahnúť: _ _ _ _ _ _ _ _ _ _ _ O O O _ _ _ _ O O X _ _ _ _ O O O Čo znamená pozíciu všetkých predmetov posúnúť o X bodov vpravo a o Y bodov dole od pôvodnej pozície (upozorňujem že pozíciu Z som v tomto príklade uviesť nemôhol, ale v kóde ju uvediem) Kód bude približne nasledovný: for(new i=0;i<MAX_OBJECT_STRUCTURE;i++) { // Posun môže byť kladný ale aj záporný! new Float:X = 0.5, // posun v ose X Float:Y = 0.5, // posun v ose Y Float:Z = 0.5; // posun v ose Z new Float:PosX, Float:PosY, Float:PosZ; GetObjectPos(StructObj, PosX, PosY, PosZ); SetObjectPos(StructObj, PosX+X, PosY+Y, PosZ+Z); } Pre každý object si musíš vytvoriť premennú! MAX_OBJECT_STRUCTURE - je počet objektov Snáď si tomu porozumel
  16. Quiter

    pomoc Wifi nenasytna pre energiu

    Každý mobil má funkciu na zobrazenie využitia batérie... Nájdeš to v nastaveniach
  17. Quiter

    návod Enum [**]

    Ale ako to použijem v ShowPlayerDialog? Tak ako pri klasickom define?
  18. Quiter

    návod Enum [**]

    Uvedieš mi príklad, ako použiť enum bez identifikátoru? napr. ako si spomenul na tie dialogy Díky
  19. Quiter

    pomoc Pickup

    Asi si nepochopil čo autor myslel... :/ Na autora: Predpokladám, že máš v OnPlayerPickUpPickup IsPlayerInRangeOfPoint a na základe toho zisťuješ na akom je pickupe, že? Na tvoj problém mám také 2 riešenia... Začneme tým komplikovanejším. 1) Sprav si novú premennú (bool) - pre každého hráča zvlášť - a pri vstupe na pickup, skontroluj či je premenná 0, ak áno, nastav tú premennú na 1/true, následne zobraz hráčovi dialog, správu alebo skrátka čo potrebuješ keď už budeš chcieť aby hráčovi opäť zobrazilo dialog/správu, nastav premennú na 0 Príklad z realu: Hráč vstúpi na pickup, skontrolujem či je premenná 0, zistím že áno, nastavím premennú na 1 a zobrazím mu dialog napr. s jedlom... TJ: "Jedlo, Pitie, Alkohol"... Následne v OnDialogResponse pri tomto dialogu zobrazím ďalšie dialogy (napr. vyberie si jedlo) "Hamburger, Pizza, Chlieb, ...". No a v poslednom dialogu, keď už nebudem chcieť nič ďalšie zobraziť mu nastavím premennú na 0, aby môhol opäť využívať pickup. Ešte technický detail: Musíš kontrolovať, či v dialogu nestlačil ESC (!response), pretože aj pri zrušení dialogu mu musíš nastaviť premennú na 0 Toto riešenie mi príde príliš komplikované, nakoľko musíš premýšlať kedy je 0, kedy 1 a kedy to máš ako nastaviť aby to fungovalo správne (pre vysvetlenie: ak zabudneš vynulovať premennú, nebudú hráčovi fungovať žiadne pickupy) No a druhé riešenie - jednoduchšie - keď hráč vojde na pickup, posuň ho o 1-2 metre späť Príklad: Pozícia pickupu: 100.0 200.0 50.0 Keď vstúpi na pickup, SetPlayerPos(playerid, 102.0, 200, 50);
  20. Quiter

    pomoc KM

    Tak pošli celý kód ako to máš spravené... PS: Spawn si si opravil? Nie, ten spawn tam nebol zmienený zbytočne...
  21. Quiter

    pomoc KM

    http://wiki.sa-mp.com/wiki/GetPlayerDistanceFromPoint Distance[playerid] += GetPlayerDistanceFromPoint(playerid, Px[playerid],Py[playerid],Pz[playerid]); A ako už bolo spomenuté, prerob Distance[MAX_PLAYER] na Float:Distance[MAX_PLAYER];
  22. Quiter

    pomoc KM

    timer + ukladanie poslednej pozície + zisťovanie aktualnej pozície + výpočet vzdialenosti 2 bodov + ukladanie do dát hráča 1) Vytvor si premenné pre hráča - najlepšie PosX, PosY, PosZ najlepšie na začiatku modu 2) Vytvori si timer, napr. na 1 sekundu, prípadne ak to nechceš až tak presné a odlahčiť serveru tak na 5-10 sekund. 3 V timery zisti hráčovu pozíciu 4) V timery zisti vzdialenosť medzi aktuálnou pozíciou a súradnicami PosX, PosY, PosZ 5) Ulož vzdialenosť do nejakej svojej premennej 6) Prepíš PosX, PosY, PosZ aktuálnou pozíciou 7) V OnPlayerSpawn nastav premenné PosX, PosY, PosZ na aktuálnu pozíciu hráča PS: odporúčam si timer ošetriť na kontrolu, či bol už hráč spawnutý
  23. Isto to bolo zrazu? Nemenil si niečo? Máš nainšatalované všetky Microsoft visual c++ - niektoré pluginy potrebujú rôzne verzie...
  24. Nebude problém v float aktualny = MaxBarProg; ?? Ako, MC pluginom sa nerozumiem, ale z programovacieho hladiska mi príde, že AKTUALNY nastavíš na MaxBarProg... ale odkial si nabral MaxBarProg? Netreba určiť objekt ktorý má parameter MaxBarProg?
  25. Ja bych ešte tak okrajovo upozornil autora, že odosiela správu 2x sebe...
×
×
  • Create New...