Jump to content

ATomas

Uživatel
  • Příspěvků

    2926
  • Registrován

  • Aktivní

  • Vítězných dnů

    80

Příspěvky posted by ATomas

  1. Domenu gtamultiplayer.cz jsem si kdysi opravdu registorval. Duvod registraci teto domeny byl ten. Ze si nice registrovan domenu http://samp-servery.cz/ za ucelen napodobnovani domeny https://samp-server.cz/ (server SFDFD). A protoze jsme s majitelem SFDFD v kontaktu (Znate to nepritel meho nepritele je muj pritel), tak jsme se bavili a on mi rekl o existenci teto napodobujici domenu. Tak jsme z hecu regl domenu gtamultiplayer.cz a nasmeroval na SFDFD. A protoze mi pak majitel SFDFD rekl ze se nechcedal s niCem hadat tak jsem domenu presmeroval na SP a pak uz nechal expirovat. Po expiraci domenu jsem jen upzornil urcitou osobu (umyslne nebudu jmenovat, abych ji nezpusobil problemy) ze je domena volna a tim pro me kauza domeny gtamultiplayr.cz konci. Pokud domena superparba.cz existuje jen z duvodu ze si myslite ze gtamultiplayer.cz je stale moje, pak sory jste mimo :)

    K tomu "zniceni". Dobry ze si oddalis stranku nebo co jsi s tim udelal aby byla vicet "cela konverzace", ale ona pokracuje vis.. 

    celakonverzace.png

    Ze by umyslne vystrizeno?

    Divne je, že to je věc mezi mnou a ROSA a najednou se nam tu vyjadřuje niCe. Že by spojitost?

    emailkonverzacejetojasny.png

    Původní důvod proč jsem to řešil je ten, že jsem o tom že bych se mohl nevědomě podílet na zániku nějakého serveru. Tak jsem zjišťoval jak to bylo a kde je pravda. Tu mi víceméně vysvětlil HRB a řekl mi co ten Honza vlastně dělal. A tímto komentářem co mi napsal do emailu mi je už celá věc naprosto jasná. Už si zapojování se niCeho do věci, která by se ho ani neměla týkat.

    Po tomto mém příspěvku bude následovat hromada komentářů od niceho a jeho fanouška fastmana (ano jsi fanoušek, pokud o SP říkáš jen špínu a dobré věci neříkáš a o WTLS říkáš jen dobré věci a špatné neříkáš i když je víš a ukazoval jsi mi že je víš - pak tvrdit že jsi nestranný = lžeš). Hromada komentářů o ničem které mě budou jen špinit. Lidi chtěli znát můj názor, napsal jsem ho zde. Tím to pro mě tu končí.

  2. Kdyz ctes tutorial chtelo by to celej, preskocil jsi kroky:

    #define DIALOG_REGISTER 1
    #define DIALOG_LOGIN 2
    #define DIALOG_SUCCESS_1 3
    #define DIALOG_SUCCESS_2 4

    a

    #define COL_WHITE "{FFFFFF}"
    #define COL_RED "{F81414}"
    #define COL_GREEN "{00FF22}"
    #define COL_LIGHTBLUE "{00CED1}"

    a mozna i nejaky dalsi ale to zatim bylo na kompilator uz moc :)

  3. Problem u actoru je ze se jakoby loadnou driv nez interier a tedy ti zacnou padat dolu na zem (protoze vetsina interieru je ve vysce okolo 1000m). Tedy ja osobne to resim tak, ze kdyz jako hrac vstoupis do interieru mam timer na 2 vteriny kdy actory "respawnu" (SetActorPos) A musis jim dat jeste ClearActorAnimations. Jinak se jim prehraje animace dopadu a pri vstavani set rochu posune.

    • Paráda! (+1) 1
    • Líbí se mi to! (+1) 1
  4. Děkuji všem za komenty.

    On 5. 7. 2018 at 13:53, D4n09 said:

    Mně to přijde jak kdyby random něco naházel na mapu a konec... ale tak Superpařbě se to zřejmě hodí aspoň bude o něco víc pozemků ke koupi 

    Tak zas tolik random to neni. I když chápu že z videa se to tak zdát může, protože tam není cíleno na detail. Úmyslně.

     

    On 4. 7. 2018 at 15:22, Woody said:

    Proč jsi nám toho neukázal víc? Kamera se zaměřuje spíš na okolí ostrovů než na ostrovy samotné. Nevim no, moc se mi to nelíbí. 

    To je účelné. A to proto aby měli hráči důvod se na ty ostrovy podívat na živo a projet si je. Ono když všechno ukážu ve videu tak proc by se pak někdo chtěl podívat naživo:)

    On 4. 7. 2018 at 15:07, XpresS said:

    No ak by som mal zhodnotiť to čo vidím tak je to divné, moje prvé pocity boli zmiešané na jednu stranu som si všimol maják ako je v strede ostrovov ? Prečo pokiaľ viem naznačuje lodiam, že nemajú nabúrať do útesov, také trochu nerealistické. K druhej veci, niektoré strany ostrovov sú rovné tiež nerealistické. Občas tie budovy aj pasovali do terénu ale sú tam aj také ktoré sa tam  vôbec nehodia. 

    Taktiež to nieje dobrý pohľad pozerať 8 min ukážku ostrovov ako je to spomalené, akurát som tie nudné a nezáživne pasáže popreskakoval. 

    Ak by som to mal zhodnotiť subjektívne tak by som to hodnotil jednoducho: 7,5/11
    Keď som si čítal toto téma v robote, tak ma to celkom nadchlo, že sa niekto pokúsil niečo také spraviť, ale potom som pozrel toto a uvedomil som si, že to nebolo to čo som si predstavoval.


    Prajem pekný deň.

    Ano maják uprostřed ostrovů běžně nebývá. Ovšem já jsem ho tam potřeboval z určitých důvodů. Až výjde RZE10 tak se dozvíš proč:) Ano ostrovy mod realistické nejsou. Ovšem stále jsou více realistické než originální mapa SA. Nejdřív jsem se při modelování na realističnost zaměřoval hodně. Ale pak jsem zjistil že mi to zabírá tolik času, že hold budu muset upřednostlit rychlost. I přes to stavba trvala půl roku. Ono stejně ta realističnost v GTA nikdy moc nebyla a nikdo to těm hráčům zas tolik nevadilo :)

     

    On 4. 7. 2018 at 9:21, Mivčo said:

    Celkom pekne to je ??? len by ma zaujímalo ako si to modeloval? Lebo rozmýšľam aj ja modelovať vlastne mesto a tak ?

    Před nějakým časem jsem delal stream z  m odelování jednoho z ostrovů. Tak se můžes podívat jak jsem to stavěl.

     

  5. 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.

    • Líbí se mi to! (+1) 1
  6. To ze se to jmenuje quicksort jeste neznemena ze musi byt vzdy rychlejsi nez algoritmy jine :d

    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

  7. Citace

    J, ono by to mozno chcelo si uvedomit, ze to 't' v tom mysql_tquery znamena threaded, nez zacnes tu svoju vecnu kritiku ;) Tento plugin si fici na inom vlakne/vlaknach, aby presne vyriesil tieto tvoje obavy o blokovani :)

    Tak to me hodne zajima jak to udelal :d Protoze moje pokusy o vytvoreni threadu u sa-mp vzdy selhaly :d Koukam do zdrojaku toho pluginu, a ja tam ten thread proste nevidim, kde tam je ? :d

  8. 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 :d Ja spis preferuju HTTP requesty a nakomunikaci s databazi, a tu databzi pustim na jinym vlakne, nebo nejlepe na jinym stroji :d

    • Líbí se mi to! (+1) 1
  9. On 8. 3. 2018 at 14:13, vEnd said:

    Není ta starost o výkon už trochu přehnaná? Jsem zastánce toho, aby lidé optimalizovali svoje kódy jak jen to jde, ovšem když se nabídne možnost, jak si ušetřit čas nebo usnadnit práci na úkor několika milisekund, ne-li méně, proč to nevyužít. Majitelé velkých serverů (jako ty) tyto pluginy stejně používat nebudou, ale když bude někdo vlastnit server pravidelně navštěvovaný 20-30 hráči (což už by byl sám o sobě úspěch na CZ/SK scéně), nevidím důvod, proč takové možnosti nepoužívat. Kdyby se každý ohlížel jen na výkon, do dnes programujeme v asembleru.

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

  10. 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 :)

  11. 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.

  12. 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 :)

  13. 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 :d

  14. 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 :)

  15. 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;
    }

     

×
×
  • Create New...