Jump to content

Search the Community

Showing results for tags 'navod'.

  • Search By Tags

    Oddělujte čárkami
  • Search By Author

Content Type


Fórum

  • Obecné
    • Všeobecné
    • Všechno možné
  • Programování
    • Poradna
    • Návody
    • Tvorba
    • Hledám programátora
  • Herní oblast
    • Poradna
    • Jak na to?
    • Herní kontext
    • Herní zážitky
    • Komunita
  • Grafika
    • Poradna
    • Návody
    • Tvorba
  • Ostatní
    • Hardware a software
    • Hledám/nabízím
    • Archiv
    • 3D Tisk

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Web


Facebook


Jabber


Skype


Steam


Twitter


Github


Pastebin

  1. Práca so súbormi Obtiažnosť - * * * * * Vitajte pri mojom prvom návode pre pawn. Dnes Vám ukážem niečo o práci so súbormi použitím includu "file". Tento include obsahuje funkcie, ktoré nám budú umožňovať pracovať so súbormi. Môžeme do nich zapisovať údaje, čítať údaje a omnoho viac. Mnohí z Vás pre toto používate tzv. "INI" includy, ktoré plnia tú istú úlohu, ale k tomuto sa dostaneme ešte neskôr. Čítajte prosím s porozumením! Otvorenie a zatvorenie súboru: Súbor otvoríme pomocou funkcie fopen, ktorá vráti tzv. "file handle" súboru, s ktorým budeme pracovať. Ak nastane nejaká chyba, táto funkcia vráti hodnotu 0. Súbor je vždy potrebné na konci zavrieť funkciou fclose! Argumenty (fopen): name[] - Umiestnenie súboru s jeho príponou na konci, ktorý sa nachádza v priečinku "scriptfiles". mode - Mód, ktorý určuje, ako budeme pracovať so samotným súborom. Viď všetky typy módov nižšie. Typy módov: io_read - Pre čítanie zo súboru. io_write - Pre zápis do súboru, vytvorí súbor, vymaže celý jeho obsah! io_readwrite - Pre čítanie aj zápis do súboru, ak súbor neexistuje vytvorí ho. io_append - Pre zápis na koniec súboru. Argumenty (fclose): File:handle - Ako ste sa mohli dočítať vyššie, je to premenná v ktorej je uložený "handle" súboru. Ukážka: new File:subor = fopen("subor.txt", io_readwrite); if (subor) { //Tu budeme pracovať so súborom. fclose(subor); } Otvorili sme súbor "subor.txt" v priečinku scriptfiles, pomocou módu io_readwrite. Potom sme pridali podmienku ak nenastala chyba pri otváraní súboru (ak by nastala chyba premenná by mala hodnotu 0). Ďalej už len budeme pracovať so samotným súborom. Na konci sme súbor zavreli, čím sa zapísaný obsah uložil. Zápis do súboru: Na zápis do súboru použijeme funkciu fwrite, ktorá zapíše do nášho súboru celý riadok ako string. Pokiaľ chcete vpísať do súboru znaky s diakritiou je tu druhá varianta, použitie funkcie fputchar. Je však o niečo pomalšia v rýchlosti ako prvá varianta. Argumenty (fwrite): File:handle - "Handle" súboru, do ktorého chceme vykonať zápis. string[] - String, ktorý chceme do súboru zapísať. Argumenty (fputchar): File:handle - "Handle" súboru, do ktorého chceme vpísať znak. value - Znak ktorý chcete vpísať, môže to byť ASCII, alebo UTF-8 hodnota. bool:utf8 = true - Má byť znak vpísaný ako UTF-8? (použite false, pokiaľ chcete vpísať znak s diakritikou) *Volitelný argument Ukážka: new File:subor = fopen("subor.txt", io_write); if (subor) { fwrite(subor, "Toto je string, ktory zapisujem do mojho suboru!"); fclose(subor); } Otvorili sme súbor a zapisáli do neho text, nakoniec sme ho zatvorili. Ukážka č.2: new File:subor = fopen("subor.txt", io_write); if (subor) { new string[7] = "Sanios"; for (new i; i < sizeof (string); i++) { fputchar(subor, string[i]); } fclose(subor); } Otvorili sme súbor a vpísali do neho text, znak po znaku, nakoniec sme ho zatvorili. Čítanie zo súboru: Pre čítanie údajov zo súboru môžme taktiež použiť dve varianty. Tá prvá je použitím funkcie fread, ktorá prečíta celý riadok zo súboru a uloží ho do stringu. Tá druhá varianta je čítanie znak po znaku, za pomoci funkcie fgetchar?. Táto varianta má svoju výhodu, ale aj nevýhodu. Tá výhoda je, že obsahuje argument "utf8", ktorý nám umožňuje prečítať taktiež znaky s diakritikou. Funkcia vráti ASCII, alebo UTF-8 hodnotu. Nevýhoda je, že je to o niečo pomalšie, ako funkcia fread, ktorá prečíta celý riadok. Argumenty (fread): File:handle - "Handle" súboru, z ktorého chceme čítať string[] - String, do ktorého chceme prečítaný text z riadka uložiť. size = sizeof string - Počet polí stringu, do ktorého ukladáme text. *Volitelný argument bool:pack = false - Má byť použitý "pack" stringu? *Volitelný argument Upozornenie! - Pozri si tiež na konci odsek "Možné chyby a ich oprava"! Argumenty (fgetchar): File:handle - "Handle" súboru, z ktorého chceme čítať bool:utf8 - Má byť znak prečítaný ako UTF-8? (použite false, pokiaľ chcete prečítať znak s diakritikou) Ukážka: new File:subor = fopen("subor.txt", io_read); if (subor) { new string[128]; fread(subor, string); printf("String: %s\nPrvý znak stringu je %c", string, fgetchar(subor, false)); fclose(subor); } Otvorili sme súbor s módom pre čítanie, prečítali sme z neho riadok a prečítaný string sme vypísali v konzole servera spoločne so začiatočným znakom riadku, nakoniec sme súbor zatvorili. Porovnanie s "INI" includmi: Určite mnohí z Vás používate na prácu so súbormi nejaké "INI" includy, ako je "y_ini", "DOF2", alebo "dini". Určite si kladiete otázku, prečo používať základné funkcie, keď mám rýchlejší includ. Toto nie je pravda. "INI" súbor má svoju výhodu v tom, že zapisuje riadky v tvare "name=value", resp. "key=value". To znamená, že výhodou je určite prehľadnosť vo Vašom súbore a vždy budete vedieť, ktorá hodnota k čomu patrí. Samozrejme výhodou includu "file" je predovšetkým rýchlosť! Pripravil som si pár testov rýchlosti o zápise a čítaní zo súboru. Testy Možné chyby a ich oprava: V tejto sekcii Vám napíšem niečo o možných chybách, ktoré môžu nastať. Nájdete tu pochopiteľne aj samotnú opravu chyby. 1. Funkcia strcmp nevráti hodnotu 0, pretože stringy sa nezhodujú: Toto je dosť častá chyba. Nastane vtedy keď ste prečítali obsah riadka pomocou funkcie fread. Prečo sa teda stringy nezhodujú, keď sú v súbore zapísané správne? Pretože na konci súboru ostali dva znaky "\r\n". Tieto znaky vyjadrujú, že sa jedná o nový riadok. Nachádzajú sa na konci každého riadku, okrem posledného. Pre inšpiráciu ako to v skutočnosti vyzerá: Oprava: new File:subor = fopen("subor.txt", io_read); if (subor) { new string[128]; fread(subor, string); //Prečítali sme riadok a na konci máme dva znaky "\r\n". strdel(string, strlen(string)-2, strlen(string)); //Vymažeme posledné dva znaky. } fclose(subor); Scripty na ukážku: Pridám Vám na ukážku aj nejaký scripty, k čomu môžete napríklad includ "file" využiť. 1. Záznam o vraždách: Tento jednoduchý skript bude v súbore zaznamenávať údaje o vraždách. Do súboru sa zapíše meno obete, meno vraha a dôvod, akým bola obeť usmrtená. Návod označen jako platný Ten to návod byl označen jako platný.Návod může být kdykoli označen jako nevhodný či neplatný
  2. Je celkom otravné stále zapínať a vypínať SAMP, tak som prišiel na spôsob, ako si "debugging" zrýchliť. Vytvorte si náhodny filterscript, a do OnFilterScriptExit stačí dať toto: SendRconCommand("gmx"); Tento príkaz sa používa na reštart gamemódu. Tu nejde o reštartovanie módu, ale to aby hráča odpojilo a dalo mu príkaz na reconnect. Toto urýchli reconnect pri reštarte servera(Ak sa nepoužije GMX, trvá celkom dlho dokým sa znova pripojí). takže vďaka tomuto nemusíme stále reštartovávať SAMPko, a tým dlho nečakať. Ale pre ešte lepšie používanie, osobne odporúčam si nastaviť velkosť obrazovky (v hre) 640x300 a keď sa hra načíta, stlačiť Alt + Enter. Tým sa to hodí do Okna, takže prehadzovanie medzi Windowsom je rýchlejšie a lepšie + je vidno konzolu . Jednoduché ale užitočné
  3. Obtížnost: Zdravím, už je to několik let co se věnuji pawnu, ale pořád vídám, že level "pawnení" se na tomto fóru nějak zasekl a vesměs všíchni pouzívají ten stejný systém jak něco napawnit. Chtěl bych ukázat jak pracovat s proměnýmy typu pole. Většina lidí proměnou typu pole používá jen pro text nebo pro "playerid" a nemá ani páru ja kto vlastne funguje. Proměná pole je shluk za sebou jdoučích proměných. new pole[5]; = pole[0], pole[1], pole[2], pole[3], pole[4] new pole[10]; = pole[0], pole[1] .. pole[8], pole[9] Důležitým poznatkem je, že pokud je pole o rozměru 10 tak nejvyšší proměná je 9. Proč? protože začínáme nulou ! Takže to "playerid" (Často to nazýváte proměnou pro hráče) je vlastně pole se kterým pracujete právě podle id daného hráče. A jak že funguje ten string? tak jsou preči písmena a ne čísla. Omyl! string(nejčastější pojmenování proměnné pole pro text) obsahuje čísla, a podle těchto čísel se zobrazují znaky z tabulky znaků. Protože má každý znak své pořadové číslo. Proměnná pole může mít i více než jeden rozměr (rozměrem rozumíme [] a v tom to číslo je celikost pole). Nejvíce lze udělat 3 rozměrné pole. Lze udělat i čtyřrozměrné, ale o tom pozdeji.. new pole[5][10]; = celkem 50 proměných, jakto? protože: pole[0][0], pole[0][1] .. pole[4][8], pole[4][9] new pole[5][10][15]; = celkem 750 proměných No konec té nudné teorie a teď si ukážeme jak nám to dokáže usnadnit život. Proměné pole (stejně jako te klasíské), lze nastavit nějakou hosnotu, kterou na začástku bude mít. A protože je to pole, tak jich lze nastavit více najednou, ale jak nato? lehce: new pole[5] = { 1, 5, 10, 6, 3, }; Tímto jsme dosahli tohoto: pole[0] = 1; pole[1] = 5; pole[2] = 10; pole[3] = 6; pole[4] = 3; No neni to pomohlnější ? Někteří řeknou že to vyjde nastejno, a vyní Vám ukážu, co nastejno určite nevýjde new pole[2][2] = { {0,1}, {2,3} }; A cože jsme to vlastne napsali? pole[0][0] = 0; pole[0][1] = 1; pole[1][0] = 2; pole[1][1] = 3; A pro trojrozměrné pole: new pole[][][] = { { {0,1}, {2,3} }, { {4,5}, {6,7} } }; tj. pole[0][0][0] = 0; pole[0][0][1] = 1; pole[0][1][0] = 2; pole[0][1][1] = 3; pole[1][0][0] = 4; pole[1][0][1] = 5; pole[1][1][0] = 6; pole[1][1][1] = 7; Tady už to stojí zato ne ? Určite jste si všimly, že tam najednou nejsou vyplměna velikosti polí. Ne nezapoměl jsem nato Ale komu by se chtělo u komplikovanějších a zdlouhavých proměných to počítat ? A hlavně, jakmile tam napíšete špatné číslo, tak si bude pawno stěžovatz, že bud je proměná malá nebo zase moc velká a nejsou nastaveny všechny údaje Takže to nemusíme řešit, protože pri kompilaci si tam pawno samo ty čísla dosadí. Ale určite si říkáte, že potřebujete vědět jak jsou pole velká kvůli použití ve sciptu. Nato nám slouží fizeof takže pokud chceme velikost prvního rozměru použijeme sizeof(pole), pokud chcete druhý rozměr tak sizeof(pole[]) a pokud třetí tak sizeof(pole[][]) A kde to v praxi použít? Jistě znáte takové ty systémy, kde máte AddNeco(123.4,236.1,1263.1,0,-1,"Text"); Pak máte nějaká callback, kte se to nahrává do proměných a nějakou proměnou (nejčastějí count) si pocítáte kolik jich je naháno, a když máte malou proměnou tak zase musíte v gamemodu listovat a zvětšovat ji Lze to řešit jednoduše, a pokud potřebujete do proměné pole nastavit více druhu proměných (integer, float atp..) poslouží vám k tomu enum enum ADD_INFO { Float:add_x, Float:add_y, Float:add_z, add_int, add_m, add_text[64], add_vec } new AddPromena[][ADDINFO] = { {123.4,236.1,1263.1,0,-1,"Text"},//pokud máte v enumu více údaju, něž nastavujete, ničemu to nevadí, když jim nenastavíte hodnotu, proste budou mit 0 {1263.11,23.4,236.1,1,-1,"Text2"} }; Tím jsme docílili tohoto: AddPromena[0][add_x] = 123.4; AddPromena[0][add_y] = 236.1; AddPromena[0][add_z] = 1263.1; AddPromena[0][add_int] = 0; AddPromena[0][add_m] = -1; AddPromena[0][add_text] = "Text"; AddPromena[0][add_vec] = 0; AddPromena[1][add_x] = 1263.11; AddPromena[1][add_y] = 23.4; AddPromena[1][add_z] = 236.1; AddPromena[1][add_int] = 1; AddPromena[1][add_m] = -1; AddPromena[1][add_text] = "Text2"; AddPromena[1][add_vec] = 0; Výhoda tohoto je ta, že nemusíte mít žádný callback pro nahrávání do proměných aní žádný count a nemusíte si hlídat velikost proměné. Prostě píšete a o nic se nestaráte, když potřebujete v kodu vědět kolik těch add je použijete sizeof(AddPromena) a jeto. Ovšem jedno důležité pravidlo pro správnou funkčnost, ty údaje v ennum musí jít přesně za seboutak, jak je zadáváte do té proměné. Pokud jste si všimli, tak i do enumu lze použít pole, ovšem jen jeden rozměr, takže pokud máme trojrozměrnou proměnou s enum kde je jeden rozměr, získáváme 4 rozměry. enum POLE_INFO { p_neco[12] } new pole[5][5][POLE_INFO]; pole[0][0][p_neco][0] = hodnota; Vidíte 4 rozměry jsou na světe údaje v enumu jsou chápana jako čísla a pokud v enumu potřebuje udělat mezeru, lze to enum POLE_INFO { p0,//0 p1,//1 p5 = 5,//5 p6,//6 p7,//7 } tímto jsme vytvořili enum o velikosti 8, tj 0,1,2,3,4,5,6,7 a tím že jsme 2,3,4 nedefinovali v enumu obdobně to lze i s násobevím, a lze i enumu nastavit, aby ty údaje v ní napsané mněli hodnoty ob, což jsem nikdy nevyužil, koho by to zajímalo jeto na wikině Ověřený návod Tento návod prošel validací, a lze ho proto považovat za ověřený.
  4. • Píšte mi SZ, že čo mám doplniť... Po 7 dňoch už nebudem môcť upraviť príspevok! Úvod: • Si profesionál, ktorý je presvedčený, že tento návod byť dobrý nemôže. Pozri si len to čo potrebuješ, nič lepšie spraviť neviem ajtak. • Si začiatočník, ktorý sa chce naučiť pawn čo najrýchlejšie. Toto je najmenej zábavná časť pawna, ale vedieť ju musíš. Čítaj všetko zaradom. Čo je to pawno: Prvý pohľad: Čo je čo - syntax:tvorba textu Prvé programovanie: Matematické a logické operátory:Do rite nejde mi sem dať normálnu velkosť! Otázky a odpovede:
  5. Mrzela ma tá malá veľkosť toho streamu, niekedy mi vadilo že som ani nevidel napríklad puk & loptu. Netrvalo to ani minútu a našiel som riešenie. Nieje to nič zložité. Potrebujete len schopné ruky. Pôvodný náhľad. (btw. tá brada) Namierime myšou vedľa streamu, klikneme na pravé tlačítko a stlačíme preskúmať prvok. Nájdeme si "div id stream", znovu klikneme na pravé tlačítko myši a stlačíme na "edit as html". Vyhľadáme úsek textu "width="480" height="270". Zmeníme parametre, teda čísla napríklad na "width="700" height="380". A hotovo! Odskúšané na livestreamoch KHLky Toto zväčšanie po reloadnutí stránky zmizne.
  6. Stack/heap size warning Niektorým z vás sa už stalo, že pri kompilácii ste uvideli správu podobnú tejto: Header size: 88 bytes Code size: 60 bytes Data size: 0 bytes Stack/heap size: 16384 bytes; estimated max. usage=4064 cells (16256 bytes) Total requirements: 16532 bytes Je to chyba vášho kódu, ale kompiler ju nedokáže sám nájsť. Tým, čo nevedia o čo sa jedná, vysvetlím čo je to za chybu, ako ju nájsť a opraviť. Text uvedený vyššie bol vygenerovaný pri kompilácii nasledujúceho kódu: main() { new pole[4059]; } Štruktúra AMX súboru Keď sa skompilovaný .amx súbor nahrá do pamäte (pri spustení servera), má nasledovnú štruktúru: +--------+ | prefix | <- metadáta o amx súbore, napr. adresy sekcií code a data, verzia kompilera, .. | ------ | | code | <- v tejto časti sa nachádza kód skriptu | ------ | | data | <- nemenné dáta, hlavne stringy | ------ | | stack | <- časť pamäte, do ktorej sa ukladajú lokálne premenné | ~~~~~~ | | heap | <- časť pamäte, do ktorej sa ukladajú globálne a static premenné +--------+ Prefix má najnižšiu adresu v RAM a heap je na konci programu - najvyššia adresa v RAM. Zásobník - stack V stacku sú uložené všetky lokálne premenné. Pri spustení servera preto stack začína prázdny. Medzi heap a stack je v tom momente rezervovaný priestor. Podľa výstupu kompilera (uvedený vyššie) je defaultná veľkosť celej dynamickej oblasti 16KB. Keďže veľkosť dát alokovaných na zásobníku sa nedá pri kompilácii predpovedať (lokálne premené vzniknú až počas behu programu), kompiler iba odhadne, že hrozí pretečenie zásobníka. Nedokáže povedať kedy ani kde. Avšak, ak už raz si myslí, že k nemu dôjde, tak mu treba veriť. V prípade, že nastane povestný stack overflow, tak dáta zo sekcie stack začnú prepisovať dáta zo sekcie heap (lokálne premenné zmenia chybne hodnoty globálnych premenných). V Pawn každá premenná zaberá 4 bajty. Testovací kód vyššie, kde pole má 4059 prvkov, zaberie 16276 bajtov. Na stack sa tiež ukladajú ďalšie hodnoty, o ktorých programátor nemá prehľad, adresa návratu z funkcie, atď. Tieto dokopy budú mať tých 16 KB. Navyše, je to len odhad kompilera, že sa niečo stane. new test0; /* zabera 4 bajty */ new test1[3]; /* zabera 12 bajtov */ Viac informácií nájdete na nete. Ako to opraviť Najrozumnejšie bude zoptimalizovať kód - odstrániť 256 bajtové polia, nepotrebné premenné a všetko bude fungovať. Sú gamemody rátajúc 100 000 riadkov, ktoré tento limit neprekračujú, prečo by mal váš skript prekračovať? Pragma dynamic V prípade, že už nemôžete optimalizovať viac, môžete manuálne zväčšiť dynamickú pamäť pre .amx súbor. Direktíva preprocesoru pragma dynamic určuje koľko dynamickej (stack/heap) pamäte bude skript používať. Nastavíte to jednoducho pomocou #pragma dynamic 17000 /* velkost dynamickej pamate v bajtoch */
  7. <?php session_start(); if($_SESSION['LoggedIn'] == 1) { echo "ACCESS GRANTED!"; } else { echo "ACCESS DENIED!"; } ?>
  8. 1234

    návod Navod na Warpy

    Ahojte toto je navod jak udelat warp #include <a_samp> #define BARVA_MODRA 0x00BDFFFF new sendername[MAX_PLAYER_NAME]; new string[256]; public OnPlayerCommandText(playerid,cmdtext[]) { if(strcmp(cmdtext, "/přikaz na odwarpovani", true) == 0) //prikaz { GetPlayerName(playerid, sendername, sizeof(sendername)); //zisti meno pre hlasku o odwarpovani if(IsPlayerInAnyVehicle(playerid) && GetPlayerState(playerid) == PLAYER_STATE_DRIVER) //ak je hrac v aute a je vodic { SetVehiclePos(GetPlayerVehicleID(playerid),Souřadnice); // zisti v akom aute sedi a premiestni to auto na urcenu poziciu }else{ SetPlayerPos(playerid,Souřadnice); //ak nesedi v aute premiestni hraca } format(string, sizeof(string), "Hráč %s se odwarpoval do.....", sendername); SendClientMessageToAll(BARVA_MODRA, string); return 1; }
  9. Vozidlá a ich základne funkcie Obtiažnosť: Cieľ Tutoriálu: Spoznať nové funkcie a naučiť sa ich používať / Nemať problémy s pracovaním s vozidlami. Obsah: Vytváranie vozidiel Odstraňovanie vozidiel Oprava vozidiel Respawn vozidiel Zmeny farieb vozidiel Zmeny paintjobov vozidiel Komponenty - Pridávanie / Odoberanie Nastavenie HP vozidla Nastavenie pozície vozidla Hráč - Posadenie / Vysadenie Ideme na to Vytváranie vozidiel Na vytváranie vozidiel 3 funkcie: AddStaticVehicle AddStaticVehicleEx Createvehicle AddStaticVehicle funkcia , ktorá može byť použitá jedine v OnGameModeInit alebo v OnFilterScriptInit. To znamená , že sú vytvorené hneď pri spustení GM alebo FS. CEz túto funkciu nemožeme vytvárať vozidlá počas diania hry. AddStaticVehicle(modelid, Float:spawn_x, Float:spawn_y, Float:spawn_z, Float:angle, color1, color2) modelid - ID vozidla (ID všetkých vozidiel nájdeme TU) Float:spawn_X - Pozícia spawnu vozidla X Float:spawn_Y - Pozícia spawnu vozidla Y Float:spawn_Z - Pozícia spawnu vozidla Z Float:angle - Otočenie vozidla color1 - ID prvej farby vozidla (ID farieb vozidiel nájdete TU) color2 - ID druhej farby vozidla (ID farieb vozidiel nájdete TU) Príklad: AddStaticVehicle(520, 2109.1763, 1503.0453, 32.2887, 82.2873, 0, 1); AddStaticVehicleEx taká istá funkcia , ovšem táto funkcia má pridaný čas , za ktorý sa vozidlo respawnne, ak vo vozidle nieje vodič. AddStaticVehicleEx(modelid, Float:spawn_x, Float:spawn_y, Float:spawn_z, Float:angle, color1, color2, respawn_delay) respawn_delay - Je čas , za ktorý sa vozidlo respawnne ak v ňom nieje vodič v MINÚTACH Príklad: AddStaticVehicleEx ( 520, 2109.1763, 1503.0453, 32.2887, 82.2873, 0, 1, 15 ); Createvehicle tiež funkcia na vytváranie áut. Túto funkciu možete využiť v OnGameModeInit a OnFilterScriptInit ale aj počas diania hry. To znamená, že touto funkciou možeme vyvolať vytvorenie auta priamo hre v dosledku nejakej činnosti hráča. Funkciu možete použiť napr. pri vytváraní príkazu. Createvehicle(modelid, Float:x, Float:y, Float:z, Float:angle, color1, color2, respawn_delay) modelid - ID vozidla (ID všetkých vozidiel nájdeme TU) Float:X - Pozícia vytvorenia vozidla X Float:Y - Pozícia vytvorenia vozidla Y Float:Z - Pozícia vytvorenia vozidla Z Float:angle - Otočenie vozidla color1 - ID prvej farby vozidla (ID farieb vozidiel nájdete TU) color2 - ID druhej farby vozidla (ID farieb vozidiel nájdete TU) respawn_delay - Je čas , za ktorý sa vozidlo respawnne ak v ňom nieje vodič v SEKUNDÁCH Príklad: CreateVehicle(520, 2109.1763, 1503.0453, 32.2887, 82.2873, 0, 1, 60); Funkciu možete použiť napr. v príkaze ( dajme tomu , že príkaz /auto ). Ak hráč zadá príkaz /auto , tak sa vytvorí toto vozidlo. V tomto prípade sa funkcia AddStaticVehicle použiť NEDÁ ! Odstraňovanie vozidiel Na odstraňovanie vozidiel využívame funkciu DestroyVehicle DestroyVehicle(vehicleid); vehicleid - Názov/ID vozidla , ktoré chceme odstrániť. Príklad: Ak chceme nejaké vozidlo odstrániť , musí byť najprv vytvorené. Vytvárať vozidlá už vieme , takže by to nemal byť problém , len si to vehicleid musíme nadefinovať pomocou premennej , pod ktorou si ho musíme zadefinovať. Je to veľmi jednoduché , pozrite : new Auticko; - Vytvorenie novej premennej Auticko = CreateVehicle(520, 2109.1763, 1503.0453, 32.2887, 82.2873, 0, 1, 60); - Premenná zadefinovaná ako auto , ktoré vytvorené auto , ktoré chceme neskor zničiť. Takže túto funkciu možme zakomponovať napríklad do vymysleného príkazu /znicit. Po zadaní tohoto príkazu sa daná funkcia vykoná. DestroyVehicle(Auticko);- Zničenie vozidla Oprava vozidiel Na opravovanie vozidiel využívame funkciu RepairVehicle RepairVehicle(vehicleid); vehicleid - Názov/ID vozidla , ktoré chceme opraviť. Príklad: Ak chceme opraviť jedno určené vozidlo , budeme sa riadiť rovnakým postupom ako v prípade funkcie DestroyVehicle. Ak si chceme vymyslieť nejaký príkaz , napr. /opravit a chceme aby to opravilo auto v ktorom práve sme , spravíme to takto : RepairVehicle(GetPlayerVehicleID(playerid));- GetPlayerVehicleID(playerid) zisťuje v akom vozidle aktuálne sme a to vozidlo následne naša spomínaná funkcia RepairVehicle opraví. Nieje to nič zložité , len to treba logicky pochopiť. Respawn vozidiel Na respawnovávanie vozidiel využívame funkciu SetVehicleToRespawn SetVehicleToRespawn(vehicleid); vehicleid - Názov/ID vozidla , ktoré chceme respawnovať. Príklad: Zase si nejako zadefinujeme dané vozidlo a potom použijeme túto funkciu: SetVehicleToRespawn(Auticko); Auticko - príklad zadefinovanej premennej Zmeny farieb vozidiel Na zmenu farby vozidla využívame funkciu ChangeVehicleColor ChangeVehicleColor(vehicleid, color1, color2); vehicleid - Názov/ID vozidla , ktorému chceme zmeniť farbu. color1 - ID prvej farby vozidla (ID farieb vozidiel nájdete TU) color2 - ID druhej farby vozidla (ID farieb vozidiel nájdete TU) Príklad: ChangeVehicleColor(Auticko, 4, 12); Vozidlu "Auticko" zmení farbu na farby ID 4 a ID 12 Zmeny paintjobov vozidiel Na zmenu farby vozidla využívame funkciu ChangeVehiclePaintjob ChangeVehiclePaintjob(vehicleid, paintjobid); vehicleid - Názov/ID vozidla , ktorému chceme zmeniť paintjob. paintjobid - ID paintjobu (Všetky ID paintjobov nájdete TU) Príklad: ChangeVehiclePaintjob(GetPlayerVehicleID(playerid), 2);- Zmena paintjobu na ID 2 v aktuálnom vozidle. Komponenty - Pridávanie / Odoberanie Na pridanie komponentu vozidlu používame funkciu AddVehicleComponent Na odobratie komponentu vozidlu používame funkciu RemoveVehicleComponent AddVehicleComponent Funkcia, ktorou možeme ku autu pridať ľubovoľný komponent. Komponenty sú nitro , hydraulika , jednotlivé časti tuningu atď... AddVehicleComponent(vehicleid, componentid); vehicleid - Názov/ID vozidla , ktorému chceme pridať komponent. componentid - ID komponentu (Všetky ID komponentov nájdete TU) POZOR: POUŽITIE NEPLATNÉHO ID KOMPONENTU ZNAMENÁ CRASH HRY ! Príklad: Napríklad ak si chcete vytvoriť vlastnú tuningáreň. Hráč vojde do checkpointu , zobrazí sa mu dialóg a zvolí možnosť pridať nitro. AddVehicleComponent(Auticko, 1010); RemoveVehicleComponent Presný opak funkcie AddVehicleComponent. Odoberáme komponenty z auta. RemoveVehicleComponent(vehicleid, componentid); vehicleid - Názov/ID vozidla , ktorému chceme odobrať komponent. componentid - ID komponentu (Všetky ID komponentov nájdete TU) Príklad: RemoveVehicleComponent(Auticko,1010); - Odobratie nitra vozidlu. Nastavenie HP vozidla Na nastavenie HP vozidla používame funkciu SetVehicleHealth SetVehicleHealth(vehicleid, Float:health); vehicleid - Názov/ID vozidla , ktorému chceme nastaviť HP Float:health - HP - Život Príklad: SetVehicleHealth(Auticko, 1000.0); - Nastavenie HP vozidla na maximum (1000) Nastavenie pozície vozidla Na nastavenie pozície vozidla používame funkciu SetVehiclePos POZOR: Táto funkcia funguje len vtedy , ak je vozidlo spawnuté SetVehiclePos(vehicleid, Float:x, Float:y, Float:z); vehicleid - Názov/ID vozidla , ktorému chceme nastaviť pozíciu Float:X - Budúca pozícia vozidla X Float:Y - Budúca pozícia vozidla Y Float:Z - Budúca pozícia vozidla Z Príklad: SetVehiclePos(Auticko, 123.456, 123.456, 12.34); - Nastavenie pozície vozidla. Hráč - Posadenie / Vysadenie PutPlayerInVehicle Na posadenie hráča do vozidla používame funkciu PutPlayerInVehicle PutPlayerInVehicle(playerid, vehicleid, seatid); playerid - Hráč , ktorého chceme do vozidla posadiť vehicleid - Názov/ID vozidla , do ktorého chceme hráča posadiť seatid - Sedadlo vo vozidle 0 - Vodič 1 - Pri vodičovi v predu 2 - V zadu naľavo 3 - V zadu napravo 4+ - Miesta pre cestujúcich (Autobus...) POZOR: AK ZADÁTE NEPLATNÉ ID SEDADLA , ALEBO JE SEDADLO UŽ OBSADENÉ , TAK PRI VYSTUPOVANÍ DANÉHO HRÁČA NASTANE CRASH ! Príklad: PutPlayerInVehicle(playerid, Auticko, 0);- Posadí hráča na miesto vodiča RemovePlayerFromVehicle Na vysadenie hráča z vozidla používame funkciu RemovePlayerFromVehicle RemovePlayerFromVehicle(playerid); playerid - Hráč , ktorého chceme z vozidla vysadiť Príklad: if(GetPlayerVehicleID(playerid) == Auticko) { RemovePlayerFromVehicle(playerid); }- Ak je hráč vo vozidle "Auticko" , tak ho to z neho vyhodí Koniec tutoriálu. Snáď to niekomu pomože Návod označen jako platný Ten to návod byl označen jako platný.Návod může být kdykoli označen jako nevhodný či neplatný
  10. Jak vytvořit NPC - překlad ze SA-MP fóra Obtížnost: Překlad a úprava: StarsCream Původní autor: kc Link na původni topic: http://forum.sa-mp.c...?topic=119947.0 Na tuto věc se bude ptát hodně lidí, takže kc udělal TUT, jak pracovat s NPC, tedy neehratelnými postavami, nebo-li také "boti". Obsah Nahrávka pohybu NPC Trovba scriptu Import do módu Nahrávka pohybu NPC Nejdříve potřebujeme zapsat pohyb a všechno okolo toho pro NPC. K tomu slouží nahrávka, která se pak přehrává v postavě NPC. Spusťte SA-MP 0.3 server s jakýmkoli módem. Přihlašte se pod rcon. (Napište "/rcon login " ) a nahrajte filterscript npc_record (Napište "/rcon loadfs npc_record" ) Po úspěšném nahrání npc_record nás zajímají 3 základní příkazy. /vrecord - Začíná nahrávat vaše pohyby a akce vozidla, ve kterém sedíte do souboru jmeno_souboru. /ofrecord - Začíná nahrávat vaše pohyby postavy pěšky do souboru jmeno_souboru. /stoprecord - Ukončuje jakékoli nahrávání V tomto tutorialu programujeme bota, který řídí auto, takže jděte do vozidla a napište /vrecord mujbot (Pzn: musíte být pod RCONem) pro začátek nahrávání. Ujedte trasu, kterou má bot vykonávat a pak napiště /stoprecord. Ukončete hru a jděte do složky ScriptFiles ve vašem SA-MP 0.3 serveru, tam by měl být soubor mujbot.rec. Přesuňte jej do /npcmodes/recordings/ Hotovo? Super, máte nahrané pohyby NPC a umístěné je v požadované složce. Tvorba scriptu Pokračujeme ve scriptu Ve složce npcmodes máte spoustu příkladů jak na boty, tyto "mini" scripty určují chování NPC. takže pojďme si vytvořit další. Zapněte pawno, dejte nový soubor a přepiště všechen obsah tímto #define RECORDING "mujbot" //Název souboru, který jsme nahrávali bez přípony .rec #define RECORDING_TYPE 1 //1 pokud je v autě, pěšky je to 2 #include main(){} public OnRecordingPlaybackEnd() StartRecordingPlayback(RECORDING_TYPE, RECORDING); #if RECORDING_TYPE == 1 public OnNPCEnterVehicle(vehicleid, seatid) StartRecordingPlayback(RECORDING_TYPE, RECORDING); public OnNPCExitVehicle() StopRecordingPlayback(); #else public OnNPCSpawn() StartRecordingPlayback(RECORDING_TYPE, RECORDING); #endifToto může vaypadat nesrozumitelně, proto to vezmu po řádcích: #define RECORDING "mujbot" //Název souboru, který jsme nahrávali bez přípony .recKomentář již napovídá, že se jedná o jméno souboru, který má přehrávat, akorát bez přípony .rec. takže pokud se váš soubor mujbot jmenuje alfonz, musíte mít v /npcmodes/recordings/ soubor alfonz.rec Pak by to vypadalo takto: #define RECORDING "alfonz" //Název souboru, který jsme nahrávali bez přípony .rec #define RECORDING_TYPE 1 //1 pokud je v autě, pěšky je to 2Jak opět naznačuje komentář, jde o typ přehrávání. Pokud je tvůj NPC ve vozidle, je tam 1, pokud je pěšky 2. #include <a_npc>Základní include pro boty. public OnRecordingPlaybackEnd() StartRecordingPlayback(RECORDING_TYPE, RECORDING);OnRecordingPlaybackEnd je callback forwardovaný v NPC includu. Tento řádek říká, že jakmile nahrávka končí, začíná opět odznova, takže jee to nekonečná smyčka. public OnNPCEnterVehicle(vehicleid, seatid) StartRecordingPlayback(RECORDING_TYPE, RECORDING);Toto je zase callback, také z includu NPC. Způsobuje, že se začne přehrávat, když bot sedne do auta. public OnNPCExitVehicle() StopRecordingPlayback();A zase další callback opět z includu NPC. Tento zastavuje přehrávání, kdyykoli je jakkoli bot vyndán z auta. public OnNPCSpawn() StartRecordingPlayback(RECORDING_TYPE, RECORDING);A zase další callback opět z includu NPC. Tento spustí nahrávku NPC pokud se spawne a NPC má byt pěšího typu a ne v autě. Jak vidíte, jee to velmi jednoduché. Nyní uložte vás NPC "mini" script jako "mujbot.pwn" do /npcmodes/ a zkompilujte jej. Pokud máte hotovo, přesuneme se k dalšímu, poslednímu kroku tohoto tutorialu, pokud vám to vyhodilo errror, ujistěte se, že máte aktualizované includy u pawna na ty u SA-MP 0.3 Import do módu Poslední krok... Takže, vytvořili jsme "mini" script pro kontrolu NPC postavy, ale teď potřebujeme bota nahrát na server. Použijeme k mód/filterscipt. zavřete "mini" script, a a otevřete váš mód, nebo filterscript v pawnu. Je čas, zasvětit vás do funkce ConnectNPC. Jak už název napovídá, jde o připojení NPC na server. Podívejme se na parametry funkce a co znamenají... ConnectNPC("Michal","mujbot"); "Michal" - První parametr je jméno bota. Takto rozeznáte různé boty navzájem od sebe. "mujbot" - Toto je jméno souboru (bez přípony) našeho dříve vytvořeného "mini" scriptu. Nyní známe parametry funkce ConnectNPC. Připojme vašeho prvního bota! S vaší novou znalostí funkce ConnectNPC, zkusíme vytvořit NPC připojení při loadu módu/filterscriptu. Vyzkoušeli? OK, dal jsem to do OnGameModeInit... public OnGameModeInit() { print("my gamemode"); ConnectNPC("Michal","mujbot"); return 1; }Nyní, pokud sme vytvářeli bota, co řídí vozidlo, tak mu ho taky musíme dát. Takže script upravíme takto: new AutoBota; //Global variable! public OnGameModeInit() { print("my gamemode"); ConnectNPC("Michal","mujbot"); AutoBota = CreateVehicle(400, 0.0, 0.0, 5.0, 0.0, 3, 3, 5000); return 1; }Pzn: je jedno, kde auto vytvoříte, při začátku přehrávání bota se auto přesune na požadovanou pozici. ještě poslední věc, než začnete testovat svého bota. Musíme ho nějak dát do auta. Já používám OnPlayerSpawn... public OnPlayerSpawn(playerid) { if(IsPlayerNPC(playerid)) //Kontrola, pokud je spawnutý NPC. { new npcname[MAX_PLAYER_NAME]; GetPlayerName(playerid, npcname, sizeof(npcname)); //Zjišťuje jméno NPC. if(!strcmp(npcname, "Michal", true)) //Zjišťuje, jestli je jméno bota Michal { PutPlayerInVehicle(playerid, AutoBota, 0); //Strčí NPC do auta, které sme vytvořili } } return 1; }Nyní zkompilujte mód/filterscript a hurá na server. S trochou štěstí uvidíte bota jezdit v autě přesně tak, jak jste nastavili. Gratuluju! Vytvořili jste svého 1. robota Nefunguje něco? Napište sem, a společně to opravíme Návod upraven tak, aby odpovídal šabloně pro "Nové návody"
  11. Tanga

    návod Príkazy

    Úvod: Na začiatok:ak ešte nemáš includ zcmd • Čo je to includ: Tvar bežného príkazu: Príklady použitia ZCMD: 1. Doplnenie života hráčovi: 2. Odkaz adminovi: Návod označen jako platný Ten to návod byl označen jako platný.Návod může být kdykoli označen jako nevhodný či neplatný
  12. play

    návod AntiUnlock

    Tohle je návod aby vám cheater nemohl odemknout auta na servru. 1)Nakopírujte do svého módu: Do OnGameModeInit: Do OnPlayerEnterVehicle: Do OnPlayerConnect: 2) úprava modu: -Musíte upravit SetVehicleParamsEx na SetCarLock(vehicleid,doors); SetVehicleParamsForPlayer na SetCarLockPlayer(vehicleid,playerid,doors); CarAntiUnlock=AddStaticVehicleEx(518,892.4550171,-1678.6679688,13.3420000,0.0000000,-1,-1,1500); Upravte si souřadnice na jaké chcete.Tohle auto nepůjde používat. Funkce: GetCarLockPlayer(vehicleid,playerid) SetCarLockPlayer(vehicleid,playerid,doors) SetCarLock(vehicleid,doors) GetCarLock(vehicleid)
  13. Ahoj pomuže mi nekdo jak dat v pawnu amx do pwn upravovaní ???
  14. Ahoj, ja som _Sweet_ a dnes si ukážeme základne funkcie teleportu v hre. Ako prvé poznáme funkciu SetPlayerPos ktorú si ukážeme v príkaze. Ak hráč zadá príkaz. Príkaz v hre. Nastaví hráčovi pozíciu. Komu sa nastaví pozícia. Pozícia X, Y, Z. public OnPlayerCommandText(playerid, cmdtext[]) { if (strcmp("/lv", cmdtext, true, 10) == 0) { SetPlayerPos(playerid, 2099.1458, 1683.2396, 13.0060); return 1; } return 0; } Tento príkaz nás v hre ak napíšeme /lv teleportne do lv. Ak chcete aby vás to v hre teleportlo aj s autom tak tam budeme musieť niečo pripísať. Ak hráč zadá príkaz. Príkaz v hre. Nastaví hráčovi pozíciu. Komu sa nastaví pozícia. Pozícia X, Y, Z. Zistí ID vozidla. Ak je hráč vo vozidle. To isté ako SetPlayerPos akorát to nastaví pozíciu autu. public OnPlayerCommandText(playerid, cmdtext[]) { if (strcmp("/lv", cmdtext, true, 10) == 0) { new auto = GetPlayerVehicleID(playerid); if(!IsPlayerInAnyVehicle(playerid)) { SetPlayerPos(playerid, 2099.1458, 1683.2396, 13.0060); }else{ SetVehiclePos(auto, 2099.1458, 1683.2396, 13.0060); return 1; } return 0; } Ták a teraz už máme super príkaz na teleport do lv aj s autom. Ešte si môžme nastaviť aby sa napísalo všetkým hráčom že sa hráč odportoval. Ak hráč zadá príkaz. Príkaz v hre. Nastaví hráčovi pozíciu. Komu sa nastaví pozícia. Pozícia X, Y, Z. Zistí ID vozidla. Ak je hráč vo vozidle. To isté ako SetPlayerPos akorát to nastaví pozíciu autu. Pošle všetkým na serveri správu. Akú farbu bude mať správa. Zistí meno hráča ktorí zadal príkaz. Správa čo sa napíše. Použije sa zistené meno hráča v správe. public OnPlayerCommandText(playerid, cmdtext[]) { if (strcmp("/lv", cmdtext, true, 10) == 0) { new string[140]; new nick[MAX_PLAYER_NAME]; GetPlayerName(playerid,nick,MAX_PLAYER_NAME); format(string,140,"Hráč %s použil teleport /lv.",nick,playerid); SendClientMessageToAll(0xFF0000FF,string); new auto = GetPlayerVehicleID(playerid); if(!IsPlayerInAnyVehicle(playerid)) { SetPlayerPos(playerid, 2099.1458, 1683.2396, 13.0060); }else{ SetVehiclePos(auto, 2099.1458, 1683.2396, 13.0060); return 1; } return 0; } Teraz máme jednoduchý príkaz na teleport do lv. Takže ak si to zhrnieme tak ak napíšeme do chatu /lv tak nás to teleportne (ak máme auto tak aj s autom) a napíše to všetkým na serveri kto sa kam teleportol. Ďakujem za prečítanie jednoduchšieho tutoriálu _Sweet_ :-)
  15. Zdravím, předem bych chtěl upozornit, že toto není můj script a proto se ptám jestli by byl někdo ochotný mi to trošku popsat popiskem typu //tady patři to a to. Děkuji xjobs_2.0.txt
  16. Čus , tak ukážu vám jak udělat jednoduchou GPS navigaci s CP (ChechPointy) Nadefinujeme si DCMD #define dcmd(%1,%2,%3) if ((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, "")))||(((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1 Nyní vložíme DCMD příkaz někde do modu , nejlépe úplně na konec dcmd_gps(playerid,params[]) { #pragma unused params // Pokud vám to bude psát warning 203: symbol is never used: "params" ShowPlayerDialog(playerid,1,DIALOG_STYLE_LIST,"GPS","1.pozice\n2.pozice\nZrušit GPS","Rozumím","Konec"); //Toto vám vyskočí po zadání příkazu /gps } Do OnDialogResponse vložíme toto if(response) { switch(dialogid) { case 100: // ID Dialogu { switch(listitem) { case 0: // 1 tlačítko v dialogu { SendClientMessage(playerid,0xFFFFFFC8,"Pozice 1"); SetPlayerCheckpoint(playerid, X , Y , Z, 3.0); // zde si nastavíte svoje souřadnice } case 1: // 2 tlačítko v dialogu { SendClientMessage(playerid,0xFFFFFFC8,"Pozice 2"); SetPlayerCheckpoint(playerid, 1.93, 19.3, 6, 3.0); } case 2: // 3 tlačítko v dialogu { SendClientMessage(playerid,0xFFFFFFC8,"Vypnul jsi svojí GPS."); DisablePlayerCheckpoint(playerid); } } } } } Nyní si můžete nastavit svoje místa .
  17. toto je můj první návod jak si jednoduše udělat Event takže (dcmd) :
  18. Textdraw Čo by ste mali vedieť. - Maximálna dlžka textdrawu je 800 znakov (characters). - Prekročenie tejto hranice môže viesť ku spadnutiu hry (crash). - Text textdrawu nesmie byť prázdny. - Táto chyba môže viesť ku spadnutiu hry (crash) - Vyriešnie problému "_" (používajte _ (medzerník), ukáže sa to ako medzera) - V texte sa nezobrazí diakritika. Súradnice. - Súradnice sa určujú pomocou formátu x,y - Ak je súčasť textu mimo obrazovku (mimo súradníc x,y) tak sa váš text nezobrazí. Ukážka.Číslice 240.0,580.0 sú v tomto prípade súradnice. TextDrawCreate(240.0,580.0,"Defaultny textdraw"); Vytvárame prvý textdraw. Nahor nad Main() new Text:prvytextdraw; OnGameModeInit(), 240.0,580.0 sú súradnice public OnGameModeInit() { prvytextdraw = TextDrawCreate(240.0,580.0,"Defaultny textdraw"); return 1; } Rozšírené funckie. public OnGameModeInit() { prvytextdraw = TextDrawCreate(240.0,580.0 , "Defaultny textdraw"); TextDrawFont(prvytextdraw , 3); TextDrawColor(prvytextdraw , 0xff0000FF); TextDrawSetOutline(prvytextdraw , 1); TextDrawSetProportional(prvytextdraw , true); return 1; } - Font (TextDrawFont.Viac) - Farba - Určíme hex farbu/y (colors.Viac) - Outline (Pridá čierny obrys textu.Viac) - TextDrawSetOutline(prvytextdraw , 1); - Proportional (Užitočné pri použití TextDrawLetterSize.Viac) Vyditelnosť. Zobrazenie textdrawu.Viac public OnPlayerConnect(playerid) { TextDrawShowForPlayer(playerid,prvytextdraw); } Skryťtie textdrawu.Viac public OnPlayerConnect(playerid) { TextDrawHideForPlayer(playerid,prvytextdraw); } Užitočné. - Online textdraw creator/editor - BSN - InGame textdraw creator/editor - Zamaroth - IPLEOMAX - Texdraw všeobecne - SA-MP wiki Nechcelo sa mi vypisovať všetky funkcie, iba tie základné.V prípade nutnosti viac funkcií kliknite na tento odkaz.
  19. ČLÁNEK V ORIGINÁLNÍ PODOBĚ ZDE: http://www.letajicimoucha.cz/eset-7-blokuje-nepravem-stranky-jak-to-vyresit/ Poslední dobou po přechodu na nejnovější ESET Smart Security 7 se mi stává, že jednoduše některé stránky nezobrazím. Vyhodí mi to jakou-si hlášku, že „Tato webová stránka není dostupná“ s kodem chyby: ERR_INVALID_CHUNKED_ENCODING. Samozřejmě stránky jsou v úplném pořádku bez jakéhokoliv viru či špatného scriptu. Za vším totiž stojí antivirus ESET, který je z neznámého důvodu blokuje. Tuto chybu bohužel potkal i můj blog, či má doména playz.cz na které byl instalovaný čistýWordPress. Dá se tedy říci, že hodně tuto hlášku lze potkat na stránkách s WordPress. Jenže se mi to stalo i u mé domény a stránek sam-clan.eu a tam běží systém Webspell. Dokonce se mi to děje i na jiných komerčních stránkách apod. Trošku jsem začal přemýšlet, čím to může být. Prvně mě napadlo, že za to může O2 internet, protože jsem na tuto věc natrefil zrovna u přítelkyně kde má O2 internet. Jenže když jsem to zkusil na jejím notebooku, vše fungovalo jak má. V tu ránu jsem začal mít podezření na můj antivirus ESET, neboť má přítelkyně má jiný. Zkusil jsem tedy vypnout antivirus a Déjà vu! Všechny stránky najednou fungovali! Zkusil jsem to tedy napsat na Facebook českého ESETu. Tam jsem zjistil, že vlastně vůbec o ničem neví a vše je v pořádku. Jenže jsem i koukal po internetu, a tento problém má daleko více lidí… Odkázali mně na jejich technickou podporu, abych to řešil s jejich techniky a to nejlépe telefonicky. Bohužel, já opravdu nemám náladu a ani čas řešit nějaký problém. Já jim podnět dal, nyní je to jejich práce. Ne moje… Každopádně pokud se mi do komentářů ozve více lidí, že máte podobný problém tak se jim ozvu. Jak problém vyřešit? Pokud tedy vlastníte antivirus ESET Smart Security 7, máte dvě řešení. To první řešení je stáhnout si starší verzi tohoto antivirusu, který tímto problémem netrpěl a nebo jako druhé řešení vložit problémové domény do vyjímek. A to vyřešíme následujícím postupem: Otevřeme si program ESET –> Vlevo v menu si vybereme NASTAVENÍ –> Dole klikneme na„Otevřít rozšířené nastavení programu…“ –> Zde si rozklikneme pluskem „Web a mail“–> Opět si rozklikneme pomocí plus „Ochrana přístupu na web“ –> A zde si vybereme„Správa URL adres“. Nyní klikneme na tlačítko „Přidat…“ a zde již vložíme adresu(doménu) stránky, která nám nefunguje. Aby se nám to projevilo na celou stránku (doménu),musíme ji vložit do hvězdiček. Takže jako příklad který můžete vidět na obrázku je můj blog, který vložíme tedy takto: *letajicimoucha.cz*OK a adresa se nám přidá do seznamu. Nyní ještě jednou potvrdíme pomocí OK a je hotovo. Doména je přidaná do vyjímek a nyní můžete na stránky bez problému chodit. Mám v plánu tento článek vydat i samostatně na Facebooku, protože pokud někdo má skutečně tento problém i na mém blogu, těžko si přečte můj článek jak to vyřešit. Doufám, že jsem vám pomohl a doufám, že brzo ESET udělá nápravu. Takovéhle fungování se mi totiž nelíbí, když antivirus který by měl chránit tak blokuje naprosto bezproblémové stránky. Budu rád za každý váš lajk či sdílení.
  20. [TUT] Jak udělat vícejazyčný příkaz Je to velmi jednoduchý Tutorial 1) Nadefinujeme si pár věcí #define dcmd(%1,%2,%3) if ((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, "")))||(((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1 //definie DCMD new Jazyk[MAX_PLAYERS] = 0; //Nastaví defaultní jazyk na češtinu #define ZELENA 0x31A021FF //Nadefinovaná zelená barva 2) public OnPlayerConnect(playerid) SendClientMessage(playerid, ZELENA, "Původní jazyk je Čeština"); SendClientMessage(playerid, ZELENA, "Pokud budete chtít změnit jazyk použíte příkaz podle jazyku [ /english /slovak /czech ] "); //Zde je příkaz při připojení , že si můžete změnit jazyk pomocí příkazu 3) public OnPlayerCommandText(playerid, cmdtext[]) dcmd(czech,5,cmdtext); dcmd(english,7,cmdtext); dcmd(slovak,6,cmdtext); dcmd(help,4,cmdtext); 4) Vložíme někde na konec MODU dcmd_czech(playerid , params[]){ #pragma unused params Jazyk[playerid] = 0; //Nastaví jazyk na Češtinu [0] SendClientMessage(playerid,0xC0C0C0FF,"Vybrál sis český jazyk"); return 1; } //---------------------------------------------------------------------------------------------------------------- dcmd_english(playerid , params[]) { #pragma unused params Jazyk[playerid] = 1; //Nastaví jazyk na Angličtina [1] SendClientMessage(playerid,0xC0C0C0FF,"You selectet english language"); return 1; } //---------------------------------------------------------------------------------------------------------------- dcmd_slovak(playerid , params[]) { #pragma unused params Jazyk[playerid] = 2; //Nastaví jazyk na Slovenština [2] SendClientMessage(playerid,0xC0C0C0FF,"Vybrál si si slovensky jazyk"); return 1; } //---------------------------------------------------------------------------------------------------------------- dcmd_help(playerid , params[]) { #pragma unused params switch (Jazyk[playerid]) { case 0: //Napíše zprávu pokud má jazyk vybraný CZ { SendClientMessage(playerid,0xFFD400AA,"Zde bude váš řádek č.1"); SendClientMessage(playerid,0xFFD400AA,"Zde bude váš řádek č.2"); } case 1: //Napíše zprávu pokud má jazyk vybraný EN { SendClientMessage(playerid,0xFFD400AA,"This is line 1"); SendClientMessage(playerid,0xFFD400AA,"This is line 2"); } case 2: //Napíše zprávu pokud má jazyk vybraný SK { SendClientMessage(playerid,0xFFD400AA,"Tu bude váš riadok č.1"); SendClientMessage(playerid,0xFFD400AA,"Tu bude váš riadok č.2"); } } return 1; } Jak to vypadá celé ? ODZKOUŠENO ! SÁM JSEM TO TESTOVAL
  21. Tanga

    návod Format

    Toto je prvá séria návodov pre úplnych začiatočníkov. Čo je to format: • Je to funkcia, ktorá spojí viac rozličných textov. Kedy použijem funkciu format: • Napríklad ak chcem, aby som z textov "ahoj" a "hráč" dostal "ahoj hráč"! Ako vyzerá funkcia format: Nasledujúci text si prečítaj velmi pozorne, podla toho budeš robiť. format(vysledokspojenia,sizeof(vysledokspojenia),"SKRATKA1 SKRATKA2",zdrojprvejskratky,zdrojdruhejskratky,...); Skratky, ktoré môžeš použiť: Postup použitia format: Tento postup používaj vždy a všade. Príklady použitia format: 1. Spojenie mena a priezviska: 2. Správa "Vitaj na serveri, menohráča." 3. Vynadanie hráčovi pomocou príkazu 4. Vynadanie hráčovi pomocou príkazu aj s menom admina Dúfam, že tento typ jednoduchého návodu s postupom je efektívny. Alebo prepadák jak hovado. Upozornenie pre skúsených: Informační návod - Návod označen jako platný Ten to návod byl označen jako platný.Návod může být kdykoli označen jako nevhodný či neplatný
  22. Zdravím chtěl bych se zeptat , jak udělat aby když si koupí nějaké vozidlo tak to přidá majitele toho kdo si to koupil . Prosil bych prosím o radu
  23. Zdravím , chtěl bych se zeptat proč mi toto nefunguje . Normálně to zkompiluju a dám na server . Ale na serveru se nic neděje :/ Byl bych rád kdyby jste mi pomohli Tady je kod public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger) { if(GetVehicleModel(playerid) == 456 && job[playerid] != 2) { SendClientMessage(playerid, 0xFF4700AC, "[ ZNV ] Zaměstnání : Nemůžeš řídit toto vozidlo , protože nepracuješ jako Delivery"); TogglePlayerControllable(playerid, 1); } return 1; }
  24. Pepa

    návod Bomba

    Čaute, dávám jsem začátečníkům návod jak vytvořit lehce bombu: Takže, nahoru dáme: #define barva 0xFF0000AA //Definuje červenou barvu new Float:rX,Float:rY,Float:rZ; //Souřadnice new bomba[MAX_PLAYERS]; //Bomba new Float:bX,Float:bY,Float:bZ; //Souřadnice new Name[21]; //Zjišťuje hráčovo jméno new string[256]; a do public OnPlayerCommandText(playerid, cmdtext[]) { if(strcmp(cmdtext, "/polozitbombu", true) == 0){ //Příkaz if(bomba[playerid] == 0){ //Pokud je bomba nastavená na 0 znamená to že bomba ještě neni položená bomba[playerid]=1; //Nastaví bombu jako položenou GetPlayerPos(playerid,bX,bY,bZ); //Zjišťuje hráčovo pozíci aby se mohl vytvořit výbuch bomby CreateObject(1654,bX,bY,bZ-0.8,rX,rY,rZ); //Vytvoří model bomby GetPlayerName(playerid,Name, sizeof(Name)); //Zjišťuje hráčovo jméno format(string, sizeof(string), "Hráč %s položil bombu",Name); //Napíše text do chatu SendClientMessageToAll(barva, string); //Pošle to všem do chatu barvou }else{ //Pokud už je bomba položená SendClientMessage(playerid,barva, "Bomba už je položená, odpalte příkazem /boom"); //Napíše jen vám do chatu že už je bomba položená } return 1; } if(strcmp(cmdtext, "/boom", true) == 0){ //Příkaz if(bomba[playerid] == 0){ //Pokud je bomba nastavená na 0 znamená to že bomba ještě neni položená SendClientMessage(playerid,barva, "Bomba ještě neni položená"); //Napíše jen vám text do chatu }else{ //Pokud je bomba nastavená na 1 CreateExplosion(bX,bY,bZ,2,3); //Vytvoří výbuch DestroyObject(1654); //Zníčí model bomby bomba[playerid]=0; //Vrátí bombu do původný hodnoty GetPlayerName(playerid,Name, sizeof(Name)); //Zjišťuje hráčovo jméno format(string, sizeof(string), "Hráč %s odpálil bombu",Name); //Napíše text do chatu SendClientMessageToAll(barva,string); //Pošle to všem do chatu barvou } } return 1; } Za každym kódem máte vysvětlivky: //vysvětlivka Doufám že nováčkům návod pomůže a bude se hodit Díky předem za hodnocení.
×
×
  • Create New...