-
Příspěvků
2935 -
Registrován
-
Aktivní
-
Vítězných dnů
87
Content Type
Profiles
Forums
Calendar
Gallery
SA-MP
Příspěvky posted by ATomas
-
-
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.
-
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
-
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
-
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.
-
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
-
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; }
-
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)
-
Takze pokud v komentech ty odpovedi na sebe reaguji nejakym zpusobem tak to hodnoceni meni jejich poradi? To snad ne, to pak rozhodi posloupnost prispevku a je to dalsi z hrebicku do rakve.
-
1
-
-
Pocitalo bylo na starem systemu taky. Ale na to ze na to kliknes jen jednou za zivot je to kravsky a kazi to rozmisteni divu. Tot vse. zarovnani ma pro me vetsi priritu. Me jde o obsah prispevku ne o to kolik mu kdo naklikal lajku.
-
před 1 minutou, Lucifer Morningstar said:
Like bolo jedno tlačítko. Toto je niečo úplne iné, to je votovanie, hlasovanie za najlepšiu odpoveď.
TO je furt o jedno tlacitko navic... ale na tuhle diskuzi uz nemam......
-
před 3 minutami, Lucifer Morningstar said:
Na starom systéme to vôbec ani nebolo, keďže tam sa nedalo hlasovať v otázkach, keďže tam otázky vôbec ani neboli
Ja se nebavim o hlasovani na otazky. Ale o hodnoceni prispevku. To slo tedy jen likovat prispevky, protoze na zadost niCeho byly smazany minusove hlasovani.
-
před 1 minutou, Lucifer Morningstar said:
Na to aby sa to zarovnalo, by som musel celý ten vote systém presunúť do prava, kde by mne nevyhoval vôbec. Vyhovuje mi v ľavo, nevidím dôvod ho dávať v pravo len kvôli tomu aby bol main topic zarovnaný s odpoveďami.
Takze kdyz byl na starem systemu v pravo tak ti to vadilo ?
-
před 8 minutami, Lucifer Morningstar said:
Myslím že tie tlačítka vôbec nie su obrovské sú ideálne. Či už by boli v ľavo alebo v pravo tak či tak by zaberali rovnaké miesto, myslím že sú viacej logické v ľavo.
Design je v bootstrap, ale nechcem len tak meniť pozície a riskovať že to pokazí responzivitu.
Jde o zarovnani.
-
před 6 minutami, Lucifer Morningstar said:
Posunuté je to kvôli tomu, že v sekcií pomoc ide hlasovať na jednotlivé odpovede, preto je to posunuté, lebo sú tam pridané tlačítka na hlasovanie.
Aha quote super
Myslim ze nejake hlasovaci tlacitka mi muzou... A kdyz uz tam musi byt tak proc tak kravska? a nemuzou byt aspon v pravo aby to licovalo na leve strane ?
Jinak ono je tohle forum psane v nejakem frameworku ze je to v kodu neprehledne a nelze tam delat jednoduse delat zmeny s posouvat divy a buttony? Pokud je to jeste klasik PHP nebo u phyton tak by to nemel byt problem.
Jinak bych barvu toho quote "nadpis divu" zmenil a nejakou mene vyraznou. Ta modra oddeluje prispevky a byt je to jiny odstrin modre je to furt dost vyrazne a docela mito pusobi chaos v tom kde zacina a konci prispevek nekoho dalsiho.
BTW to je nejaky javascript antispam ze tlacitko "Uložit" funguje až na nekolikaty pokud kliknuti ?
-
před 1 hodinou, Lucifer Morningstar said:
to je prekladom, nie designom. Work in progress.
ako do prava? Nerozumiem tie komentáre sú normálne od topicu.
Znovu nerozumiem, tie rozostupy mi príjdu normálne.
Popíš viacej trochu, ako myslíš neprehľadné.
Code ide zmazať, tak isto aj spoiler aj všetko ostatné. Klikneš na neho a dáš delete.
Tak uz tedka kdyz te cituju tak to odmaze moje citace na ktere jsi reagoval ty. Dale nevim jak to rozdelim na kousky jako js ito udella ty. Kopirovat to je stupidita. Dopsani [ quote ] je krasne a pohodlne jak to vyresit. Kdyby byla aspon moznost ty vokna v tom psani prispevku vypnout a videt to v bbcode nebo treba na prasaka v html. Tohle je forum pro programatory, to si muzeme dovolit to udelat
Jak tedy smazu ten code pripadne quote abych neprisel o jeho obsah (jen ho "vyndal z okna") ?
Screenry prikladam tady tim co to nabizi
QuoteMně ta RZE 8.1 taky přijde taková nepřehledná. Není nad klasickou rze 7.4
RZE7.4 kdybych secetl vsechny server co najdu v internet nehraje dohromady ani 50 lidi. 8.1 200. To asi o necem vypovida
QuoteMimochodem, můžeš si pročistit schránku se soukromými zprávami, případně si zapnout přijímání zpráv? Snažím se tě již nějakou dobu zkontaktovat, ale prostě ti nelze odeslat SZ (kvůli jednomu z uvedených důvodů).
Aha ja myslel ze se odmazavaji odzadu samy. Mam tam 25 zprav a to uz je to plne ?
Jinak mi chybi vymozenosti "stareho" code (kde sel myslim vybrat jazyk pawn, ale C je alternativa, ale mohl by byt predvyplneny misto HTML). A nepodaril ose mi najit moznost zobrazit radky a zvolit zacatecni cislo radku. To byly hodne uzitecne veci.
-
Zdravím,
nejdřív jsem si říkal, že je to o zvyku, ale už je to delší dobu, ale prostě to nejde.
Kdo a proč sem nahodil tenhle design? Je to nepřehledny, napul anglicky napul česky. Ve foru jsou kometaře nejak divne odsazeny od hlavního topicu, nesmyslně do prava až moc. Nejaký divný rozestup mezi příspevky. Zbytečné divy co zabírají místo. Když píšu příspěvek, je to nepřehledné. nejde mi odmazat code kdyz ho použiju
. Když použitu tu ikonku tak mi to překreje obsah takže ani nevim na co reaguju. No tahkel bych mohl pokračovat. Čekal jsem že se to nahodilo a bude se to ladit za běhu, ale moc změn, aspon těch co mě páli jsem si nevšiml. Dale je nepřehledne umístěno upravení příspevku. Když už hodim code nejde odstranit abych nepřisel o obsah
ATomas
-
1
-
-
new pass[MAX_PLAYERS]; pass[playerid] = inputtext;
Tato kontrukce je sice myslena dobře, ovšem lze použít jen u pole, kde je při kompilaci známá veikost. Což není tento případ.
Doporučuji použít
pass[playerid][0] = 0;//Pokud vis ze to bude prazdne, neni treba pouzit strcat(pass[playerid],inputtext);
-
Nechce se mi to testovat, ale je to napr rychlejsi nez toto?
new Pole[] = {1,2,3,4},pole[sizeof(Pole)];//"pole" je vytvoreno pouze jednou, jde tedy o to testovat jen ten druhy radek v cyklu Pole = pole;
-
V tuhle chvili nemuzu rict jak to bude. Jeste zjistuju nejake informace od beta testeru jak to s tou DL verzi ma byt, ale pokud to bude mozne, tak bych radeji preferoval, aby WTLS bezelo na te DL verzi a myslim si, ze ATomas bude preferovat to same se SP, protoze do vytvareni modelu objektu dal asi taky hodne casu. Tim padem by nemel byt nejspis problem se mezi CZ servery domluvit, ze vsichni budou pouzivat tu DL verzi.
Ale problem bude, jestli si hraci budou schopni stahnout tu DL verzi klienta. Pokud totiz na hlavni strance sa-mp.com bude ke stazeni jen obycejna 0.3.7, tak by se treba uplne novy hraci nemuseli dozvedet, ze musi mit stazenou DL verzi, aby mohli hrat na nekterem z CZ serveru. A tim by mohlo pak vzniknout spoustu problemu.
Ano taky jsem na tom nechal nekolik hodin casu. Byt mezi sebou mame neresitelne spory, myslim ze by jsme se mohli domluvit ze my velke servery, spolu se SFDFD protoze ma taky velkou fanovskovskou zakladu prestoupime na 0.3.7-DL. Aby jsme si nekradli hrace napric verzemi.
-
- Popular Post
- Popular Post
A co kdyby jste si to proste vyzkouseli? To je nejlepsi metoda nato zjistit jak to funguje
-
5
-
A nemas to jako filterscript? Ten totiz OnPlayerConnect vubec nevola. Spust to jako gamemode
-
Je to tim ze si to prepisujes naformatuejs sice jeden radek ale tim druhym ten prvni premazes.
Existuje dve reseni, ktere muzes pouzit.
Toto je vhodne pouzit pokud je radku min kod je rychlejsi
if(dialogid == 2) { new string[2048],jmeno[MAX_PLAYER_NAME]; GetPlayerName(playerid,jmeno,sizeof(jmeno)); if(listitem == 0) { format(string,sizeof(string),"Peníze banka: %d",Banka[playerid]); format(string,sizeof(string),"%s\nPeníze v ruce: %d",string,GetPlayerMoney(playerid)); format(string,sizeof(string),"%s\nAdministrační úroveň: %d",string,Admin[playerid]); ShowPlayerDialog(playerid,3,DIALOG_STYLE_MSGBOX,jmeno,string,"OK",""); } }
Tent odruhy zpusob je dobre pouzit pokud tec hradku v dialogu bude hodne. Protoze je zase v tomhle pripade rychlejsi tento druhy
if(dialogid == 2) { new string[2048],str[128],jmeno[MAX_PLAYER_NAME]; GetPlayerName(playerid,jmeno,sizeof(jmeno)); if(listitem == 0) { format(string,sizeof(string),"Peníze banka: %d",Banka[playerid]); format(string,sizeof(string),"\nPeníze v ruce: %d",GetPlayerMoney(playerid)); strcat(string,str); format(string,sizeof(string),"\nAdministrační úroveň: %d",Admin[playerid]); strcat(string,str); ShowPlayerDialog(playerid,3,DIALOG_STYLE_MSGBOX,jmeno,string,"OK",""); } }
-
No já nevim ale nechápu jak to můžeš přidat k nečemu jinýmu.. Jo chápu tu část s TXD ale ohledně toho dffka ne.
No tak tobe jde o textdraw ne ? tj .dff potrebujes jen za tim ucelem, aby ti ten .dff natahl ten .txd do clienta. Protoze AddSimpleModel musi byt uplny. Samotny .txd ke clientovy nedostanes.
-
Jo už jsem se k tomu dopídil. Ted už jen sehnat někde jak se tvoří dff a hurá do tachometru
No pokud ten .txd chces pouzit jen pro ucely textdrawu, tak si muzes do toho jednoho .txd dat vice tech obrazku a to priradit k nejkymu .dff treba nesmyslnemu, jen pro ten ucel, aby jsi mohl vytvorit AddSimpleModel kterej ti natahne ten .txd k tomu hraci, aby to v tom TD fakt videl. A ten .dff v ramci objektu nemusis vubec pouzit.
Ja mam treba tu rucicku modelovanou jako .dff (protoze bych ji jinak neorotoval). Ale v tom .txd mam i texturu toho tachometru i kdyz na objekt pouzity nikdy neni. Prave pro ucel toho aby to slo zobrazit v TD
PawnPlus 0.8
v Herní (SA:MP, CS apod.)
Odesláno: · Edited by ATomas
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