-
Příspěvků
212 -
Registrován
-
Aktivní
-
Vítězných dnů
44
Content Type
Profiles
Forums
Calendar
Gallery
SA-MP
Everything posted by DuFF
-
Off topic: Z hodín štatistiky som si síce veľa neodniesol, ale zaujímalo by ma, prečo by si chcel normálne rozdelenie. Pokiaľ viem, v normálnom rozdelení má najvyššiu pravdepodobnosť výskytu priemerná hodnota a táto pravdepodobnosť so vzdialenosťou od priemernej hodnoty klesá. Ak by teda funkcia random generovala čísla takýmto spôsobom, znamenalo by to, že by niektoré čísla boli generované častejšie ako iné (v tomto konkrétnom prípade by boli nejaké ID vyberané častejšie ako iné). Myslím si, že v tomto prípade chceš skôr rovnomerné rozdelenie, v ktorom majú všetky hodnoty (z daného intervalu) rovnakú pravdepodobnosť výskytu. Trochu som testoval som funkciu random a mám pocit, že sa všetky čísla generujú s rovnakou pravdepodobnosťou (čo je asi presne to, čo chceme, pretože každý hráč by mal mať rovnakú šancu na to, aby bol vybraný).
-
To máš samozrejme pravdu, ale teraz sa bavíme o čisto abstraktnej triede (pure abstract class), ktorá obsahuje iba dekladárie metód, neobsahuje žiadnu implementáciu a nemá ani žiadne data members. C++ nemá (na rozdiel od C#, Javy, ...) interface keyword a rieši sa to práve pomocou týchto čisto abstraktných tried.
-
Zdar, predpokladám, že tým "Alespoň jednou bude v projektu implementováno dynamické pole objektů jiné třídy" sa myslí, že máš v kóde použiť std::vector. Čisto abstraktná trieda je taká trieda, ktorá obsahuje iba deklarácie (a nie definície) metód. Ak máš skúsenosť s inými objektovo orientovanými jazykmi (napr. C#, Java, ...), tak to poznáš pod názvom interface.
-
pomoc ASCII characters (logovanie chatu)
DuFF replied to Danny's question in Herní (SA:MP, CS apod.)
Nazdar, práve som testoval na localhoste (Windows) a na fakahede (casa1, Linux) tento kód: V súbore server_chatlog_utf8.txt boli na obidvoch strojoch niektoré znaky zapísané nesprávne, ale v súbore server_chatlog_eascii.txt bolo na obidvoch strojoch všetko zapísané správne. Skús to možno tiež spustiť u seba a daj vedieť, aký si dostal výsledok. Ako píše Delete, skús výsledné súbory aj stiahnuť a pozrieť v inom editore. -
Posledná verzia samp serveru je 0.3.7-R2 (na ktorej server tento beží) a na túto verziu serveru nie je problém pripojiť sa s akýmkoľvek klientom minimálne z možností 0.3.7-R1, 0.3.7-R2, 0.3.7-R3 a 0.3.7-R4, pričom 0.3.7-R4 je posledná verzia klienta. Navyše RC vo verzii znamená "release candidate", a teda verzie 0.3.7-RC2 a 0.3.7-R2 nie sú jedna a tá samá verzia.
- 16 odpovědí
-
V kóde máš definovanú funkciu strtok (bez modifikátoru stock) a nikde ju nepoužívaš. Funkciu nemusíš nikde použiť. Stačí pred ňu pridať modifikátor stock. Práve k tomuto modifikátor stock slúži - dovolí kompileru ignorovať nepoužité funkcie (čo sa hodí hlavne v includoch, pretože takmer nikdy nevyužiješ všetky funkcie z include). Vo svojom prípade si ešte môžeš rozmyslieť, či danú funkciu v kóde naozaj potrebuješ a prípadne ju môžeš úplne odstrániť.
-
Momentálne tam má viditeľný array index out of bounds na riadkoch: format(string, 256, "%s %s dal hráčovi %s VIP %s na %d dní !", GetAdminRank(playerid),PlayerName(playerid),PlayerName(id),viptarif,strval(params[days])); DOF2_SetInt(UserPath(id),"VIP_Days", strval(params[days])); (napríklad ak zadám príkaz /setvip 0 3 99, strval(params[99]) určite nespraví nič dobré) Ak by sa držal doporučenia pracovať iba so sscanf, tento problém by odstránil a vedeli by sme, či pády spôsobovalo toto, alebo niečo iné.
-
Prečo kombinuješ chrfind a strval so sscanf? Keď parametre načítaš pomocou sscanf, žiadne chrfind a strval nemusíš ďalej riešiť a môžeš pracovať priamo s premennými, do ktorých ti sscanf uložil nájdené hodnoty parametrov.
-
Tvoja statická metóda Visit má parameter typu Visitor. Ak na objekte uloženom v premennej typu Visitor zavoláš metódu, zavolá sa metóda z triedy Visitor (ak táto metóda nie je virtual a skutočný typ objektu túto metódu pomocou override nepreťažuje). Metódy sa mi volali správne, keď som ich volal na objektoch uložených v premenných správneho typu (FirstVisitor, SecondVisitor, ... nie Visitor) a v tomto prípade nebolo potrebné používať virtual / override. Prípadne sa mi to ešte podarilo pridaním negenerických virtuálnych metód do Visitora, ktoré potom v derived triedach overridujem: Výstup je potom:
-
Možno to bude možné pomocou ForceClassSelection,
-
pomoc Kompatibilita medzi rôznymi verziami prekladača jazyka Pawn
DuFF replied to Luk3P's question in Herní (SA:MP, CS apod.)
Nazdar, práve pozerám históriu jazyka Pawn na CompuPhase a vidím tam, že vo verzii 4.0.4548 bola zmenená syntax pre inicializáciu polí a namiesto zložených zátvoriek sa začali používať hranaté. Máš nejaký dôvod, prečo chceš používať práve túto najnovšiu verziu jazyka pre SAMP? SAMP komunita momentálne väčšinou používa kompiler od Zeexa, v ktorom je opravených pár známych chýb kompilera, ktorý je priložený k SAMP serveru. -
Je možné prísť si pozrieť mapy na nejaký server?
-
návod Scydovy YSI návody | #9 | y_stringhash, y_unique, y_remote, y_vehicledata [***]
DuFF replied to Scydo's topic in Herní (SA:MP, CS apod.)
Vďaka, doteraz som sa s y_vehicledata nestretol a ušetrí to kopec práce. Menší detail: Myslím, že takto by som mohol zastaviť hráča z akéhokoľvek (aj nepolicajného) vozidla, pre ktoré Vehicle_IsCar vráti false. -
Nevidel som, ako to na tých serveroch presne funguje, ale očakával by som, že na objekt biliardového stola je vložených niekoľko malých objektov biliardových gulí a že sa využíva ColAndreas plugin na zistenie, či guľa narazí do inej gule/hrany stola. Guliam vieš potom asi nastaviť rýchlosť a smer podľa rýchlosti a smeru gule, ktorá do nich narazila. U odrazov od hrán stola platí asi niečo na spôsob uhol dopadu = uhol odrazu.
-
Tento kód: u mňa vyzeral funkčne. Vymaže sa obrazovka, počká sa na input, vykoná sa vybraná úloha, počká sa na stlačenie ľubovoľnej klávesy a potom sa to celé opakuje.
-
Stále mi nie je jasné, ako určuješ, či hráčove dáta uložiť do tabuľky first, second, alebo third. Ak máš nejakú funkciu, ktorá to rozhoduje (a nie je to random), možno by si ju mohol použiť znova na výber tabuľky, z ktorej budeš dáta čítať. Tým pádom by si nemusel robiť select zo všetkých tabuliek, ale iba z jednej. Btw kde ti vypísalo, že to tvoja verzia mariaDB nepodporuje? Mohol by si sem skopírovať celú tú hlášku?
-
Si si istý, že to urobí tvoj systém prehľadnejší a nie naopak? Podľa čoho sa rozhoduješ, či vložiť hráčove dáta do tabuľky first, second, alebo third? Ak to naozaj chceš takto, skús v tom selecte využiť UNION, prípadne UNION ALL na spojenie riadkov z jednotlivých selectov do jedného resultu.
-
Myslím si, že problém môže byť tam, že si síce prepísal názov príkazu, ale neprepísal si jeho dĺžku. Napr. dcmd(account,7, cmdtext) si mal prepísať na dcmd(info,4, cmdtext). Edit: Otestoval som to a moja predošlá odpoveď je blbá. Skúšal si na serveri aj starý, aj nový príkaz? Nefungoval ani jeden z nich?
-
Môžeš využiť sscanf plugin podobne, ako keď parsuješ parametre v príkazoch. Akurát namiesto params budeš parsovať inputtext. Výhoda oproti strval je tá, že keď strval vráti 0, tak nevieš, či si používateľ želal zadať 0, alebo zadal nejaký text, ktorý sa nepodarilo sparsovať.
-
Môžeš to docieliť pomocou prepojenia viacerých routerov (druhý router dáš bližšie k miestu, kde chceš zosilniť signál). Môžeš použiť aj káblové, aj bezdrôtové prepojenie. https://www.wikihow.com/Connect-Two-Routers
-
Myslím si, že problém je v medzere na riadku CMD: setskin. Ak to napíšeš takto s medzerou, nevyhodnotí sa makro na vytvorenie príkazu. Riešenie je teda použiť CMD:setskin (bez medzery). Potom ešte neviem, čo chcel autor povedať týmto: Každopádne SetPlayerSkin očakáva 2 argumenty (id hráča, ktorému má zmeniť skin a id skinu). Preto SetPlayerSkin(playerid, skin).
-
Chápem to správne, že chceš, aby sa zobrazil hráčovi dialog s miestami na portnutie, keď klikne na tlačítko spawn? Ak áno, v OnPlayerRequestSpawn mu zobraz tento dialog a použi return 0 (aby si zablokoval spawn). V OnDialogResponse potom môžeš spawnúť hráča cez SpawnPlayer a cez SetPlayerPos mu nastaviť pozíciu podľa vybraného listitemu. Na error týkajúci sa príkazov si radšej založ samostatný topic a ukáž nám tam svoj kód v OnPlayerCommandText.
-
Možno by tu bola užitočná nejaká regexová mágia. Fungovalo mi napr. v Notepad++ nahradiť výraz "(.*)":"" výrazom "\1":"\1" (alebo vo VSCode výrazom "$1":"$1"). https://ibb.co/ncWZ82h https://ibb.co/VmRWB21
-
pomoc Problém s OnRconCommand - sscanf
DuFF replied to MichaelMik9's question in Herní (SA:MP, CS apod.)
Prišiel som na to, kde bol problém. String cmd okrem parametrov obsahuje na začiatku aj názov príkazu. Preto ti "s[65]i" nefungovalo a "s[6]s[65]i" už fungovalo. Tento názov príkazu nemusíš ukladať do premennej, ale môžeš použiť feature sscanf2: "quiet" stringy. Dočítať sa o nich môžeš tu. Napríklad takto to krásne funguje: