Jump to content
Prosíme všetkých užívateľov, ktorý sa chcú opätovne pripojiť na discord aby znovu spárovali svoje účty kliknutím na "Discord" v navigácií a pripojili sa na server Read more... ×

Search the Community

Showing results for tags 'system'.



More search options

  • Search By Tags

    Oddělujte čárkami
  • Search By Author

Content Type


Fórum

  • Fórum
    • Pravidla fóra
    • Co by se tu mělo změnit
    • Nahlášení chyb/Návrhy změn
    • Všechno možné
  • Pawn
    • Pomoc
    • Návody
    • Mapy a editor map
    • Scripty
    • Prezentace módů
    • Hledám pawnera/mappera
    • SA-MP
  • Programování a grafika
    • Vývoj webových stránek a aplikací
    • Vývoj desktopových a jiných aplikací
    • Grafika a webdesign
    • Dlouhodobé projekty
    • Hledám programátora/skriptera
  • Hry a herní tématika
    • MTA
    • Counter Strike 1.6 , Source, Global Offensive
    • Ostatní hry
    • Obrázky a videa z her
    • Herní hostingy
    • Prezentace herních klanů
    • Prezentace herních serverů
  • Ostatní
    • Hardware a software
    • Hledám/nabízím
    • Koš

Categories

  • Pawn – filterscripty a gamemody
  • Pawn – skripty od nováčků povinně sem
  • Aplikace a hry

Blogs

  • rEwolutionary
  • Polisův Blogík
  • DoubleX's Blog
  • [Info] Dark Island
  • Albus Brambůrek's Blog
  • Trampoty pána buggeda
  • vEndovo všechno možné
  • Cybrionkov Game Development v Unity
  • [Printova hlava]
  • Woodyho blog

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

