Jump to content

ATomas

Uživatel
  • Příspěvků

    2935
  • Registrován

  • Aktivní

  • Vítězných dnů

    87

Příspěvky posted by ATomas

  1. Myslíš analogový ukazatel rychlosti ?

     

     

     

    Že chystám je asi silný slovo.. Při těch nových věcech v 0.3.8 jsem dostal chut a ted jsem na tom pár dní dělal 

    No myslel jsem neco na tenhle zpusob

     

    https://www.youtube.com/watch?v=QwyhzYKKR1g

     

    Ale cekam az to kalcor nejak poladi, protoze v nynejsi situaci je to nepouzitelny. A davat tam mensi update.. To by pak vypadalo blbe, davat na rucickovy tachometr update treba po 500ms je fakt hnus icon_e_biggrin.gif

    Zase treba na zobrazeni rychlosti cislem je vetsi odezva idealni, kdyz jsem zkousel dat na to cislo update po 40ms tak mi to malem urvalo oci :d Takze jedine rucicku :d

  2. Mužeš to klidne psat i do modu v RC2 to Kalcor přidal. Ale hlavně na takový tutorial je ještě brzo. Spíš bych počkal, až se 0.3.8 vydá, protože tam může nastat několik změn, a pak tento TUT nebude aktální. Např. že Kalcor ty modely rozfachá v AddPlayerClass.

  3. Asi jsi to zvetsil malo.

    Naco updatovat udaje, ktere se nezmenily

    format(query,sizeof(query),"UPDATE konta SET Penize=%d WHERE Vlastnik='%s'",InfoHrace[playerid][BANKA_PENIZE],PlayerName(playerid));
    print(query);//skontroluj si spravnost prikazu

    Jinak bych rozhodne pro druhou tabulku pouzil cizi klic k tabulce prvni. Uchovavat stejnou hodnotu na dve mista. To smrdi nekonzistentnosti dat.

    • Líbí se mi to! (+1) 1
  4. pokial viem stringy v pawn nemozes takto priradzovat ( "meno=x")

    musis pouzit memcpy, format, strcpy, ..., alebo zadeklarovat to tak ze new meno[] = "abcd"

    Pokud prirazujes konstantni string tak muzes. Muzes takto nastavovat i array (string je array) u kterych v pri compile-time znamy rozmer. Muzes je takto priradit s podminkou ze vyraz v levo nesmi byt delsi nez v pravo (dimension)

     

    Jinak schazuje ti to SCM. Do SCM nesmis poslat %s,%d,%f... jinak to ti crashne server. Pouzij to takto:

    format(menoje, sizeof(menoje), "{FF0000}[ ! ] {FFFFFF}Premenná testmeno bola nastavená na %I (%s)",cislo,VratMiMeno(cislo)); 
    SendClientMessage(playerid, -1,menoje);

     

  5. Ahoj,

    VW a interier je neco jineho.

    VW (VirtualWorld) je server-side.

    Interior je client-side

     

    Interior pouzivali rockstari jako prepinani mezi zobrazovani objektu. Jak vis interiery jsou zobrazene ve vzduchu a ne tam kde je do nich vstupuje z mapy. Takto je vyreseno nekolik interieru do kterych se da dostat z vice mist (napr pizzerie atp...).

     

    Takze si vzdy musis nejak zapsat v jakym /interior jsi a ve kterem to vidis a pak krome SetPlayerPos na ty souradky je interior je pouzit i SetPlayerInterior s tim cislem ktere ti /interior ukazalo.

     

    Tedy je nekolik interieru ktere jsou ruzne rozmisteny po /interior.

    • Líbí se mi to! (+1) 3
  6. protoze parametr barvy je ocekavan jako integer (hex) a ty mu predavas string

    format(string, sizeof(string), "FF%06X", c_color_1[vehicleid]);//%06X znamena ze to chces v hex a na 6 mist (doplnit nulama)
    SetDynamicObjectMaterial(c_object1, 0, -1, "none", "none", HexToInt(string));
    

    You MUST use ARGB color format, not RGBA like used in client messages etc

    http://wiki.sa-mp.com/wiki/SetObjectMaterial

    stock HexToInt(text[])
    {
    	new num;
    	for(new i;text[i];i++)
    	{
    		switch(text[i])
    		{
    			case 'x','X': num = 0;
    			case '0' .. '9': num = (num << 4) | (text[i] - '0');
    			case 'a' .. 'f': num = (num << 4) | (text[i] - ('a' - 10));
    			case 'A' .. 'F': num = (num << 4) | (text[i] - ('A' - 10));
    		}
    	}
    	return num;
    }
    
  7. ATomas to som skúšal ono hráča pripojí hrá tam a po čase ho odpojí 
    

    Takto to nevypina (nepada) server. Ale jen odpojuje hrace ze serveru? Ten nadpis me zmatl tam je psano server totiz :d Tak je to jednoznacne chyba na strane hostingu a v nastaveni jejich firewallu (iptables ?)

  8. Hezké, aspoň už to nebude muset nikdo hledat a pochybovat, zda jde o správný algoritmus výpočtu, tady je to jasné. Ale prosím, řekni mi, že jsi to nepsal vše ručně, prosím, jen mě ujisti. icon_e_biggrin.gif

    To bych se nato radeji vykaslal. At zije excel :)

  9. Ale nieco podobne som tu už videl, akurat mu to všetci ohejtovali kvoli casovym pasmam, nedostatočnej "exaktnosti" a neviem čomu

    Edit: tak nie, funguje to inak, ale myslel som toto

    Nedelal jsem rychlosti test, ale kdyz jsem videl zdrojak tak uz je jasne ze muj zpusob je rychlejsi icon_e_biggrin.gif Ma tam spoustu vypoctu zato muj zpusob ma jen jeden vypocet a pak pristup k indexu v poli kde je vysledek.

  10. rofl

    icon_e_biggrin.gificon_e_biggrin.gif ale nice

    Videl som rozne algoritmy co drzali 300 prvkove polia kvoli rychlosti.. ale toto ma prekvapilo xD

    Vim ze se to zda hloupe. Ale podle rychlostnich testu je toho fakt nejvic fast icon_e_biggrin.gif At to vypada jakkoliv hloupe icon_e_biggrin.gif

  11. Zdravím,

    přináším Vám nový způsob převádění timestamp (časového razítka = počet sekund od 1.1.970) na lidčtější způsob.

     

    Sice je tento způsob paměťově (RAM) náročnější. Zato CPU nejrychlejší. Ovšem RAM paměti je pro sa-mp server všude dost. Zato CPU ne.

     

    Existuje mnoho způsobů např. vložit timestamp do databáze a nechat si vrátit string výsledek. Ovšem můj způsob vykazuje rychlejší výsledky. Další a asi nejhloupější zpusobje samotné počítání data.

     

    Protože tu není povoleno vlozit tak dlouhý kód, dávám sem odkaz:

     

    https://pastebin.com/6BN6kc1L

     

    Použíti:

    new time = gettime();//random(cellmax);
    printf("dnes je %s",GetDate(time));
    

    Pokud chcete k tomu přidat i čas tak to lze lehce pomocí:

    new time = gettime();//random(cellmax);
    time = time%(24*60*60);
    printf("hodin=%d minut=%d vterin=%d",time/(60*60)/*pozor na časové pásmo !!!*/,(time/60)%60,time%60);
    

    Enjoy

    • Líbí se mi to! (+1) 3
  12. Mozna to neni co hledas, ale pokud jde jen o testovani, tak bych doporucil spice localhost propojene s hamachi (tjn odpada uploadnuti modu nekam, kde ti muze byt ukraden). Ciste staci jen F5 a resetnout .exe proces a mas zmen nahozene.

  13. Autor príspevku chcel "odborné" vysvetlenie ako tie dražby spraviť. Pán House poradil nejaký postup ako by to mohlo byť cez sql a pán ATomas mohol napísať vlastný spôsob ak mal záujem. Autor príspevku by si z toho niečo odniesol prípadne by sa pýtal prečo je toto tak a prečo toto hentak, ale teraz má z týchto dohadov akurát tak to, čo mal doteraz. Myšlienku.

    Souhlasim s tebou ze kdyz si prect ty odpovedi nedozvi se zhola nic. Ovsem cekam az upresni jeho pozdavky. Protoze predpokladam ze je zacatecnik a pokud mu tu budu psat nejake teorie o tom jak by to slo udelat, tak to vyusti akorat v zalozeni x helpu co mu nefunguje a jak to opravit. Proto vidim ucinnejsi kdyz zdeli presnejsi pozadavky (co chce drazit a v jakych promenychto ma). A postavit mu ten priklad na konkretni danou vec.

    • Líbí se mi to! (+1) 1
×
×
  • Create New...