Jump to content

ATomas

Ověřený uživatel
  • Příspěvků

    2 840
  • Registrován

  • Aktivní

  • Vítězných dnů

    50

ATomas last won the day on Květen 15

ATomas had the most liked content!

Reputace

238 Madd Dog

About ATomas

  • Moto
    RZE for life, SP for ever !
  • Narozeniny 14.6.2008
  1. pomoc Systém smrti

    OnPlayerTakeDamage se vola az po ziskanem pozkozeni hrace. Tedy pokud ma hp 5 a ubere mu to 9 tak proste zemre a neudelas s tim nic. Jedine kde by jsi to mohltrochu korigovat je OnPlayerWeaponShot, kde pomoci return 0 zablokujes damage. Tento callback se ovsem vola jen pri "kulkovych zbrani", tedy ti to nepokryje pripady granatu, bazuky, zbrani na blizko a molotovu ci plamenometu.
  2. pomoc Pomoc s pickupy

    Rada je jednoducha. Presun mapu tak aby splnovala posminky a na ni vytvor pickupy.
  3. pomoc Pomoc pri semestrálnom zadaní C++

    To ze se to jmenuje quicksort jeste neznemena ze musi byt vzdy rychlejsi nez algoritmy jine Tridici algoritmy maji c++ knihovny. Ovsem myslim ze zadanim prace je mysleno ze ten algoritmus mas napsat sam a nepouzivam ten z knihovny Neco podobneho jsme museli psat kdysi v prvaku. Takhle stranka ti urcite pomuze. Je tam druhu stridicich algoritmu a i hotove kody (i v C++ lze to tam prepinat) https://www.algoritmy.net/article/10/Quicksort
  4. pomoc Registrace?

    Pro vyhledavani ve slozce lze pouzit HTTP dotaz. Pomoci PHP to lze pak vyresit a odeslat serveru vysledek dotazu.
  5. návod MySQL Registrácia [****]

    Tak to me hodne zajima jak to udelal Protoze moje pokusy o vytvoreni threadu u sa-mp vzdy selhaly Koukam do zdrojaku toho pluginu, a ja tam ten thread proste nevidim, kde tam je ?
  6. návod MySQL Registrácia [****]

    Co se tyce vytvoreni databaze mysql tak preferuju mysql workbench. Je to dost user friendly, a kdyz dela clovek slozitejsi databazi, kde ma maji tabulky napr cizi klice. Tak se to v tom dobre orientuje. A hlavne ti to vygeneruje sql prikazy na vytvoreni te databaze s tabulkama a jen to v php my adminovi nahrajes. Ale nez clovek zacne s databazi, tak by jsi mel nejdrive nacist, kdy je dobre ji pouzivat atp... Databaze ma super rychle vyhledavaji a join tabulek sorteni atp.... Ale na zapis je to furt pomale. Takze pouzivat s rozumem. (Kdyz vidim ty pripady, ktery si do ty DB cpou uplne vsechno). Ono se to pouziva hodne na webech, kde te rychlost tak moc netrapi. Ale kdyz to pak pluginem pustis na sa-mp co jede na jednom vlakne Ja spis preferuju HTTP requesty a nakomunikaci s databazi, a tu databzi pustim na jinym vlakne, nebo nejlepe na jinym stroji
  7. plugin PawnPlus 0.4

    Tak pokud ten sa-mp furt jede na jednom vlakne. Tak me vykon celkem zajima Hlavne se strimgem pracujes kazdou chvili. Ale jako jo mas pravdu na serveru s 20ti lidma moc vykon asi resit nebudes
  8. plugin PawnPlus 0.4

    Ja teda s pluginy moc nekamaradim. Ale zajima me to asynchronni programovani. To asi nefunguje na principu vice vlaken (procesoru) ze? Zkosel jsem si vytvorit moznost vice vlaken pomoci C++, ovsem vzdy mi to druhe vlakno proste cekalo az se dokonci akce na vlakne prvnim. Kdyz jsem odstranil to cekani, tak svr crashnul. Jinak nejake rychlostni testy? Celkem by me zajimalo jestli je to rychlejsi nez postaru. Protoze jestli ne, tak bych rozhodne neobjetoval pomalost scriptu vymenou za pohodlnost programatora
  9. pomoc CreateObject - limity

    No aby se to vysvetlilo, nektery komenty jsou znacne nepresne. Zobrazit (vytvorit, dejme tomu) lze na 0.3.7 verzi 1000 objektu a na 0.3.Dl 2000 objektu. A pocita se zde kazdy objekty navic (At je to CreateObject nebo CreatePlayerObject a pak je jedno co s tim delas jestli ho nekam attachnes treba na to vozidlo) vse se pocita dohromady. Vyjimkou jsou objekty attachnute na hracich ty do tohoto limitu nespadaji. Jak tento limit zvysit lze pomoci streameru. Ovsem kdyz si zjistit jak funguje streamer, tak nefunguje tak, ze by zvysil pocet zobrazitelnych objektu. Streamer funguje na principu ze objekty co jsou od tebe daleko ti nezobrazi a zobrazi jen ty co jsou blizko. A to tak aby jsi nikdy nemel zobrazeno vic jak 1000 (2000) objektu najednou.
  10. pomoc Náhodné otázky + dané odpovědi

    Jo toto se mi libi, sice jsem nejak moc peclive necetl komenty, ale udelal jsem svuj zpusob reseni: #include <a_samp> #define RANDOM_OTAZEK 5 new Otazky[][] = {//neni potreba vyplnovat, compiler si doplni sam podle obsahu pole (new string[sizeof(Otazky[])]; <- vytvoris string tak, aby se ti tam vesla nejdelsi otazka) "Otazka 1", "Otazka 2", "Otazka 3", "Otazka 4", "Otazka 5", "Otazka 6", "Otazka 7", "Otazka 8", "Otazka 9", "Otazka 10" }; new Odpovedi[sizeof(Otazky)][] = {//opet neni potreba zadavat rozmery, je to udelane tak ze odpoved muze mit i vic nez jedno pismeno. (Pro sychr "sizeof(Otazky)" aby ti compiler zarval, pokud bude jiny pocet odpovedi nez otazek) "a", "a", "a", "a", "a", "a", "a", "a", "a", "a" }; stock VylosujOtazky(otazky[]) { new index,nahoda[sizeof(Otazky)] = {0,1,2,...}; for(new i;i<RANDOM_OTAZEK;i++) { index = random(sizeof(Otazky)-i);//random na danou otazku (ale vybira jen ze zacatku pole, protoze na konec uklada jiz vylosovane - zajisti se tak unikatnost) otazky[i] = nahoda[index];//ulozime vylosovane cislo //nahoda[sizeof(Otazky)-1-i] = nahoda[index];//na misto na konci pole ulozime vylosovanou hodnotu (neni treba pouzit, protoze vysledek ukladame uz nahore) nahoda[index] = sizeof(Otazky)-1-i;//a na vylosovany prvek presuneme hodnotu z konce pole } return 1; } stock KontrolaOdpovedi(playerid,otazky[],odpovedi[][]) { new string[144]; for(new i;i<RANDOM_OTAZEK;i++) { if(odpovedi[i][0] && strcmp(Odpovedi[otazky[i]],odpovedi[i],true) == 0) { format(string,sizeof(string),"Otázka %s odpovezena správně",Otazky[otazky[i]]); SendClientMessage(playerid,-1,string); print(string); } else { format(string,sizeof(string),"Otázka %s odpovezena špatně",Otazky[otazky[i]]);//správná odpověď: "Odpovedi[otazky[i]]" vaše odpověď: "odpovedi[i]" blabla... SendClientMessage(playerid,-1,string); print(string); } } return 1; } public OnFilterScriptInit() { new otazky[RANDOM_OTAZEK]; VylosujOtazky(otazky); for(new i;i<sizeof(otazky);i++) printf("%d) %d",i,otazky[i]); new playerid = 0;//prasarna nepouzvat !!! ale pro ten priklad... new odpovedi[][] = {//popripade "new odpovedi[MAX_PLAYERS][][];" a do funkce dole dat "odpovedi[playerid]" "a", "n", "a", "n", "a" }; KontrolaOdpovedi(playerid,otazky,odpovedi); return 1; } Myslim ze myslenka je vystizena, implementovat to a dodelat tomu dialogy uz je hracka
  11. pomoc NPC Problem

    Je to logicke protoze by majitele sa-mp serveru mohli takto skreslovat, kolik lidi hraje na jejich serveru a tvorit dojem ze je jejich server uspesnejsi nez je realne. (Ale i presto existuji metody jak to udelat lze, a bohuzel mam podezreni ze to nektere servery delaji...). Coz by znemoznil prechod na novou verzi, tedy za predpokladu ze tu vec nekdo opet neudela pro novou verzi znovu
  12. pomoc Záhadný crash

    Pokud za crash může nedostatek "dočasné paměti" (což ti prozradí crashdetect http://forum.sa-mp.com/showthread.php?t=262796). Tak si jí můžes zvětšit pomocí #pragma dynamic 65536 Samozřejme to číslo si můžeš zvolit. Mělo by být v mocninách dvojky.
  13. pomoc Jak sečíst stringy

    Pokud je obsah dialogu prazdny (allstlost je null) tak se dialog nezobrazi. Takze doporucuji pouzit neco v tomto duchu: if(strlen(allslots) > 0) ShowPlayerDialog(playerid, D_PERSONALVEHICLES, DIALOG_STYLE_LIST, "Osobní vozidla", allslots, "Potvrdit", "Zpět"); else SendClientMessage(playerid,-1,"Někde se stala chyba"); Jinak na nejaky odhadovani velikosti pole se vykasli. RAM pameti je vsude dost. A hlavne ta promena existuje jen kdyz je v dane urovni te funkce/podminky a pak se smaze. Tam jde o to ze jen zabira procesorovy cas jeji vytvoreni, ale to je tak mizive ze nestoji za to se tim vubec zabyvat. Takze na velikost promenych muzes s klidnout dusi kaslat (tedy na jeji velkou velikost, pokud das veliksot moc malou tak samozrejme ne ) Jinak plugin crashdetect rozhodne doporucuji. Hodne urychli hledani nekterych typu problemu
  14. pomoc Explode v pawn

    Vytvoril jsem takovy hodne jednoduchy explode. Umi to jen integery a prepoklada ze na prvni pozici uz je integer. stock explode(delimiter[],string[],array[],len = sizeof(array)) { new dellen = strlen(delimiter); array[0] = strval(string); for(new i=1,pos;i<len && (pos = strfind(string,delimiter,true,pos)) != -1;i++) { array[i] = strval(string[pos]); pos+=dellen; } return 1; } public OnFilterScriptInit() { new str[] = "1 2 3 4 5"; new Pole[5]; explode(" ",str,Pole); for(new i;i<sizeof(Pole);i++) printf("%d=%d",i,Pole[i]); return 1; }
  15. pomoc Crash hry

    Nastaveni chybneho skinu muze zpusobit crash hry. Skontroluj si ze v promene, pomoci ktere nastavujes skin je cislo od 0 do 299 (Nebo je ted 312 max ? uz nwm :D)
×