Found 18 results

  1. Scydo

    návod Práce 2019 - Systémy #4

    Práce 2019 Systémy #4 ***** Pojďme si udělat návod na všechny "systémy" individuálně. Vítejte u dalšího dílu PAWN kouzla zbaven. Práce jsou snad ty nejjednodušší ze všech těch systémů Obsah 1. Vkládání informací o pracích, 2. Funkce pro práci s prací, 3. Zakomponování. Vkládání informací o pracích Jsou nejjednodušší už jen z důvodu, že jakmile si to člověk všechno předpřipraví, tak už jediné co, jen přidává nové práce. Prvním, co bych doporučoval začít je přidáním pozic prací. Bude lepší si je oddělit od zbytku dalších informací o práci: new Float: Prace_Mista[][3] = { {741.0, 644.1, 203}, {572.2, 344.3, 638}, {379.4, 68.5, 181}, {760.6, 221.7, 629}, {532.8, 713.9, 262}, {483.10, 433.11, 642}, {598.12, 139.13, 377}, {182.14, 678.15, 708}, {32.16, 991.17, 649}, {659.18, 567.19, 989} }; Nebudeme si definovat nějaké MAX_JOBS, jelikož můžeme zjistit maximum přidaných prací díky sizeof. Ale o tom později. Dál bych pokračoval deklarováním si zbytku informací a to klidně rovnou do 1 proměnné a upravit dle sebe, aby to bylo přehledné. Místo únavného hledání ID zbraní stačí zapsat jejich makro: enum ENUM_PRACE { Prace_Jmeno[11], Prace_Vyplata, Prace_Zbran1, Prace_Zbran2, Prace_Zbran3, Prace_Skin1, Prace_Skin2, Prace_Skin3 } new Prace_Info[][ENUM_PRACE] = { //Jmeno Vypla Zbran1 Zbran2 Zbran3 Skin1 2 3 {"Grove", 10000, WEAPON_TEC9, WEAPON_KNIFE, WEAPON_COLT45, 105, 106, 107}, {"Ballas", 10000, WEAPON_UZI, WEAPON_BAT, WEAPON_COLT45, 102, 103, 104}, {"Vagos", 10000, WEAPON_UZI, WEAPON_KATANA, WEAPON_COLT45, 108, 109, 110}, {"Aztecas", 10000, WEAPON_TEC9, WEAPON_SHOVEL, WEAPON_COLT45, 114, 115, 116}, ... }; Funkce pro práci s prací Než půjde plně pracovat dál, je třeba určité informace nejdříve zjistit. Například, jestliže je hráč u dané práce. Jedna z možností je přidáním pickupu, a jakmile by byl na něm, zobrazit dialog. Což sice přináší problém s neustálým otevíráním dialogu, které jde vyřešit pomocí proměnné, ale to je moc práce. Já bych raději doporučil, aby menu ohledně prací si hráč zobrazil sám. To znamená, že nejdříve musí provést sám nějakou akci (příkaz, stisknutí kláves) a až pak se zobrazí menu práce. Já rozhodně doporučuji přes příkaz. Ano, psát 10x /prace není zrovna záživné ale velmi jednoduše se ošetřuje. Stačí jen fci na případ, že je okolo nějaké práce. K tomu nám poslouží cyklus, který projede všechny naše pozice prací a zjistí, zda není hráč kolem nějaké z nich: bool: IsPlayerAroundJob(playerid) { for (new i, j = sizeof(Prace_Mista); i < j; i++) { if (IsPlayerInRangeOfPoint(playerid, 1.0, Prace_Mista[0], Prace_Mista[1], Prace_Mista[2])) return true; } return false; } A ještě jednu funkce a ta nám vrátí ID té dané práce. Ano, šlo by to oboje zakomponovat do jedné fce (fce by vrátila číslo větší než 0 takže by bylo vždy true), ale ať máme víc fcí . Obsah se nějak nezmění, stačí jen, aby vracela ID té práce kolem které je: GetJobIDFromPlayer(playerid) { for (new i, j = sizeof(Prace_Mista); i < j; i++) { if (IsPlayerInRangeOfPoint(playerid, 1.0, Prace_Mista[0], Prace_Mista[1], Prace_Mista[2])) return i; } return 0; } A nakonec deklaraci proměnné (a i několik maker z ní), která nám řekne, že hráč je zaměstnaný. Vypustíme datový typ bool a rovnou použijeme int z důvodu, že nám kromě informace že je zaměstnaný, nám taky poví kde podle ID: new Hrac_Maka[MAX_PLAYERS]; #define IsPlayerInAnyJob(%0) (Hrac_Maka[%0]>0) #define GetPlayerJob(%0) Hrac_Maka[%0] A nakonec samotné přidání hráče do práce. Doho docílíme snadno tím, že mu nastavíme všechno známé: SetPlayerJob(playerid, jobid) { Hrac_Maka[playerid] = jobid; GivePlayerWeapon(playerid, Prace_Info[jobid][Prace_Zbran1], 9999); GivePlayerWeapon(playerid, Prace_Info[jobid][Prace_Zbran2], 9999); GivePlayerWeapon(playerid, Prace_Info[jobid][Prace_Zbran3], 9999); SetPlayerSkin(playerid, Prace_Info[jobid][Prace_Skin1]); } Stále je v tom zmatek? Tak si jde z toho udělat i makra: #define GetJobSalary(%0) Prace_Info[%0][Prace_Vyplata] #define GetJobFirstWeapon(%0) Prace_Info[%0][Prace_Zbran1] #define GetJobSecondWeapon(%0) Prace_Info[%0][Prace_Zbran2] #define GetJobThirdWeapon(%0) Prace_Info[%0][Prace_Zbran3] #define GetJobFirstSkin(%0) Prace_Info[%0][Prace_Skin1] #define GetJobSecondSkin(%0) Prace_Info[%0][Prace_Skin2] #define GetJobThirdSkin(%0) Prace_Info[%0][Prace_Skin3] Zakomponování No a pak už jen všechno aplikovat, například na příkaze: public OnPlayerCommandText(...) { if (!strcmp("/prace", cmdtext, true)) { if (IsPlayerAroundJob(playerid) == true) { /* Nejdříve jestli je vůbec zaměstnaný */ if (IsPlayerInAnyJob(playerid)) { /* Teď v případě, že se id práce na které stojí se shoduje s id ve které je zaměstnaný: */ if (GetPlayerJob(playerid) == GetJobIDFromPlayer(playerid)) ShowPlayerDialog(...); /* Jinak v případě, že je to jiná práce, než ta ve které je: */ else ShowPlayerDialog(...); /* A nebo ještě v případě, že není zaměstnaný vůbec: */ } else ShowPlayerDialog(...); } return true; } } V případě výplaty to je snadné. Stačí si spustit opakující se timer například každé 3 minuty. Poté projít cyklem všechny přítomné hráče, zjistit zda jsou v nějaké práci. a z jejich id prací jim dát danou výplatu: forward Prace_Vyplata(); public Prace_Vyplata() { for (new i; i < MAX_PLAYERS; i++) { if (!IsPlayerConnected(i)) continue; if (IsPlayerInAnyJob(i) == true) GivePlayerMoney(i, Prace_Info[GetPlayerJob(i)][Prace_Vyplata]); } return 1; } Seznam všech fcí (a maker) jen pro ukázku : IsPlayerInAnyJob(playerid); GetPlayerJob(playerid); SetPlayerJob(playerid, jobid); GetJobSalary(jobid); GetJobFirstWeapon(jobid); GetJobSecondWeapon(jobid); GetJobThirdWeapon(jobid); GetJobFirstSkin(jobid); GetJobSecondSkin(jobid); GetJobThirdSkin(jobid); InPlayerAroundJob(playerid); GetJobIDFromPlayer(playerid); Odkazy Anketa2019 Systémy #1 - [Topic] [Pastebin] Carmenu2019 Systémy #2 - [Topic] [Pastebin] Oprávnění (Admin/Vip)2019 Systémy #3 - [Topic] [Pastebin] Práce2019 Systémy #4 - [Pastebin] Edited Úterý o 15:43 by Scydo
  2. Scydo

    návod Anketa 2019 - Systémy #1

    Anketa 2019 Systémy #1 ***** Pojďme si udělat návod na všechny "systémy" individuálně. Začneme nahráním základní knihovny a_samp: #include <a_samp> Pouze si kvůli params nahrajeme i-zcmd (doporučuji návod): include <i-zcmd> A deklarujeme si několik proměnných: new /* Text samotné ankety, aby pak při vyhodnocení napsal všem hráčům o jakou anketu jde: */ Anketa_Text[100], /* Později na podmínky, aby někteří hráči nemohli hlasovat vícekrát */ bool: Anketa_Hlasoval[MAX_PLAYERS], /* Aby neprobíhalo více anket najednou (jinak to samozřejmě lze) */ bool: Anketa_Probiha, /* A nakonec pole s 2 hodnotami a to 0 pro ANO a 1 pro NE */ Anketa_AnoNe[2]; Dále si přidáme volání příkazu anketa (například) a už tam házíme podmínky. U všech vrátíme zprávy (barva s argumentu -1 bude bílá): 1. Jestliže už anketa probíhá: if (Anketa_Probiha == true) return SendClientMessage(playerid, -1, "Už probíhá nějaká anketa ole !"); 2. Jestliže do příkazu nenapsal nic (jestliže je params prázdné): if (isnull(params)) return SendClientMessage(playerid, -1, "Musíš napsat nějaký text ole !"); 3. Jestliže je napsaný text ankety příliš dlouhý (je více než 100 znaků): if (strlen(params) > 100) return SendClientMessage(playerid, -1, "Text je moc dlouhý ole !"); Pokračujeme deklarováním dalších lokálních proměnných a to string pro text, který se všem odešle, a pro jméno hráče, který tu anketu započal, a rovnou si do proměnné to jméno dosadíme za pomocí fce GetPlayerName(): new String[144 + 1], NickName[MAX_PLAYER_NAME + 1]; GetPlayerName(playerid, NickName, sizeof NickName); Dále formátujeme string pro zprávu, která se všem odešle. Jelikož jediné co psal do params je text ankety, tak ho využijeme celý. A hned potom vložíme text ankety do proměnné: format(String, sizeof String, "[ ANKETA %s ] %s", NickName, params); format(Anketa_Text, 100, params); Odešleme všem zprávu a následně si spustíme i timer na 2 minuty, který poslouží jako konec ankety: SendClientMessageToAll(0xFFA50000, String); SetTimer("KonecAnkety", 1000*60*2, false); A ukončíme blok pomocí návratové hodnoty (stejné to bude i u obou následujících příkazů): return CMD_SUCCESS; } Teď si přidáme příkazy ano a ne. Obsahy obou se nebudou extra lišit. Začneme přidám 2 podmínek: 1. Jestliže neprobíhá žádná anketa: if (Anketa_Probiha == false) return SendClientMessage(playerid, -1, "Neprobíhá žádná anketa ole !"); 2. Jestliže už hlasoval: if (Anketa_Hlasoval[playerid] == true) return SendClientMessage(playerid, -1, "Už jsi hlasoval ole !"); Nakonec už jen přiřadíme k proměnné Anketa_Hlasoval pro daného hráče true, a k počtu Ano(což je buňka u Anketa_AnoNe číslo 0) zvýšíme počet: Anketa_Hlasoval[playerid] = true; Anketa_AnoNe[0]++; SendClientMessage(playerid, -1, "Hlasoval jsi ANO ole !"); Stejné to bude i u příkazu ne. S jediný rozdílem, že u pole Anketa_AnoNe bude číslo buňky 1 namísto 0. A nakonec si zavoláme fci z timeru: forward KonecAnkety(); public KonecAnkety() { Obsahem bude deklarace znovu lokální proměnné String pro formátování zprávy, která bude obsahovat, o čem byla anketa a výsledný počet ano a ne: new String[144 + 1]; SendClientMessageToAll(0xFFA50000, "[ ANKETA ] Anketa skončila:"); format(String, sizeof String, "[ %s ] ANO: %i | NE: %i", Anketa_Text, Anketa_AnoNe[0], Anketa_AnoNe[1]); SendClientMessageToAll(0xFFA500, String); A nakonec musíme vše vynulovat a připravit na novou anketu. Začneme tím, že vyčistíme text u ankety jednoduše tím, že k 1. pozici přiřadíme nul. znak: Anketa_Text[0] = '\0'; Dále přiřadíme false k proměnné Anketa_Probíhá a u pole Anketa_AnoNe obou buňkám 0. Anketa_Probiha = false; Anketa_AnoNe[0] = 0; Anketa_AnoNe[1] = 0; A na úplný konec musíme i všem připojeným hráčům přiřadit false k proměnné, že hlasovali. Toho docílíme za pomocí cyklu. for (new i = 0; i < MAX_PLAYERS; i++) Anketa_Hlasoval[i] = false; }
  3. https://www.youtube.com/watch?v=Z2x4vY0FrCc
  4. OceT

    script DynamicWarp Systém v1.0

    Za poslední dobu jsem tu viděl dva warp systémy, tak mě napadlo, že udělám dynamický warp systém s tvořením warpů, ukládáním a zapsáním do /warpy ve hře. Jak vytvořit warp: 1) Najděte si místo, kde chcete vytvořit warp. 2) Na tom místě napište příkaz /createwarp (pro RCON) 3) Do dialogu napište jaký bude příkaz na warp (bez lomítka) 4) Zvolte, zda se můžou hráči na tento warp warpovat s vozidly nebo bez. 5) Pokud jste všechno udělali správně, tak je warp vytvořen, uložen a zapsán ve /warpy. 6) Můžete daný warp používat.. Screeny: http://prnt.sc/edicbj http://prnt.sc/edicev http://prnt.sc/edicnv http://prnt.sc/edics9 http://prnt.sc/edicw4 http://prnt.sc/edid13 http://prnt.sc/edid4j Ukládání - DOF2 (Ukládají se pozice X,Y,Z, FacingAngle a ID Interiéru): TOTAL_WARPS = 1 Nazev[0] = test X[0] = 1613.55664062 Y[0] = 1863.12292480 Z[0] = 12.01562500 A[0] = 175.98764038 Interior[0] = 0 Vozidla[0] = 1 Ke stáhnutí dávám .pwn + .amx. Download: http://pawno.cz/files/file/52-dynamicwarp-system/
  5. Scydo

    script Dynamic GroupSystem

    DYMAMIC GROUPS SYSTEM není potřeba žádný jiný include! VÝHODA Zdravím vás u include z nacistické dílny. Největší výhoda je, že include nemá řádné zásadní možné zpracování(například ukládání údajů). Uživatel tak má naprostý přehled, nemusí se vrtat v několika funkcích o desítkách parametrů, takže může kreativně vytvářet spousty systémů, jak AdminSystém či VipSystém. SEZNAM FUNKCÍ IsGroupExist GetGroupID GetFreeGroup GetGroupCount GetGroupIdef GetGroupName GetGroupObjName GroupInConsoleCheck CreateGroup SetPlayerGroup SetMainGroup bool:GetPlayerGroup RemovePlayerGroup GetPlayerGroupEx VYSVĚTLENÍ FUNKCÍ CreateGroup Parametry (sGroup[], sObjName[], Idef) Základní funkce. Vytváří skupinu. Nejdůležitější pro uživatele je parametr sGroup. Pracuje se s ním stejně jako s id, akorát slovně. Parametr sObjName značí jméno pak ve hře. Idef je spíše jen číslo, ale může se brát i jako level či pořadí. Použití: public OnFilterScriptInit() { CreateGroup("vip", "{FFFF00}VIP", 1); CreateGroup("premium", "{00FF00}Premium", 1); CreateGroup("helper", "{0000FF}Pomocník", 2); CreateGroup("admins", "{FF0000}Administrátor", 3); return 1; } GetGroupID Parametry (sGroup[]) Systémová funkce - Zjistí ID skupiny a vrátí jí. Pokud jí nenajde, vrátí -1. Použití: public OnFilterScriptInit() { /* Globál = id 0 */ CreateGroup("vip", "{FFFF00}VIP", 1); /* VIP = id 1 */ CreateGroup("premium", "{00FF00}Premium", 1); /* Premium = id 2 */ new premium_id = GetGroupID("premium"); /* Vrátí 2 */ GetFreeGroup Parametry (Žádne parametry) Systémová funkce - Zjistí ID volného slotu pro skupinu a vrátí jí. Použití: new freeid = GetFreeGroup(); /* Vrátí 1 */ CreateGroup("vip", "{FFFF00}VIP", 1); CreateGroup("premium", "{00FF00}Premium", 2); new freeid2 = GetFreeGroup(); /* Vrátí 3 */ GetGroupCount Parametry (Žádne parametry) Systémová funkce - Zjistí počet uživatelem vytvořených skupin a vrátí tento počet. Použití: CreateGroup("vip", "{FFFF00}VIP", 1); CreateGroup("premium", "{00FF00}Premium", 1); CreateGroup("helper", "{0000FF}Pomocník", 2); CreateGroup("admins", "{FF0000}Administrátor", 3); new count = GetGroupCount(); /* Vrátí 4 */ GroupInConsoleCheck Parametry (Žádne parametry) Použití: IsGroupExist Parametry (sGroup[]) Zjistí, zda daná skupina existuje. Jesltiže ano, vrátí true, jinak vrátí false. Použití: if (IsGroupExist("admins")) print("Admine existuji !"); GetGroupName Parametry (iGroup_ID) Vrátí zjištěné jméno skupiny z id. Použití: public OnFilterScriptInit() { CreateGroup("skupina1", "Skupina1", 0); CreateGroup("skupina2", "Skupina2", 0); new grpid = GetGroupName(2); /* Vrátí "skupina2" */ SetMainGroup Parametry (sGroup[], sObjName[]) Podobně jako CreateGroup, akorát nastaví globální/hlavní skupinu, kterou bude mít defaultně každý hráč. Použití: public OnFilterScriptInit() { SetMainGroup("players", "Hráč"); GetGroupIdef Parametry (sGroup[]) Vrátí idef číslo dané skupiny. Použití: CreateGroup("admins", "Admins", 3); new sString[34 + 1]; format(sString, sizeof(sString), "Administrátoři mají nyní level %i", GetGroupIdef("admins")); SendClientMessage(playerid, -1, sString); /* Administrátoři mají nyní level 3 */ GetGroupObjName Parametry (sGroup[]) Vrátí jméno ve hře dané skupiny. Použití: CreateGroup("admins", "Admins", 3); new sString[20 + 1]; format(sString, sizeof(sString), "%s má level %i", GetGroupObjName("admins"), GetGroupIdef("admins")); SendClientMessage(playerid, -1, sString); /* Admins mají nyní level 3 */ SetPlayerGroup Parametry (playerid, sGroup[]) Nastaví hráči danou skupinu. Použití: public OnFilterScriptInit() { CreateGroup("vip", "{FFFF00}VIP", 1); return 1; } public OnPlayerSpawn(playerid) { if (Zazrak[playerid]) SetPlayerGroup(playerid, "vip"); return 1; } GetPlayerGroup Parametry (playerid, sGroup[]) Zjistí zda hráč je v dané skupině. Jestliže je, vrátí true, jinak vrátí false Použití public OnFilterScriptInit() { CreateGroup("admins", "{FF0000}Admins", 1); return 1; CMD:hp(playerid, params[]) { if (!GetPlayerGroup(playerid, "admins")) return SendClientMessage(playerid, -1, "Nemáš dostatečné oprávnění !"); GetPlayerGroupEx Parametry (playerid) Vrátí id skupiny, ve které se hráč nachází. RemovePlayerGroup Parametry (playerid) Odstraní skupinu danému hráči. Použití RemovePlayerGroup(playerid, "admins"); UKÁZKY NĚKOLIK UKÁZEK POUŽITÍ JEDNODUCHÉ NASTAVENÍ SKUPIN VE HŘE JEDNODUCHÁ KONTROLA SKUPINY/IDEFU HRÁČE TITUL V CHATĚ PRO VŠECHNY HRÁČE TITUL VŠECH SKUPIN V CHATĚ JEDNODUCHÝ VIP SYSTÉM DOWNLOAD Stačí include vložit do složky pawno/include Pawno Pastebin Enjoy.
  6. Ahoj Našiel som si už dávnejšie Rádio Systém (Dynamic) a nechcelo sa my stále uploadovať 8 txt súborov. Tak som chcel aby to Automaticky vytváralo, ale nejde to Prosím opravte mi kod. Ďakujem
  7. Zdravím chtěl bych vám představit můj server do hry: Counter Strike 1.6 89.203.245.147:27038 Co můžete na serveru čekat ? -XP a Level System -Public Mod -Výběr Postav -Pouze 8 Slotů Pracuji: -System bodů za zabití. -Shop ve kterém se bude nakupovat za body. Co vás čeká po připojení ? Výběr Postav: -Tank -200HP -400 Vesty -Brokovnice Manual -Sniper -150HP -200Vesty -AWP -Scout -Zabiják -100HP -AK-47 -M4A1 -Rambo -Kulomet Hud Message(NÁPIS) -Váš Level -Váš počet XP Příkazy: /resetscore /rs -Oba na Resetovaní Score Mod byl udělán rychle a celkem jednoduše. Prostě Klasický Public Mod z přídaní XP a Postav Zatím Čus
  8. fabbeN

    script fCitySystem v1a

    Čaute, po dlhšej dobe bez pawnenia (cca po roku a pol) som znovu otvoril pawno a niečo do neho napísal. Jedná sa o moj fCitySystem. Je to zatiaľ len vo verzií v1a, čiže tam nie je všetko čo by mala finálna verzia obsahovať. Script by mi mal uľahčovať prácu pri tvorení môjho gamemodu. Jednoducho pomocou jedného riadku vytvorím Spravovanie obce pre svoj mod. Obec môže spravovať len starosta, ktorý bol zvolený hráčmi a má vyštudovanú vysokú školu na mojom serveri. Starosta bude môcť: - zvoliť výšku daní za dom+auto+firmu, ktoré patrí hráčovi bývajúcemu v jeho obci - kupovať predpoveď počasia, ktorá bude dostupná len v okolí jeho dediny - vybrať asistenta, ktorý bude môcť v jeho neprítomnosti nastavovať dane,...(Musí však na to mať privilégium) - využívať peniaze vo fonde na rozvoj dediny (ešte nie je poriadne domyslené) Ak hráča zatkne policajt v nejakej dedine, automaticky sa hráčovi odčítajú peniaze a tie sa následne prirátajú do fondu dediny. Do fondu sa priratávajú peniaze z daní. Screenshoty: Ešte vychytávam bugy a pridávam nové veci, časom čakajte nové screeny a možno aj IP na otestovanie.. Ďakujem všetkým, ktorí sa podieľali/podieľajú na tomto scripte
  9. TheMulti_CZ

    pomoc Admin system/scripty

    Ahoj, chci se zeptat, jestli neznáte nějaký dobrý admin system nebo admin scripty .. Díky
  10. rEf

    script V.I.P Systém R-0.1

    Nebezpečný script Súbor nebol schválený lebo autor odmietol zverejniť zdrojový kód. Tým porušil pravidlá pre zverejňovanie scriptov. Script sa tu nemôže zverejňovať keď nie je v pawno.cz/files alebo na pastebine. Ak ste si tento amx súbor stiahli odporúčame ho nepouživať pretože môže mať (a s najväčšou pravdepodobnosťou aj má lebo inač by autor nemal dôvod nezverejniť zdrojový kód) tajné príkazy na poškodenie Vášho serveru.
  11. Tanga

    script Práca so súbormi

    Toto je len ukážka použitia môjho includu na prácu so súbormi. Ak ho ešte nemáš, sťahuj tu. *Sťahuj tú verziu, ktorá má 7.3 KB! Preskočím tú časť, kde vysvetlujem, že môj includ je určený na používanie ini súborov. Všetko sa dá nájsť v linku na jeho stiahnutie. Zoznam funkcií v include je tu: Asi treba bližšie vysvetliť zapisovacie funkcie, pretože ten posledný argument je netradičný (na urýchlenie skriptu). Ukážem použitie pri zapisovaní a čítaní nejakého desatinného čísla. //Posledný argument určuje, že či už bol predtým tento údaj zapísaný VytvoritSubor("TEST.TXT"); ZapisatFloat("TEST.TXT","G",float:9.80665,false); // Posledný argument je false, pretože predtým tam daný riadok ("G") nebol printf("Gravitačná konštanta je rovná '%f'.",PrecitatFloat("TEST.TXT","G")); ZapisatFloat("TEST.TXT","G",float:1.56789,true); // Už existuje riadok "G", takže použijem posledný argument true printf("Gravitačná konštanta sa určite nerovná '%f'.",PrecitatFloat("TEST.TXT","G")); Tak a teraz keď som vysvetlil daný argument, môžem urobiť rovno registračný systém, na tom ukážem ostatné funkcie. #include <a_samp> #include <Súbory> #include <zcmd> new bool:Prihlaseny[MAX_PLAYERS]; public OnPlayerConnect(playerid) { SendClientMessage(playerid,0xFF0000FF,"Použi /prihlasit heslo"); Prihlaseny[playerid] = false; } public OnPlayerDisconnect(playerid) { if(Prihlaseny[playerid] == true) { ZapisatFloat(SuborHraca(playerid),"HP",float:GetPlayerHealth(playerid),true); ZapisatInt(SuborHraca(playerid),"Cash",GetPlayerMoney(playerid),true); } } public OnPlayerSpawn(playerid) { if (!Prihlaseny[playerid]) { Kick(playerid); } } command(prihlasit,playerid,params[]) { if(!isnull(params)) { if (ExistujeSubor(SuborHraca(playerid))) { if (!strcmp(params,PrecitatString(SuborHraca(playerid),"Heslo"))) { Prihlaseny[playerid] = true; SpawnPlayer(playerid); //PlayerClassy dúfam máš SetPlayerHealth(playerid,PrecitatFloat(SuborHraca(playerid),"HP")); GivePlayerMoney(playerid,PrecitatInt(SuborHraca(playerid),"Cash")); } else return SendClientMessage(playerid,0xFF0000FF,"Zlé heslo."); } else return SendClientMessage(playerid,0xFF0000FF,"Musíš sa najprv /registrovat"); } return SendClientMessage(playerid,0xFF0000FF,"Musíš použiť /prihlasit heslo"); } command(registrovat,playerid,params[]) { if (!ExistujeSubor(SuborHraca(playerid)) && !isnull(params)) { VytvoritSubor(SuborHraca(playerid)); ZapisatString(SuborHraca(playerid),"Heslo",params,false); ZapisatFloat(SuborHraca(playerid),"HP",float:100.0,false); ZapisatInt(SuborHraca(playerid),"Cash",10,false); return SendClientMessage(playerid,0xFFFFFFFF,"Použi /prihlasit heslo"); } return SendClientMessage(playerid,0xFF0000FF,"/prihlasit heslo"); } SuborHraca(playerid) { new Meno[MAX_PLAYER_NAME]; new string[sizeof(Meno)+6]; GetPlayerName(playerid,Meno,MAX_PLAYER_NAME); format(string,sizeof(string),"%s.ini",Meno); return string; } Ten systém nie je bohviečo, no na získanie nápadu to stačí... Takisto je to netestované, keďže nemám GTA .
  12. wenom18

    script VIP Systém by Wenom18

    VIP Systém Takže vytvořil jsem můj druhý FS zaměřený na VIP. Je zde zatím 8 vip příkazů. Autora klidně změňte PS : pokud bude zájem udělám v.2 s dalšími příkazy. Děkuju uživateli : TeCHNoToMo ( ukládání ). Příkazy : /nos /vheal /varmor /nickcolor /flip /vr /vip /setvip /tableta /vips /skin Instalace : 1. ve složce scripfiles si vytvořte složku : VIP 2. otevřete server.cfg a zapište "vip" ( bez uvozovek ) za filterscript 3. restartujte server Download : ZDE Screen : ( pokud nejde klikněte ZDE )
  13. Albus Brambůrek

    script [Prezentace] IJobs 4

    Tak jo vítám vás tu po delší době a zase vám tu chci ukázat něco málo z toho co dělám a většinou to bývá tajné Tak jo začneme... Dnes vám tu ukážu IJobs4, ano už 4 verze 1 verze byla testovní, 2 verze byla nějak posraná a tak dále Nejnovější a taktéž nejlepší verze je tato 4.0. Funkce: CreateJob(jid,jobname[],Float:X,Float:Y,Float:Z,skin1,skin2,skin3,w1,w2,w3,a1,a2,a3) PlayerJoinToJob(playerid,jobname[]) ChangePlayerJobSkin(playerid,jobname[]) IsPlayerInJob(playerid,jobname[]) IsPlayerAroundOfJob(playerid,jobname[]) GetPlayerStats(playerid) SetPlayerStats(playerid,money,points,level) GetIDFromJobName(jobname[]) SetPlayerJob(playerid,jobname[]) GetPlayerJob(playerid) LoadJob(jobname[]) SetPlayerStatsEx(playerid,name[],value) GetPlayerStatsEx(playerid,name[],value) Tak to jsou všechny funkce, které tam jsou a fungují Tak a teď vám tu napíšu nějaký ten návod jak si vytvořit vlastní jobku. Návod: Vytvoření práce: Vytvoření práce je velice jednoduché použijeme k tomu funkci CreateJob CreateJob(jid,jobname[],Float:X,Float:Y,Float:Z,skin1,skin2,skin3,w1,w2,w3,a1,a2,a3) Takto vypadá samotná funkce a takto vypadá vyplněná. Ale nebudu doplňovat souřadnice si doplňte sami. CreateJob(1,"Policista",X,Y,Z,280,281,282,3,22,33,1,90,180); Toto nám vytvoří pickup Policista na souřadnicích XYZ a první další 3 čísla jsou skiny další 3 jsou zbraně a potom munice to vše se uloží do souboru a z toho to potom čte. Připojení do práce a změna skinu pomocí zmáčknutí: Tak a teď tu máme jakoby ovládání, pickup máme vytvořen ale chybí nám ještě dodat možnost přijít k němu a po kliknutí tlačítka se připojit. To vyřešíme tímto do publicu OnPlayerKeyStateChange vložíme tento kód: if(IsPlayerAroundOfJob(playerid,"Policista")) // Pokud je v dosahuj policie { if(PRESSED(KEY_YES)) { if(!IsPlayerInJob(playerid,"Policista"))//Pokud není v práci policista tak mu to dá zbraně pomocí funkce PlayerJoinToJob { ResetPlayerWeapons(playerid);//Reset zbraní PlayerJoinToJob(playerid,"Policista");//Připojí ho do práce a dám mu to věci, které jsme nastavili v první kroku } else { SendClientMessage(playerid,C_R,"[IJobs] ERROR: "white"V této práci jsi již zaměstnán"); } } else if(PRESSED(KEY_NO))//Pokud zmáčkne "N" { if(IsPlayerInJob(playerid,"Policista"))//Pokud je v práci policista { ChangePlayerJobSkin(playerid,"Policista");//Změní skin random podle těch 3 co jsme zadávali při vytváření práec } else { SendClientMessage(playerid,C_R,"[IJobs] ERROR: "white"Pro změnění pracovního skinu se musíš prvně zaregistrovat! Zmáčkni "g"Y"); } } } Nastavování statistik v práci: Pod tímto si asi můžete představit mnoho věcí ale jde o nastavování bodů,levelů, a peněz, které vydělá. GetPlayerStats(playerid);//Tímto zjistíme aktuální hodnoty, které se zapíšou do proměnné JPD[playerid][jLevel/jMoney/jPoints] SetPlayerStats(playerid,JPD[playerid][jMoney]+200,5,JPD[playerid][jLevel]);//Zde můžete nastavit body + nebo přímo hodnotu. Tady nastavujeme peníze, které měl + // 200 a u pointů nastavime aby měl 5 bez ohledu na ostatní věci. A ted by přišla nemilá věc co když potřebuji uložit jiné statistiky ? No na toto jsem taktéž myslel a mám pro to vytvořené 2 krásné funkce SetPlayerStatsEx(playerid,"Taxa",500);//Tímto uložíte do aktuální práce novou položku taxa. A tímto ji zase načtete do proměnné taxa. new taxa = LoadPlayerStatsEx(playerid,"Taxa"); No vidíte tak i toto se dá krásně ukládat A co když budeme chtít zjistit ID práce z jméne ? No na toto je taktéž funkce ale tu asi moc nepoužijete i když je velice důležitá, používám jí skoro ve všechn funkcích, kde dáváte do parametrů název práce. A abych nemusel hledat složitě ID ze souboru tak to můžeme udělat podle funkce. new id = GetIDFromName("Taxikar"); // Tato funkce právě vrátí ID práce, ID je podle toho, jaké jste si navolili při vzniku práce. Pomocné funkce: #define PRESSED(%0) \ (((newkeys & (%0)) == (%0)) && ((oldkeys & (%0)) != (%0)))//DEFINICE PRESSED UPOZORNĚNÍ: Funkce při, kterých zadáváte jméno práce musí odpovídat jménu práce, které jste zadali při vytváření. V scriptfiles musíte mít složku Jobs do té se vám budou ukládat všechny práce. Soubory s prací se sami obnoví pokud je smažete. Tak jo to je zatím vše nemám moc času takže ostatní funkce přidám až ho mít budu Lets's go pawn! Autor: Isigar Licence: MIT Pastebin: http://pastebin.com/A1BQZYgW Verze: 4.0 Znění MIT Licence:
  14. DoKinek

    script Warp systém 3.0

    Takže není to tak dlho čo som vydal môj minulý warp systém a teraz vám prinášam verziu 3.0!!! Nové téma lebo do starého mi nešlo upravovať správu... Download : http://pawno.cz/file...30-warp-system/ Potrebujete ZCMD na zkompilovanie! Viac infa : http://pawno.cz/topi...03-warp-system/ Pre download na ZCMD píšte do SZ Môj prvý FS... Hodnoťte prosím x/10 a píšte čo chcete do novej verzii
  15. jenkings

    script Billboard System

    Zdravím. Nedávno jsem tu v sekci obrázky prezentoval svůj script na kupování billboardů. Z důvodu velkého zájmu jsem se rozhodl že vám sem dám i kód Download: http://pawno.cz/files/download/34-billboard/ Bilboard koupíte napsáním /billboard . Ten máte rezervovaný na 24 hodin. Po 24 hodinách si jej již může koupit kdokoliv, váš text na něm ale zůstane až do doby než ho koupí někdo jiný. Billboardy jsou rozmístěné po celém LS, případně si můžete udělat další svoje. Pro správnou funkčnost je třeba vytvořit ve scriptfiles složku "billboardy"
  16. jenkings

    script Billboard System

    Zdravím. Nedávno jsem tu v sekci obrázky prezentoval svůj script na kupování billboardů. Z důvodu velkého zájmu jsem se rozhodl že vám sem dám i kód Screeny: Script: Předpokládám že se stejně většina těch co to chce použije známou dvojici CTRL Cizí a CTRL Vlastní.Tak alespoň nechte autora scriptu
  17. Zdravím Chtěl bych vám ukázat screeny z mého billboard systému. Billboardy jsou umístěny v okolí skateparku Los Santos, Bilboard koupíte napsáním /billboard . Ten máte rezervovaný na 24 hodin. Po 24 hodinách si jej již může koupit kdokoliv, váš text na něm ale zůstane až do doby než ho koupí někdo jiný. Pokud by někdo chtěl .amx , pište SZ
×