Jump to content

Search the Community

Showing results for tags 'script'.



More search options

  • Search By Tags

    Oddělujte čárkami
  • Search By Author

Content Type


Fórum

  • Obecné
    • Pravidla a oznámení
    • Návrhy změn a hlášení chyb
    • Všechno možné
    • Hledám/nabízím
  • Hry a herní tematika
    • Diskuze
    • Grand Theft Auto V
    • Grand Theft Auto: San Andreas
    • Minecraft
    • Source hry
    • Jiné hry
    • Prezentace projektů
  • Software
    • Diskuze
    • Počítačové sítě
    • Operační systémy a aplikace
    • Programování
    • Grafika a webdesign
  • Hardware
    • Diskuze
    • Pomoc
    • Návody
    • Prezentace tvorby
  • Ostatní
    • Koš

Categories

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

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 537 results

  1. TedakCZ

    pomoc SAMP server

    Ahoj mám otázku nevíte kde muže bejt chyba když jdu na checkpoint tak me to potom spamuje Prave ses zaměstnal ale toto mam dane jen u zamestani nevi někdo jak se to mohlo dostat do chcekpointu ? jak mile znej odejdu tak to píše furt dokola dokud zas server ne resetuju
  2. CMD: /callpenis -zavolat penis auto /enterpenis -vstupit do auta /exitpenis -vystupit z auta DOWNLOAD: http://pawno.cz/files/file/385-penis-auto/
  3. Ahojte je tu niekto kdo by mi spravil HS ? kludne nech to je aj stiahnute z internetu len ja to nevim spravit dat do serveru Pište skype martinko9632
  4. Jelikož máme 3:34 hodin večer. Tak sem koukal na serial "Štiky " a prostě nuda. Zapl sem pawno a asi 20 minut sem přemýšlel co udělat ayb to bylo užitečné. Napadl mě AFK system, ale ten je easy udělat. Tak mě pak napadlo dokonce udělat GameMode ale to by bylo na dlouho a pak tu máme Radio System. Když sem ho udělal tak sem ho šel otestovat na server. Vše funguje. Ale nesnášel sem při práci hledání linku a kopírování a vkládání. Ale jak vidíte přežil sem to a proto to sem dávám. #include <a_samp> #define DIALOG_RADIO_SYSTEM 600 public OnPlayerConnect(playerid) { SendClientMessage(playerid, 0xFF0000, "{FF0000}[ Radio System ]{FFFFFF}Server používá {ff4d00}Rádio System verze {FFFF00}1.0 {FFFFFF}by {00FF00}_SaVe_"); return 1; } public OnPlayerCommandText(playerid, cmdtext[]) { if (strcmp("/radio", cmdtext, true, 10) == 0) { ShowPlayerDialog(playerid,DIALOG_RADIO_SYSTEM,DIALOG_STYLE_LIST,"- Rádio Stanice","- Evropa2 CZ\n- Europa2 SK\n- Impuls CZ\n- Fajn Rádio CZ\n- Fun Rádio SK\n- Rádio Expres SK\n- Frekvence 1 CZ\n{FF0000}Vypnout Rádio","Potvrdit","Závřít"); return 1; } return 0; } public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) { if(dialogid == DIALOG_RADIO_SYSTEM) { if(response) { if(listitem == 0) PlayAudioStreamForPlayer(playerid, "http://icecast3.play.cz/evropa2-128.mp3.m3u"); else if(listitem == 1) PlayAudioStreamForPlayer(playerid, "http://ice2.europa2.sk/fm-europa2sk-128"); else if(listitem == 2) PlayAudioStreamForPlayer(playerid, "http://icecast5.play.cz/impuls128.mp3.m3u"); else if(listitem == 3) PlayAudioStreamForPlayer(playerid, "http://ice.abradio.cz:8000/fajn128.mp3"); else if(listitem == 4) PlayAudioStreamForPlayer(playerid, "http://stream.funradio.sk:8000/fun128.mp3"); else if(listitem == 5) PlayAudioStreamForPlayer(playerid, "http://82.248.7.162:8000/128.mp3"); else if(listitem == 6) PlayAudioStreamForPlayer(playerid, "http://icecast4.play.cz:8000/frekvence1-128.mp3"); else StopAudioStreamForPlayer(playerid); PlayerPlaySound(playerid, 1057, 0, 0, 0); } } return 1; } Určitě se najde komentář proč sem nepoužil Include #include <zcmd> je to z důvodu, proto že sem začal používat tyto standartní příkazy přes public OnPlayerCommandText protože když sem naposledy použil ZCMD tak se ty příkazy bugovaly. A když sem to anhradil tímto publicem OnPlayerCommandText tak to bylo v pořádku.
  5. PawnPlus 0.8 Stažení | Dokumentace Představuji vám svůj nový plugin, který z Pawnu udělá moderní programovací jazyk, v němž bude radost programovat pro SA-MP. Přidáním nových konstruktů a "typů" rozšiřuje sílu jazyka, ale zachovává a dokonce i navyšuje jednoduchost programování. Shrnutí hlavních funkcí Řetězce Všichni to známe – řetězec je pole znaků s pevnou maximální délkou, kterou vždy musíme znát, pokud chceme s řetězci cokoliv provést. Odteď už ne! PawnPlus přináší dynamickou alokaci řetězců, které lze spojovat, rozdělovat, porovnávat či jinak upravovat. Možná si říkáte, k čemu je to dobré, když funkce SA-MP (např. SendClientMessage) vyžadují předání řetězce jako pole, ale počkejte – jde to! Tento plugin umožní přetvořit jakoukoliv funkci SA-MP (i jiných pluginů) na variantu, která místo polí bere nové řetězce a funguje naprosto stejně. Asynchronní programování Nebojte, žádná vlákna či race-condition, ale lehké asynchronní programování pomocí úloh, jehož vzorem je jazyk C#. Pomocí nového příkazu jazyka lze pozastavit průběh stávající funkce a odložit jeho vykonávání na jakoukoliv jinou dobu a mezitím spustit třeba něco jiného. Již žádné složité používání SetTimerEx, s tímto pluginem lze prostě ve funkci čekat, než nastane žádaná situace, a pak pokračovat. "Reflexe" Pawn sice není natolik pokročilý, aby umožňoval jakoukoliv reflexi, ale v tomto pluginu naleznete i pár funkcí, které umožní např. zavolat nativní funkci pomocí jejího jména jako řetězce, či navázání libovolné funkce na konkrétní událost serveru. Příklady Vytvoření, spojení a předání řetězců #include "PawnPlus.inc" //Původní SendClientMessageToAll(color, const message[]) upravíme tak, že všechny "const x[]" nahradíme "AmxString:x". native SendClientMessageToAllStr(color, AmxString:message) = SendClientMessageToAll; //Pomocná funkce vytvářející řetězec (jehož maximální velikost známe). stock String:GetPlayerNameStr(playerid) { new name[MAX_PLAYER_NAME]; GetPlayerName(playerid, name, sizeof(name)); return str_new(name); } public OnPlayerConnect(playerid) { //Řetězce jsou reprezentované proměnnými se značkou "String". Lze je spojovat pomocí operátoru +. Funkce str_val umí převést libovolnou hodnotu na řetězec. new String:name = GetPlayerNameStr(playerid); new String:msg = str_new("Hráč ")+name+str_new(" (")+str_val(playerid)+str_new(") se připojil na server."); //Provede se zavolání funkce SendClientMessageToAll, jen místo druhého parametru se vezme dynamický řetězec namísto pole znaků. SendClientMessageToAllStr(-1, msg); } Rozdělení a porovnání řetězce //Obdobným způsobem upravena funkce SendClientMessage. native SendClientMessageStr(playerid, color, AmxString:message) = SendClientMessage; public OnPlayerCommandText(playerid, cmdtext[]) { new String:cmd = str_new(cmdtext); new String:name = cmd; new String:args = STRING_NULL; //Cyklus nalezne v řetězci mezeru a rozdělí jej na jméno a argumenty. new len = str_len(cmd); for(new i = 0; i < len; i++) { if(str_getc(cmd, i) == ' ') { name = str_sub(cmd, 0, i); args = str_sub(cmd, i+1); break; } } //Porovnání jména příkazu. if(name == str_new("/test")) { SendClientMessageStr(playerid, -1, args); //Vypsání argumentů. return true; } return false; } str_find a str_split bude v pozdější verzi. Pozastavení vykonávání funkce stock Odpocet() { SendClientMessageToAll(-1, "3"); wait_ms(1000); //Neblokující čekání (žádný cyklus). SendClientMessageToAll(-1, "2"); wait_ms(1000); SendClientMessageToAll(-1, "1"); wait_ms(1000); SendClientMessageToAll(-1, "0"); } //Poznámka: Čekání zablokuje vykonávání kódu až do nejbližší (externě vyvolané) funkce public. Pokud chcete, aby vnější kód pokračoval rovnou, použije CallLocalFunction. Čekání na libovolnou událost //Předělání funkce MoveObject tak, aby vracela úlohu, na niž lze "čekat" (tedy dokončení hýbání s objektem). stock task:MoveObjectTask(objectid, Float:X, Float:Y, Float:Z, Float:Speed, Float:RotX = -1000.0, Float:RotY = -1000.0, Float:RotZ = -1000.0) { //Úloha představuje abstraktní proces, který lze dokončit a jehož výsledkem může být nějaká hodnota. //task_new vytvoří novou prázdnou (nedokončenou) úlohu. new task:t = task_new(); //Zaregistruje novou "obsluhu" pro callback OnObjectMoved. Veřejná funkce SingleFireObjectTask se zavolá pokaždé, //kdy by se měla zavolat funkce OnObjectMoved a navíc se jí předá několik argumentů navíc. //specifikátor "e" značí předání ID nově vytvořeného objektu (to funkce pawn_register_callback i vrací). pawn_register_callback(#OnObjectMoved, #SingleFireObjectTask, "edd", t, objectid); MoveObject(objectid, X, Y, Z, Speed, RotX, RotY, RotZ); return t; } stock ObjectTest() { new obj = CreateObject(19300, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0); print("Object created!"); //Proběhne čekání na úlohu; zbytek kódu se vykoná, až skončí. await MoveObjectTask(obj, 0.0, 0.0, 10.0, 5.0); print("Object moved!"); } //Nová obsluha události OnObjectMoved má navíc tři parametry (na začátku), jejichž hodnotu lze určit //v pawn_register_callback. Zbytek parametrů je z OnObjectMoved. forward SingleFireObjectTask(callback:id, task:task, obj, objectid); public SingleFireObjectTask(callback:id, task:task, obj, objectid) { if(obj == objectid) { //Pokud se pohnul objekt, na nějž je zaregistrovaná tato obsluha (uloženo v parametru obj), obsluha se odregistruje pawn_unregister_callback(id); //a úloha, která k ní náleží, je nastavena na hotovou (s nějakým výsledkem). task_set_result(task, objectid); } } Technické informace Jak to celé funguje? Technologie, na které celý tento plugin staví, se nazývá hookování. Hookování principiálně umožňuje přepsat kód nějaké funkce vlastním kódem, který se spustí místo něj. Díky patří Zeexovi za jeho knihovnu subhook. Tak například každá nativní funkce, která bere řetězce, používá funkci amx_GetAddr z API AMX. Tato funkce očekává adresu nějaké proměnné uvnitř stroje AMX a vrací ukazatel, který na ni ukazuje (to lze zapsat jako DAT+addr, kde DAT je ukazatel na počátek datové sekce stroje AMX, jenž lze získat z takto pojmenovaného registru). Tato funkce se musí zavolat vždy, když v Pawnu předáváme nějakou adresu (výstupní proměnné či pole) a na hookování je tedy ideální. Pokud AMX zjistí, že addr neukazuje dovnitř datové sekce, vrátí chybu, a pak přichází na scénu nový kód pluginu, který místo vrácení chyby interpretuje adresu jako (nějaký) identifikátor dynamicky alokovaného řetězce a ukazatel na jeho znaková data úspěšně vrátí. Tak se navenek každé funkci jeví předaný argument jako správný, ale když dojde na získání ukazatele, namísto dovnitř AMX ukazuje vrácené číslo na data pluginu. Zbývá maličkost, tedy zařídit, že addr bude pro dynamické řetězce ukazovat vždy do paměti, která je mimo AMX (sice to téměř jisté, ale nikoliv zaručené). Zde se uplatňuje vlastní tag AmxString, za nímž stojí funkce str_addr. Ta z ukazatele na řetězec spočítá relativní ofset vůči datové sekci stroje AMX, takže pro ukazatele mimo datovou sekci bude vytvořené číslo vždy chybné pro normální funkci amx_GetAddr. Funkce amx_Exec se zase volá vždy, když chce server spustit kód v AMX. AMX samotné podporuje předčasné ukončení vykonávání funkce pomocí vyvolání chyby a jedna taková chyba je i AMX_ERR_SLEEP (lze ji vykonat příkazem sleep v Pawnu), která značí, že se kód může obnovit. Jelikož hookuji každé volání amx_Exec, mohu to okamžitě zjistit a průběh vykonávání obnovit, aniž by o tom byl informován server. Zbývá vyřešit jediný problém – uložený obnovovací stav AMX je jen jeden a při jiném volání se zruší. Proto si plugin ukládá veškerou dynamickou paměť AMX (halda a zásobník) a registry k sobě, jakmile je výkon funkce pozastaven, aby nedošlo ke ztrátě. Při obnově je potom paměť AMX dočasně vrácena do původního stavu a spouštění původní funkce se obnoví. Funkce pawn_register_callback funguje pomocí hookování amx_Exec a amx_FindPublic, jež se zavolá vždy, když je třeba zjistit index veřejné funkce v AMX. Pokud je na název callbacku registrována nějaká obsluha, místo skutečného indexu se vrátí záporný index, který je následně identifikován v amx_Exec, která napřed vykoná příslušné obsluhy zjištěné z tohoto indexu. Řetězce a garbage collection Jak známo, každá dynamická alokace musí mít svoji dealokaci, jinak by začala unikat paměť, ale tady jsem si vesele používal str_new a žádnou dealokaci jsem neřešil, ačkoliv použitá paměť byla nová. Jak je to možné? Řetězce mají svůj vlastní garbage collector, který se stará o jejich mazání. Ve skutečnosti existují dva druhy řetězců – lokální (dočasné) a globální. Lokální řetězce jsou jejich nejčastější typ (String) a jejich existence je omezena po dobu výkonu nejvyššího callbacku. Je-li např. do skriptu vstoupeno callbackem OnPlayerConnected, všechny nové lokální řetězce existují po celý běh této veřejné funkce a jakmile ta skončí, smažou se. Pozor! – jakmile funkce skončí, použití jejích lokálních řetězců způsobí pád serveru. Řetězce se mažou jen po skončení nejvyšší veřejné funkce, takže pokud se ve skriptu skáče pomocí CallLocalFunction/CallRemoteFunction, vnitřní řetězce existují i po skončení vnitřních funkcí public. To ovšem neplatí pro SetTimer, jelikož vnitřní funkce se zavolá až po skončení vnější. Životnost lokálních řetězců není prodloužena ani pomocí asynchronních funkcí, neboť samotný callback je ukončen prvním čekáním. Proto existují globální řetězce, které nejsou automaticky mazány. Jejich použití je ale nebezpečné, neboť se musíte postarat o jejich smazání; musíte myslet na každé místo, kde by byl globální řetězec. Příklad: native print_s(AmxString:string) = print; new GlobalString:str; public OnFilterScriptInit() { str = str_new("Goodbye world!"); } public OnFilterScriptExit() { print_s(str); str_free(str); str = STRING_NULL; } Globální řetězce jsou označeny tagem GlobalString a převod na ně je automatický, pokud do takto značené proměnné přiřazujete. Lze toho docílit i voláním funkce str_to_global. Všechny funkce fungují stejně pro globální i lokální řetězce. Místo str_free můžete použít i funkci str_to_local, jež naopak vrátí řetězec do lokálního prostoru. To doporučuji použít v kombinaci s asynchronními funkcemi: public OnFilterScriptInit() { new String:str = str_new("Hello world!"); str_to_global(str); wait_ms(1000); str_to_local(str); print_s(str); } Mutabilita řetězců Řetězce jsou mutabilní, tedy měnitelné (až na jednu výjimku – STRING_NULL). To znamená, že některé funkce (například str_del) pouze upravují existující řetězec, takže pokud s ním pracují jiné funkce, dostanou jiná data. To lze vyřešit vytvořením nového řetězce (např. přes str_clone) nebo použitím funkcí, které samy o sobě tvoří nový řetězec (např. str_sub). STRING_NULL má speciální chování. Lze jej použít na místě normálního řetězce a všechna volání proběhnou úspěšně, ale jeho délka je vždy nulová. Funkce jako str_resize nebo str_set na něj tedy nemají žádný vliv. str_clone a jiné vytvářející funkce ale vždy udělá řetězec nový (a normální). Návratová hodnota asynchronní funkce Funkce obsahující čekání skončí vlastně předčasně a v takovém případě je nutno vrátit kontrolu serveru. Jelikož ale server očekává od funkce nějakou hodnotu hned, na případný příkaz return nemusí vůbec dojít. Od toho je tu funkce yield, jež navrátí hodnotu volajícímu kódu okamžitě: public OnFilterScriptInit() { new ret = CallLocalFunction(#Func, ""); printf("%d", ret); } forward Func(); public Func() { yield 12; wait_ms(1000); return 13; } Program vypíše 12 hned po spuštění. Návratovou hodnotu zbytku funkce (či z dalších volání yield) zatím nelze nijak odchytit, ale očekávám přidání něčeho na způsob coroutines v Lua (task_create z veřejné funkce a await, který lze zavolat vícekrát na takovou úlohu). Něco divného na mém kódu? await a yield jsou funkce, ale používám je jako příkazy. Pawn umožňuje vypustit závorky z takového volání, což vypadá rozhodně lépe. Také používám výraz typu #Func, což známe z maker, a je to totéž jako prosté "Func". Pokud řetězec je zároveň jméno funkce, líbí se mi toto použití pro odlišení.
  6. INC Just Event v1.0 Stejně jako include Just Property i tenhle má jen vypomáhat v kódování. Není to už zcela hotový script, který se jen vrazí na server! Porovnávání 5. Kompilované Just Gang Systém v0.1 má 239 kB 4. Kompilované Just AdminScript v1.0 má 108 kB3. Kompilované Just House Systém v1.0 s 3 domy má pouze 41 kB2. Kompilované Just Property v1.0 s 1 nemovkou má pouze 20 kB !!! 1. Kompilované Just Event v1.0 s použitím fcí a maker... naprosto neuvěřitelný 1 kB !!! (nky. 2) Ke stažení Jelikož to má sotva pár řádků, tak to jde vložit i klidně rovnou nahoru nebo někam do kódu a není ani nějak třeba to nahrávat přes nějaký soubor . Kód: Tohle je tak 30 % základu na vytvoření EventScript dle přání. Ukážeme si několik fcí a možností co jde dělat dál: Kategorizace eventů (typy eventů) #define GetEventType() Event /* 0 == Žádný 1 == Tunning Sráz 2 == Běh 3 == Závod */ if (!strcmp("/event", cmdtext)) { if (GetEventType() == 0) return SendClientMessage(playerid, -1, "Momentálně neprobíhá žádný event !"); if (GetEventType() == 1 && !IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, -1, "Nejsi ve vozidle !"); if ((GetEventType() == 2 || GetEventType() == 3) && IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, -1, "Nesmíš být ve vozidle !"); return 1; } Poslat hráče na event SendPlayerOnEvent(playerid, type) { if (IsPlayerOnEvent(playerid)) return SendClientMessage(playerid, -1, "Už jsi na eventu !"); if (type == 1) SetPlayerPos(playerid, ...); if (type == 2) SetPlayerPos(playerid, ...); OnEvent[playerid] = true; return 1; } // Sample code if (!strcmp("/event", cmdtext)) { SendPlayerOnEvent(playerid, GetEventType()); return 1; } Poslat hráče na event do vozidla // CreateEventVehicle(MAX_EVENT_VECHILES, modelid, pos1, pos2, pos3, barva1, barva2); // IsThisEventVehicle(MAX_EVENT_VECHILES); GetFreeEventVeh() { for (new i = 0; i < MAX_EVENT_VEHICLES; i++) { if (!IsThisEventVehicle(i)) return i; } return -1; } SendPlayerOnRace(playerid) { if (GetFreeEventVeh() == -1) return SendClientMessage(playerid, -1, "Už není prostor !"); if (IsPlayerOnEvent(playerid)) return SendClientMessage(playerid, -1, "Už jsi na eventu !"); new Float: pos[3]; GetPlayerPos(playerid, pos[0], pos[1], pos[2]); CreateEventVehicle(GetFreeEventVeh(), 415, pos[0], pos[1], pos[2], random(199), random(199)); OnEvent[playerid] = true; return 1; } // Sample code if (!strcmp("/race", cmdtext)) { SendPlayerOnRace(playerid); return 1; } Zrušit event a zničit všechny event vozidla EndEvent() { for (new i = 0; i < MAX_EVENT_VEHICLES; i++) if (!IsThisEventVehicle(i)) DestroyVehicle(EventVehicleID(i)); for (new a = 0; a < MAX_PLAYERS; i++) if (IsPlayerOnEvent(a)) OnEvent[a] = false; return 1; } Pojistka v případě odpojení public OnPlayerDisconnect(playerid, reason) { if (IsPlayerOnEvent(playerid)) { for (new i = 0; i < MAX_EVENT_VEHICLES; i++) { if (IsPlayerInEventVehicle(playerid, i)) DestroyVehicle(EventVehicleID(i)); } } return 1; } A jelikož je tohle trochu i návod, tak pro @HighPrint
  7. Všehoscript by Woody IMPROVED Aby mi už určití lidé dali konečně klid s tím otravováním, ať udělám update, tak tady je (už jsem ho dělal předtím, akorát jsem ho smazal, takže tohle je po 2)! Věci, co vás (ne)zajímají Původní script: Počet řádků: 652+- Velikox .pwn: 20 kB Velikost .amx: 29 kB Improved Počet řádků: 308 +- Velikost .pwn: 14 kB Velikost .amx: 14 kB Pár informací, co je změněné / vylepšené Proměnné na barvy textu a barvy nicku je ze dvou jedna jedna a ta samá proměnná, Použity jiné, rychlejší cykly (for -> while[Rychlejší, tím myslím v rychlosti to napsat, samozřejmě ]) Makra pro dialogid jsou ve výčtu hodnot a začínají od čísla #DIALOG_START_ID, Příkaz /mute a /unmute spojený do 1, Dialogid a listitemy přepnuty (switch), Proměnná VehicleNames[], už u každé buňky obsahuje rovnou znak pro další řádek '\n', takže stačí pouze cyklit fci strcat(), zrovna moc toho, co by tam šlo nějak upravit nebo vylepšit nebylo... Menší ochutnávka Předtím: Potom: Download [Všehoscript] || [Improved] A pojďte hejtovat... ps: zkoušel jsem to ve hře a vše je plně funkční... až na ty neony, ale nevím, možná to blbne u mě, možná tam jsou blbé objectid pss: A jako upřímně... zase tolik toho tam nebylo co upravit. Je to celkem dobrý kód...
  8. Just Property v1.0 INC #include <jproperty> Porovnávání Áááá, naše oblíbené porovnávání (alespoň pro mě ). 4. Kompilované Just Gang Systém v0.1 má 239 kB 3. Kompilované Just AdminScript v1.0 má 108 kB2. Kompilované Just House Systém v1.0 s 3 domy má pouze 41 kB 1. Kompilované Just Property v1.0 s 1 nemovkou má pouze 20 kB !!! (no to je neuvěřitelné Horste) Funkce Property(p_main: mode, name[] = "", bool: byPos=false, bool:byPlayer=false, player =-1, propertyid =-1, Float:x=0.0, Float:y=0.0, Float:z=0.0, pickupm = 1239); Popis Základní funkce pro práci. Může vytvořit, kopírovat, mazat nebo vynulovat. Parametry mode - Co se bude s nemovitostí dít. name[] - Jméno nemovitost (lze přidat i barvy). MAX_PROPERTY_NAME je 100. bool: byPos - Zda se nemovitost vytvoří na daných souřadnicích (x, y, z); bool: byPlayer - Zda se nemovitost vytvoří dle pozice hráče. player - ID hráče pro byPlayer propertyid - ID nemovitosti pro copy, delete a null. Float: x - pozice x pro byPos Float: y - pozice y pro byPos Float: z - pozice z pro byPos pickupm - Model pickupu. Defautlní je informace. Mode create - Vytvoří nemovitost a pickup. delete - Smaže údaje u nemovitost a zničí pickup. copy - Okopíruje jméno, majitele + pokud je vlastněn, od propertyid a vytvoří novou nemovitost. null - Vynuluje základní údaje (banku, profit, a cenu). Návratové hodnoty propertyid - při create nebo copy nemovitosti. 1 - Při delete nebo null nemovitosti. -1 - Něco se pokazilo. Příklad použití public OnFilterScriptInit() { new policiels, policiesf, policielv; policiels = Property(create, "{00FF00}Policie LS", .byPos = true, .x = 110.3, .y = 54.12, .z = 40.1); policiesf = Property(create, "{00FF00}Policie SF", .byPos = true, .x = 110.3, .y = 52.12, .z = 40.3); policielv = Property(create, "{00FF00}Policie LV", .byPos = true, .x = 111.3, .y = 52.11, .z = 41.3); return 1; } ---- SetPropertyData(p_data: datatype, propertyid, var); Popis Nastaví u nemovitosti údaje. Parametry datatype - Typ údajů. propertyid - ID nemovitosti. var - Hodnota. Datatype valid - To samé jako IsValidProperty(). profit - Profit bank price owned Návratová hodnota 1 - Vždycky 1. Příklad použití if (!strcmp("/buy", cmdtext)) { if (GetPlayerNearProperty(playerid) == -1) return 1; new property = GetPlayerNearProperty(playerid); SetPropertyData(owned, property, 1); SetPropertyOwner(property, GetPlayerNick(playerid)); return 1; } --- Další funkce IsValidProperty(propertyid); GetPropertyOwner(propertyid); SetPropertyOwner(propertyid,nick[]); GetPropertyName(propertyid); GetPlayerNearProperty(playerid); GetPropertyData(p_data: datatype, propertyid); Ukládání a načítání SavePropertyData(propertyid) { DOF2_SetInt(..., GetPropertyData(valid, propertyid)); DOF2_SetInt(..., GetPropertyData(profit, propertyid)); DOF2_SetInt(..., GetPropertyData(bank, propertyid)); DOF2_SetInt(..., GetPropertyData(price, propertyid)); DOF2_SetBool(..., GetPropertyData(owned, propertyid)); } LoadPropertyData(propertyid) { SetPropertyData(valid, propertyid, DOF2_GetInt(...)); SetPropertyData(profit, propertyid, DOF2_GetInt(...)); SetPropertyData(bank, propertyid, DOF2_GetInt(...)); SetPropertyData(price, propertyid, DOF2_GetInt(...)); SetPropertyData(owned, propertyid, DOF2_GetBool(...)); } In-game vytváření za pomocí příkazu CMD:addproperty(playerid, params[]) { Property(create, params, .byPlayer = true, .player = playerid); return CMD_SUCCESS; } DOWNLOAD https://pawno.cz/index.php?/files/file/96-inc-just-property/ https://pastebin.com/FmW0U7yP
  9. Zdravím, Dávám sem FilterScript který nese název AFK System. Jedná se o Script, který je hodně využívaný, a už sem zde na forum zahlédl pár topicu které se týkali tipu " Máte někdo AFK system " Rozhodl sem se že něco zkusím zpracovat a podařilo se. Příkazy /afk /back Nedostatky Jelikož sem si nevzpoměl na funkci která zmrazí hráče a nastaví nesmrtelnost, udělal sem to tak, že hráč, který zadá příkaz /afk tak mu nastaví životy na 10 milionu % Tuším že to ej blbost ale tak snad se bude líbit. #include <a_samp> #include <zcmd> #define SCMTA SendClientMessageToAll #define SCM SendClientMessage public OnPlayerConnect(playerid) { SCM(playerid,-1,"{FF0000} [ AFK SYSTEM ]{00ffff}Server používá {870000}AFK SYSTEM {00ffff}by {870000}Tommy"); return 1; } CMD:afk(playerid) { new Jmeno[MAX_PLAYER_NAME]; new string[128]; GetPlayerName(playerid,Jmeno,MAX_PLAYER_NAME); format(string, sizeof(string), "{00ffff}Hráč {870000}%s {00ffff}odešel nachvilku od PC.", Jmeno); SCM(playerid,-1,"{00ffff}Pro návrat do hry použij {870000}/back"); SCMTA(0xAA3333AA, string); TogglePlayerControllable(playerid, 0); SetPlayerHealth(playerid, 100000000); return 1; } CMD:back(playerid) { new Jmeno[MAX_PLAYER_NAME]; new string[128]; GetPlayerName(playerid,Jmeno,MAX_PLAYER_NAME); format(string, sizeof(string), "{00ffff}Hráč {870000}%s {00ffff}se vrátil k PC.", Jmeno); SCM(playerid,-1,"{00ffff}Přejeme opět příjemné hraní."); SCMTA(0xE0FFFFFF, string); TogglePlayerControllable(playerid, 1); SetPlayerHealth(playerid, 100); return 1; } zanechte autora scriptu. Děkuji.
  10. Zdarec všechny, Toto je můj první FilterScript Jedná se o warp system který sem dopawnil a dávám sen na Pawno.cz ================================================= Filter script obsahuje : warpy do Las Venturas / Los Santos / San Fierro Příkazy /warpy po napsání /warpy se vám ukáže dialog z warpama /lv /sf /ls ======================================================= [ !!! ] DÁM VÁM SEM I KOD WARP SYSTEMU ALE PROSIM VÁS ZANECHTE MNE JAKO AUTORA FS DĚKUJI MOC [ !!! ] Doufám že se vám můj první FilterScript bude líbit a zdar #include <a_samp> #include <zcmd> #define COLOR_BLUE 0xFF0000FF #define COLOR_RED 0xFFFF0000 public OnFilterScriptInit() { print("\n--------------------------------------"); print(" Warp system by _niCo_"); print("--------------------------------------\n"); return 1; } public OnPlayerConnect(playerid) { SendClientMessage(playerid,COLOR_BLUE," {FF0000}[ WARPS SYSTEM ] {0000FF}Server používá {FF0000}Warps System {0000FF}by {FF0000}_niCo_ {0000FF}/ {FF0000}v1.0"); return 1; } public OnPlayerCommandText(playerid, cmdtext[]) { if (strcmp("/warpy", cmdtext, true, 10) == 0) { ShowPlayerDialog(playerid,1,DIALOG_STYLE_MSGBOX,"Warp System by _niCo_","/ls\n/sf\n/lv\n{00FF00}ZA KAŽDÝ WARP SE TI STRHNE 100 $","{FF0000}Závřít",""); return 1; } if (strcmp("/ls", cmdtext, true, 10) == 0) { GivePlayerMoney(playerid,-100); SetPlayerPos(playerid,1715.1248, -1879.8043, 13.5665); ShowPlayerDialog(playerid,1,DIALOG_STYLE_MSGBOX,"Las Venturas","{0000FF}Nyní se nacházíš v {FF0000}Los Santos","{FF0000}Závřít",""); return 1; } if (strcmp("/sf", cmdtext, true, 10) == 0) { GivePlayerMoney(playerid,-100); SetPlayerPos(playerid,-1979.5410, 882.8173, 45.2031); ShowPlayerDialog(playerid,1,DIALOG_STYLE_MSGBOX,"Las Venturas","{0000FF}Nyní se nacházíš v {FF0000}San Fierro","{FF0000}Závřít",""); return 1; } if (strcmp("/lv", cmdtext, true, 10) == 0) { GivePlayerMoney(playerid,-100); SetPlayerPos(playerid,2137.2100, 1468.2996, 10.8203); ShowPlayerDialog(playerid,1,DIALOG_STYLE_MSGBOX,"Las Venturas","{0000FF}Nyní se nacházíš v {FF0000}Las Venturas","{FF0000}Závřít",""); return 1; } return 0; } Warpy.amx
  11. SCRIPT ZCELA PŘEPSÁN JUST ADMIN SCRIPT 1.1 pro 0.3.7 UPDATE MÍSTO ADMIN LEVELU JMÉNO OPRÁVNĚNÍ ROZSÁHLÝ SEZNAM ADMINISTRÁTORSKÝCH PŘÍKAZŮ POUŽITÍ JEDNOTLIVÝCH PŘÍKAZŮ DLE OPRÁVNĚNÍ UDĚLOVÁNÍ TITULŮ A TAGŮ HRÁČŮM VE HŘE ZOBRAZENÍ STATISTIK HRÁČE ZOBRAZENÍ JMÉNA BAREV A JEJICH HEX INGAME SEZNAM VŠECH MODELŮ VOZIDEL ROZSÁHLEJŠÍ SEZNAM A ÚDAJE ONLINE HRÁČŮ MOŽNOST UPRAVIT ÚDAJE OFFLINE HRÁČE POROVNÁNÍ JustAdminSystem v0.3 VS JustAdminScript 1.0 Kompilovaný JustAdminSystem v0.3 Počet příkazů: 68 (+13 VIP) Počet řádků v .pwn: 1816 Velikost .amx: 357 kB Kompilovaný JustAdminScript v1.0 Počet příkazů: 77 Počet řádků v .pwn: 1481 Velikost .amx: 108 kB INFORMACE O JAS Script obsahuje 8 oprávnění, Nelze obejít zmražení, zatčení ani umlčení. Všechno se hráči po návratu serveru či po respawnu opět nastaví, Soubory hráčů se ukládají do scriptfiles/AS/nick.sav, Při nastavení čehokoliv co obsahuje barvy (nick, titul, tag), se místo hex píše jméno barvy (black, red, yellow), Každý administrátor může u časových trestů nastavit 60 vteřin krát jeho admin level, Zabanovaní hráči se na server mohou vrátit ale opět budou vyhozeni se zprávou kdo je banoval a za co, V minulé verzi byly 4 fce na udělení a odstranění titulu. Teď jsou 2. Po příchodu na server se napíše kolik hráčů s maxima je připojeno na serveru, a samozřejmě credits autora. Na všechny časové tresty online (freeze, mute a jail), je pouze jeden timer, který je nastavený po 1 vteřině, místo původních 3. Všechny příkazy obsahuje tuny ošetření a pojistek, aby například nešlo hráči, co neni online cokoliv dát. Administrátorský /port obsahuje několik variant (pěšky, s vozidly, s určitým vozidlem). Při udělení zbraně, či spawnu vozidla se napíše jméno namísto ID. Administrátor s jakýmkoliv levelem, nemůže cokoliv udělovat administrátorům s vyšším levelem(např. Pomocník nemůže nastavit život Moderátorům). Lze upravit údaje i offline hráčům. A mnohem více... UPRAVENÍ DAT OFFLINE HRÁČE Bez problémů lze upravit jakékoliv data od určení zda má titul, po barvu až po důvod banu. Ale má to několik podmínek: 1. Při udělení Ano/Ne údajů se MUSÍ napsat pouze číslo 0 pro Ne, a 1 pro Ano. 2. Při udělení barev (titulu, tagu), se MUSÍ napsat 6místný hex kód (FFFFFF, FF0000, 00FF00). 3. Při udělení trestů (Zmražení, uvěznění, umlčení), při udělení/úpravě času se MUSÍ přidat i Ano/Ne u daného trestu. 4. Při odebrání titulu/tagu je třeba upravit i ano/ne. 5. Při udělení stringu (jméno titulu, jméno tagu) se musí napsat alespoň 3 znaky(např. abc nebo univerzální je none). MAKRA A FUNKCE //ID startovního id, od kterého se budou odvýjet další ID dialogů ve výčtu hodnot: #define START_DIALOG_ID (1111) //Délka souboru při ukládání hráčů: #define MAX_FILE_PATH_LEN (30) //Seznam maker oprávnění: #define LEVEL_PLAYER (0) // Hráč #define LEVEL_TESTADMIN (1) // Zkušební #define LEVEL_HELPER (2) // Pomocník #define LEVEL_MOD (3) // Moderátor #define LEVEL_ADMIN (4) // Administrátor #define LEVEL_MAINADMIN (5) // Správce #define LEVEL_DEVELOPER (6) // Vývojář #define LEVEL_OWNER (7) // Majitel // Počet Administrátorských oprávnění od LEVEL_PLAYER po LEVEL_OWNER: #define MAX_ADMIN_LEVEL (8) // Počet vložených barev: #define MAX_COLORS (12) // Nejdelší jméno barvy (orange): #define MAX_COLOR_NAME_LEN (6) // Nejdelší jméno oprávnění, včetně barev ({37DBE1}Administrátor): #define MAX_ADMIN_RANK_LEN (21) // Největší možná délka titulu: #define MAX_TITLE_LEN (25) // Největší možná délka TAGu: #define MAX_TAG_LEN (15) // Počet povolených vozidel pro spawnutí v /car #define MAX_ENABLED_AVEHICLES (10) // Počet možných vteřin, které může LEVEL_TESTADMIN udělit u časových trestů: #define TIME_MAX_PUN_ALLOWED (60) // Minimální velikost pingu povolená proti /pingkick: #define MAX_ALLOWED_PING (300) // ID všechn trestů pro fci: #define PUNISH_ID_FREEZE (1) #define PUNISH_ID_MUTE (2) #define PUNISH_ID_JAIL (3) // Basic: GetVehicleModelName(playerid); GetPlayerAdminLevel(playerid); HasPlayerTitle(playerid); GetPlayerTitle(playerid); GetPlayerTitleColor(playerid); HasPlayerTag(playerid); GetPlayerTag(playerid); GetPlayerTagColor(playerid); SetPlayerTitleColor(playerid, color); SetPlayerTagColor(playerid, color); IsPlayerOnPort(playerid); IsPlayerBanned(playerid); GetPlayerBanReason(playerid); IsPlayerFreeze(playerid); IsPlayerJail(playerid); IsPlayerMute(playerid); GetPlayerFreezeTime(playerid); GetPlayerJailTime(playerid); GetPlayerMuteTime(playerid); SetPlayerFreezeTime(playerid, time); SetPlayerJailTime(playerid, time); SetPlayerMuteTime(playerid, time); SendErrorMessage(playerid, msg[]); GetAdminLevelName(playerid); GetAdminLevelColor(playerid); SetPlayerAdminLevel(playerid, level); IsPortEnabled(); HasPortEnabledVehicles(); GetPortInterior(); GetPortVW(); GetPortX(); GetPortY(); GetPortZ(); GetPortA(); GetPortSpecifModel(); // Zajímavější: ChangeTitleStatus(playerid, sTitle[], hColor, bool:bTakeGive); ChangeTagStatus(playerid, sTag[], hColor, bool:bTakeGive); SavePlayerData(playerid); LoadPlayerData(playerid); PunishPlayer(playerid, pun_id, bool: pun, time = 0); GetPlayerTagAndTitle (playerid, text[]); GetCountConnectedPlayers(); ShowHowUseCommand (playerid, sCommand[], sParams[]); SetServerPort(bool: status, Float: x, Float: y, Float: z, Float: a, bool: vehs = false, model = 0); SendErrorMessage() Odešle se červená zpráva. playerid - komu msg[] - text Příklad: SendErrorMessage(playerid, "[ ! ] Nemáš dostatek peněz !"); ChangeTitleStatus() a ChangeTagStatus() Nastaví titul (za nickem) a tag (před nickem) hráči ve hře. playerid - komu se nastaví sTitle[] / sTag[] - Co se mu nastaví, bool: bTakeGive - true pro nastavení, false pro odebrání Příklad: commmand<LEVEL_PLAYER>(givevip, cmdid, playerid, params[]) { ChangeTitleStatus(playerid, "Premium", 0xFFFF0000, true); ChangeTagStatus(playerid, "VIP", 0xFFA50000, true); return CMD_SUCCESS; } PunishPlayer() Udělí nebo odebere trest(mute, freeze, jail) hráči ve hře. playerid, - komu se nastaví, pun_id - ID trestu jako je PUNISH_ID_FREEZE (1), PUNISH_ID_MUTE (2) nebo PUNISH_ID_JAIL (3), pun - true pro nastavení, false pro odebrání, time - čas ve vteřinách Příklad: command<LEVEL_PLAYER>(muteme, cmdid, playerid, params[]) { PunishPlayer(playerid, PUNISH_ID_MUTE, true, 1000); SendClientMessage(playerid, -1, "Úspešně jsi se umlčel na 1000 vteřin !"); return CMD_SUCCESS; } GetCountConnectedPlayers() Zjistí počet online hráčů na serveru. Příklad: command<LEVEL_PLAYER>(howmany, cmdid, playerid, params[]) { new str[35 + 1]; format(str, sizeof str, "Na serveru je momentálně %i hráčů", GetCountConnectedPlayers()); SendClientMessage(playerid, -1, str); return CMD_SUCCESS; } Hráč /acmds - Seznam všechn příkazů /admins - Seznam online administrátorů /port - Warp na administrátorský port Zkušební /colors - Seznam jmén barev a jejich hex /models - Seznam modelů a jejich modelid /gmtext - Gamemode text na server /gmtext2 - Druhá varianta gamemode textu /para - Dát si padák /jetpack - Dát si jetpack /var - Varovat hráče (neomezené, nevyhodí hráče) /spam - Zaspamuje chat slovem SPAM /cc - Promaže celý chat /flip - Obrátí vozidlo /say - Napíše do chatu, co napsal administrátor /day - Nastaví den na serveru /night - Nastaví noc na serveru /tempfreeze - Dočasně zmrazí /tempjail - Dočasně uvězní /tempmute - Dočasně umlčení /unfreeze - Odmrazí hráče /unjail - Propustí hráče /remove - Vyhodí hráče z vozidla /unmute - Odmlčí hráče /admincar - Spawnutí administrátorského vozidla /dadmincar - Zničení administrátorského vozidla /goto - Port k hráči /get - Port hráče k sobě /setport - Nastavení administrátorského portu /remport - Vypnutí administrátorského portu Pomocník /jail - Uvěznit hráče /mute - Umlčet hráče /freeze - Zmrazit hráče /nickcolor - Nastavení barvy nicku hráče /repair - Opraví hráči vozidlo /getstats - Zobrazení statistik hráče /disarm - Odzbrojí hráče /time - Nastavení času na serveru /weather - Nastavení počasí na serveru /sun - Nastavit slunečno na serveru /rain - Nastavit déšť na serveru /pingkick - Vykopnout hráče jestliže má moc velký ping (MAX_ALLOWED_PING) /skin - Nastavení skinu hráči /admcol - Nastavení barvy zprávy /admmess - Napsání zprávy na serveru Moderátor /kick - Vyhodit hráče ze serveru /ban - Zabanovat hráče na serveru /gm - Darovat hráči peníze (max 10,000,000$) /gw - Darovat hráči zbraň a munici /hide - Skrýt/odkrýt nick na mapě /car - Spawnutí vozidel na serveru /dcars - Zničeni vozidel na serveru /settag - Nastavení TAGu u hráče /removetag - Odebrání TAGu u hráče /kill - Zabít hráče /world - Poslat hráče do jiného světa /back - Poslat hráče zpět z jiného světa /wl - Nastavit hráči wanted level /respawn - Respawnout hráče Administrátor /getall - Portnout všechny hráče k sobě /rmoney - Resetovat hráči všechny peníze /takemoney - Odebrat určitý obnos hráči /hp - Nastavit hráči život /ar - Nastavit hráči vestu /destroy - Zničit hráči vozidlo /vhp - Nastavit hráči život vozidla /mypos - Zjistit souřadnice a úhel pohledu hráče /pos - Pornout se na dané pozice /plist - Zobrazení statistik všechn hráčů Správce /god - Nastavení nesmrtelnosti (i po spawnu) /godoff - Zrušit nesmrtelnost /resetplayer - Resetovat všechny údaje hráče /setdata - Nastavit data offline hráči Developer Majitel /setmeowner - Nastavit si majitele /setalevel - Nastavit AdminLevel hráči VLOŽENÍ jascript1.amx NA SERVER 1. Vložit jascript1.amx do filterscripts 2. Napsat v server.cfg do filterscript řádku jascript1 3. Vytvořit ve scriptfiles složku AS 4. Připojit se na server a zadat /setmeowner (potřeba RCON) 5 Hotovo DOWNLOAD
  12. Ahoj všichni! Dnes jsem dokončil svuj FS a to konkrétně jezdicí Motd. - Motd se nachází uplně dole na liště. - Nápis jede z prava do leva. - Text vyjíždí po 1minutě. Kdyby jste měli jakýkoliv problém tak mě prosím kontaktuje,díky. Příkazy /-/-/-/-/Příkazy/-/-/-/-/- /-/-/-/- /setmotd [nastavit id] [Nový MOTD]/-/-/-/-/ /-/-/-/- /setmotd [set ID] [New MOTD]-/-/-/-/-/ MOTD.amx MOTD.pwn
  13. Just Firm System NA PŘÁNÍ Ano, já vím, že se sem mají zveřejňovat hotové scripty se zdrojovým kódem, ale rád bych to v tenhle moment pojal jiným způsobem a to tvořit system na firmy podle vašich přání a nápadů. Za 1. jednak to více pozvedne výsledné kladné hodnocení, když FS obsahuje přesně to, co si uživatele přejí a za 2. jednak i já budu vědět co tam vůbec přidat. Takže pište vaše nápady, mám jen několik podmínek: 1. Co nejvíce - Čím více informací, tím lépe. Může to být podrobný popis hlavní dialogu firmy, způsoby jak bude vedena finanční stránka nebo i radu po stránce kódové. 2. Pouze inspirace - Nechci kopírovat ani cizí gm ani cizí fs. Jestliže někdo chce poukázat na jeden nápad, který by se do FS hodil a odkázal by na ten script, budiž ale ať nepřijde s nápadem, že hodí do příspěvku odkaz a "TOHLE UDĚLEJ!" 3. Nějaká hranice - Hodně nápadů, to klidně ale ať z toho zase není na půl vytvoření GM. 4. Proveditelné - Ať jsou vaše nápady jakkoliv kreativní, ať jsou hlavně vůbec v lidských i PAWN (-ských) silách. 5. Bez srandy - Já vím, že to některé až láká k nějaké té sarkastické poznámce nebo ironii, ale ať se toho zdrží. Chci, aby se to bralo vážně. Následně si vezmu několik vašich nápadů a pokusím se je zrealizovat. No. Tak do toho a uvidíme jak se to uchytí
  14. JUST HOUSE SYSTEM v1.0 Na přání neustále neúnavně otravného uživatele @Woody OVLÁDÁNÍ PRO MAJITELE DOMU OVLÁDÁNÍ PRO UŽIVATELE CO NEVLASTNÍ DŮM VKLÁDÁNÍ A VYBÍRÁNÍ PENĚZ DOMU VKLÁDÁNÍ ZBRANÍ DO DOMU VYBÍRÁNÍ VŠECH ZBRANÍ Z DOMU VÝPIS UDÁLOSTÍ DO CHATU KOUPĚ NOVÝCH VOZIDEL DO GARÁŽE DOMU INFORMACE O JHSYSTEM Každý hráč může mít pouze 1 dům. Každý dům musí mít alespoň jeden slot pro vozidlo, a může mít pouze ten jeden. Vozidlo se dá zaparkovat do garáže, a jen pouze jedno. Vozidlo lze vložit do domu i předtím, než se vůbec koupí. Do domu lze vložit pouze zbraně určitého typu (chladné zbraně, pistol...) a jen pouze zbraň, která se vložila naposledy, to znamená, že jakmile hráč vloží nůž, může pak už jen vkládat nože. Do domu lze vejít i když ho hráč nevlastní. Dům může mít několik interiérů od nejhorší (nejmenší) po nejlepší (největší). Do domu nelze vejít, když je zamčený. Do vozidel, která patří určitého domu může nastoupit jen hráč, který má stejné jméno jako majitel domu. SEZNAM FUNKCÍ A MAKER #define MAX_HOUSES (300) Maximální počet domů. #define DIALOG_START_ID_LIST (4291) ID dialogu od kterého začne seznam id dialogů(4291, 4292, 4293...). #define HOUSE_INTERIOR_RATE1 (5) #define HOUSE_INTERIOR_RATE2 (4) #define HOUSE_INTERIOR_RATE3 (3) #define HOUSE_INTERIOR_RATE4 (2) #define HOUSE_INTERIOR_RANK5 (1) #define HOUSE_INTERIOR_RANK6 (0) Hodnocení interiéru v domech známka ve škole. GetHouseFreeID(); Vrací id volného nepoužitého domu. Jinak vrátí -1 když nenajde. AddNewHouse(Float: x, Float: y, Float: z, price, inter, owner[] = "City", bool: buy = false); Vytvoří nový dům. Parametry: Float: x, Float: y, Float: z - Pozice domu a pickupu, který se vytvoří. price - Cena za který se dům koupí inter - Jaký interiér dům obsahuje(lze použít HOUSE_INTERIOR_RANK) owner[] - Majitel domu. bool: buy - V případě true je dům koupený a false není. AddHouseVehicleSlot(houseid, Float: x, Float: y, Float: z, Float: a); Přidá k danému domu slot pro vozidlo. Parametry: Float: x, Float: y, Float: z, Float: a - Pozice a rotace vozidla, kde se u domu pak bude vytvářet (spawnovat) auto. CreateHouseVehicle (houseid, modelid); Spawne do slotu u daného domu (houseid) vozidlo. Další funkce: IsHouseOwner(houseid, nick[]); IsHouseExist(houseid); GetHouseOwner(houseid); GetHouseIDByPlayer(playerid); EnterIntoHouse(playerid); LeaveFromHouse(playerid); SaveHouseData(); LoadHouseData(); BuyThisHouse(playerid, houseid); SellThisHouse(playerid, houseid); LockHouse(houseid); UnlockHouse(houseid); GetHouseInterior(houseid); IsHouseOwned(houseid); GetHouseNumber(houseid); GetHousePrice(houseid); GetHouseX(houseid); GetHouseY(houseid); GetHouseZ(houseid); GetHouseVehSlotX(houseid); GetHouseVehSlotY(houseid); GetHouseVehSlotZ(houseid); GetHouseVehSlotA(houseid); NÁVOD K POUŽITÍ Celý JHS je celkem samostatný, takže stačí použít minimálně 3 funkce a je hotovo. Vše bude v pořádku v momentě kdy vám to nevyhodí žádné varování, že nebyla použita nějaká z fcí! Oba public jak OnFilterScriptInit() tak OnFilterScritExit() vložit například ke zbytku publicu nebo úplně na konec FS. Co je potřeba použít: AddNewHouse() - Přidá nový barák, není potřeba ani přidávat majitele či zda je koupen. AddHouseVehicleSlot() - Funkce kam se nakonec spawne u daného domu auto po jeho zakoupení. SaveHouseData() - Tato fce je nutno použít 2x a to po vpisu všech údajů o domě a vozidle, a při vypnutí fs, jelikož přepíše případné změněné údaje(majitel domu). public OnFilterScriptInit() { AddNewHouse (1446.8379, 1959.3004, 11.2146, 1500000, HOUSE_INTERIOR_RATE1, "test1", false); AddHouseVehicleSlot(0, 1442.9637, 1959.9764, 10.9029, 0.0); AddNewHouse (...); AddHouseVehicleSlot(1, ...); AddNewHouse (...); AddHouseVehicleSlot(2, ...); AddNewHouse (...); AddHouseVehicleSlot(3, ...); SaveHouseData(); // <---- return 1; } public OnFilterScriptExit() { SaveHouseData(); // <--- return 1; } Příkazy: Základní: /dum otevře u pickupu menu domu Další: /houseleft - opustí interiér domu RCON: /housedebug - zobrazí všechny příkazy Download:
  15. Zdrávím mame tu prevas novej script by Honles&janik22 su tam specialne vozidla ktore si možu spawnuť hrači na serveru !cez prikazom /scar1-7 a to je všetko a link dám Download:http://www.mediafire.com/file/auk95czefbuwd9h/scar.rar/file keď buďeťe mať bugy napšte mi do PM
  16. Malé include na pomoc s robením variadických funkcíí, čo som dnes spravil, keď som sa hral s assembly. Použitie: Vyžaduje Zeexov compiler 3.10.9+! stock SendClientMessagef(playerid, color, const msg[], ...) { new str[145]; ReusableVarargCallerNative(va_func(format), 3, va_string(str), sizeof(str), va_string(msg)); return SendClientMessage(playerid, color, str); } "format" je native, ktorý chceme zavolať. va_func() je makro, ktoré premení native na premennú, aby sa dalo dať do funkcie. 3 je počet normálnych argumentov vo funkcii. Takže format dostane až argument 4 a viac. va_string je pomocná funkcia, ktorá sa použije na pridanie stringu, ktorý nejde do "...". Takže vo format(str[], size, const fmt[], ...); sa to použije len na str a fmt. Pri volaní SendClientMessagef sa to nepoužíva. Táto funkcia zavolá format takto: format(str, sizeof(str), msg, ...); Podobná funkcia ReusableVarargCaller volá PAWN funkcie (nie native). Inak funguje úplne rovnako. h_va.inc
  17. JUST GANG SYSTEM v0.1BETA Nejobsáhlejší a nejmodernější gangsystem... JEDNODUCHÝ A PŘEHLEDNÝ EDITOR OBSÁHLÝ SEZNAM MOŽNOSTÍ PRO HRÁČE V GANGU PŘEHLEDNÉ STATISTIKY HRÁČE V GANGU PŘEHLEDNÝ A JEDNODUCHÝ OBCHOD S VOZIDLY DO GANGU PŘEHLEDNÝ SEZNAM VOZIDEL GANGU UKÁZKA JAK ONLINE ČLENŮ GANGU TAK I OFFLINE ČLENŮ GANGU UŽITEČNÝ A PŘEHLEDNÝ SEZNAM VŠECH GANGŮ NA SERVERU MOŽNOST ZMĚNIT RANK I S HEX KÓDY PŘEHLEDNÝ SEZNAM ZBRANÍ GANGU STEJNĚ JAKO JEJICH KOUPĚ A ZMĚNA MOŽNOST ZMĚNIT GANG SÍDLO VYPISOVÁNÍ TAG GANGU DO CHATU NĚKOLIK INFORMACÍ O SCRIPTU Gangy se přidávají in-game pomocí editoru. GS podporuje i možnost vytvářet gangy pro více administrátorů. Jakmile někdo otevře editor, zjistí volné gangid a pro dalšího administrátora zjistí jiné volné id a zůstává "využívané", dokud administrátor gang nevytvoří a nebo neodejde. Po vytvoření gangu v editoru se ukládá a vytváří(načítá) i po zapnutí serveru. V editoru musí administrátor přidat jméno gangu, tag, majitele a pozici. Cena, kasa a respekt lze mít na 0. Pozice v editoru se přidává způsobem, že zjistí aktuální pozici admina. Lze přidat i defaultního majitele aka Město, zapomocí mínusu. Ale pozor: Lze přidat majitele gangu(jméno hráče), ale zároveň dát gang na prodej! Gangy se ukládájí a načítájí zapomocí jejich id, nikoliv jejich jmén. Editor se u daného hráče uchovává dokud gang nevytvoří nebo neopustí server. Většina titulů v dialogu začíná nebo obsahuje jméno gangu, u kterého hráč momentálně je. Nelze přidat gang s jménem, který už existuje. Stejně jako u majitele, jestliže vlastní už nějaký gang. GS obsahuje 4 hodnoty pro každého člena a to Nováček, Člen, Zástupce a Vůdce. Do jednoho gangu lze pozvat pouze 1 hráče, dokud pozvání nepřijme nebo neodejde. Vůdce/Zástupce může upravovat údaje i offline členovi. Maximální možný počet peněz, které lze mít v gangu je 999 999 999$. V případě přesáhnutí se opět vrátí na totu hodnotu. Maximální možný počet respektu, úmrtí a zabití je 9999. V případě přesáhnutí se opět vrátí na tuto hodnotu. Do každého gangu lze zakoupit maximálně 10 vozidel. Každé vozidlo se přidává po zadání příkazu /gvehicle tak, že zjistí jeho pozici po zadání /gva. Jestliže vůdce/zástupce během přidávání vozidlo opustí, bude zničeno. Vozidlo lze pouze začit přidávat na pickupu gangu, a hráč má omezenou pozici na přidání. Lze zakoupit do gangu pouze určitě modely vozidel. GS obsahuje 5 základných kategorií aka slotů pro zbraně, a to Chladné zbraně, pistole, brokovnice, samopaly a těžké zbraně. Po založení gangu, gang nemá žádné zbraně. V obchodě se zakupují zbraně cenou za náboj. Maximální možný počet počet nábojů u každé zbraně v gangu je 99999. Každý člen gangu po spawnu obdrží učité zbraně a náboje. Pokud dojdou, člen dostane poslední zásoby. Respekt lze získat, ale i ztratit ze zabíjení s jinými členy gangů. Gang lze opustit jedině vyhozením z gangu. Až na vůdce. Nelze změnit výplatu Nováčkům a Vůdci. Takže jí vůdce ani nemůže vybrat. a mnohem více... OHLEDNĚ UKLÁDÁNÍ ÚDAJŮ scriptfiles/Gangy/ {id_gangu}.dat - veškeré informace ohledně gangu. {id_gangu}Members.dat- seznam všech členů v daném gangu. Užitečné kvůli jménům offline hráčů. scriptfiles/Gangy/Hraci/{jméno_hráče}.dat - standartní údaje hráče(jestli je v gangu, id gangu, údaje a tak dále). scriptfiles/Gangy/Zbrane/{id_gangu}.dat - seznam zbraní a jejich počet nábojů. scriptfiles/Gangy/Vozidla/{id_gangu}_{slot_id}.dat - informace o daném vozidle(pozice, model, gang a tak dále). SEZNAM PŘÍKAZŮ /gmenu Menu pro rcon administrátora. Zahrnuje vytvoření gangu a smazání gangu /gang Základní příkaz pro všechny hráče a členy gangů. Otevře dialog s možnostmi u daného pickupu gangu. Hráč samozřejmě musí být poblíž. /gangs Seznam gangů pro rcon administrátora. /ginvite Pozve hráče do vašeho gangu. /gyes Přijmout pozvání do gangu. /gno Odmítnout pozvání do gangu. /grleft Opustit gang sídlo. DALŠÍ INFORMACE A MOŽNOSTI ÚPRAVA GANG ÚDAJŮ Ukázka uložených údajů: 1 0 0 0 0 0 3000 5766000 3 3000 1000 0 0 2206.63 1231.45 10.82 GuS Scydo GangUSilnice 1 - Existence gangu. 0 - Gang id. 0 - Zda je gang na prodej. 0 - Cena gangu při prodeji. 0 - Počet zabití v gangu. 0 - Počet úmrtí v gangu. 3000 - Respekt gangu. 5766000 - Kasa gangu. 3 - Počet členů. 3000 - Výplata člena. 1000 - Výplata zástupce. 0 - ID interióru. 0 - Zda je majitelem Město. 2206.63 - X pozice pickupu. 1231.45 - Y pozice pickupu. 10.82 - Z pozice pickupu. GuS - Tag gangu. Scydo - Jméno vůdce gangu. GangUSilnice - Jméno gangu. ÚPRAVA ÚDAJŮ DANÉHO HRÁČE Ukázka uložených údajů: 1 0 3 350661 44 11 102 0 1 0 0 {FFA500}Střelec 1 - Pokud je hráč v gangu. 0 - ID gangu. 3 - Oprávnění člena. 350661 - Přispěl do gangu. 44 - Počet zabití. 11 - Počet úmrtí. 102 - Získaný respekt. 0 - Zda si může vybrat výplatu. 1 - Zda má člen vyp/zapnutý spawn u gangu. 0 - Zda má člen vyp/zapnuté zprávy gangu. 0 - Zda je hráč v interiéru. {FFA500}Střelec - Rank. ÚPRAVA ÚDAJŮ GANG VOZIDEL Ukázka uložených údajů: 0 1 432 0 0 2194.994 1234.298 10.703 266.3910 - ID gangu. 1 - Slot vozidla. 432 - Model vozidla. 0 - 1. ID barvy. 0 - 2. ID barvy. 2194.994 - X pozice pickupu. 1234.298 - Y pozice pickupu. 10.703 - Z pozice pickupu. 266.391 - A pozice pickupu. LZE PŘIDAT I VOJENSKÝ GANG Stačí, když přidáte vozidla a při úprave vozidel přepíšete všechny modely na vojenská vozidla. JAK ZMĚNIT VŮDCE GANGU 1. Změnit vůdce v hl. soubouru - První je potřeba změnit jméno vůdce souboru {id_gangid}.dat 2. Změnit jméno v seznamu členů - V souboru {id_gangu}Members.dat změnit první jméno. 3. Změnit údaji hráči - A nakonec změnit údaje v souboru hráče. DOWNLOAD INCLUDE i-zcmd http://forum.sa-mp.com/showthread.php?t=576114 A to je všechno. jgsystem https://pawno.cz/files/file/67-just-gangsystem/ ZÁVĚR Zatím jsem pracoval stylem "hlavně, že to funguje", takže nechť konečně začne hromadná optimalizace!
  18. zdravím . tohle je můj první filescript na tomhle fóře . snad se bude líbit tachometr (1).pwn //EDIT by HP:
  19. Hoši Ptám se Máte script na vaření drog pěstování prodavani atd
  20. Zdravím. Jelikož mě dnes 3 hráči kteří mají server jestli bych jim neudělal menší prkotinku na server, a to je Hit Sound Spočívá to v tom, že pokud jakoukoliv zbraní střelíte do hráče, tak se vám ozve takový zvuk a to značí to, že hráče ste střelili. public OnPlayerGiveDamage(playerid, damagedid, Float: amount, weaponid) { PlayerPlaySound(playerid, 17802, 0.0, 0.0, 0.0); return 1; } Doufám že aspoň tuto prkoninku využijete, podle mě je to taková maličkost, co by si asi někdo do toho Gm enbo FS dal.
  21. Titul Script Zdravím, chtěl bych vám představit můj nový script. Tento script vám umožní nastavit hráči libovolný titul do 30 znaků. Obsahuje: -Nastavení titulu (Pro RCON). -Config, ve kterém si můžete nastavit barvu titulu a textu. -Vše se ukládá (barvy v configu můžete upravovat i při hraní). Příkazy: /stitul (id) (titulid) (titul) Nastaví hráči titul (když políčko s titulem necháte prázdné titul se odebere) Návod: Soubor Titul.amx nahrajte do složky "filterscripts" a zapište do "server.cfg" vedle filterscripts "Titul". Složku "Titul" ve složce scriptfiles nahrajte do složky "scriptfiles". Changelog (v2.0) - Přidáno 5 ID Titulů (/stitul (ID) (ID Titulu) (Titul)) u každého ID můžete mít jinou barvu - Nový config.cfg - Opraveny bugy Screeny: Download
  22. zdravim dnes bude jen kratky navod na /setloc /teleport pomoci typu prikazu ZCMD. nikde jsem nenasel navod na setloc teleport, tak to sem davam. jestli nekde je navod, tak moje chyba. takze nejdriv vytvorime toto: CMD:setloc(playerid){ return 1; } po te dovnitr napiseme toto: GetPlayerFacingAngle(playerid, Angle); GetPlayerPos(playerid,pX,pY,pZ); new meno[MAX_PLAYER_NAME+1]; new text[128]; GetPlayerName(playerid, meno, sizeof(meno)); format(text, sizeof(text), "{00FF00}Hráč %s uložil veřejnou pozici {FFFFFF}->>> /teleport", meno); SendClientMessageToAll(COLOR_CYAN, text); zpravu muzete zmenit... cele by to melo vypadat takto: CMD:setloc(playerid){ GetPlayerFacingAngle(playerid, Angle); GetPlayerPos(playerid,pX,pY,pZ); new meno[MAX_PLAYER_NAME+1]; new text[128]; GetPlayerName(playerid, meno, sizeof(meno)); format(text, sizeof(text), "{00FF00}Hráč %s uložil veřejnou pozici {FFFFFF}->>> /teleport", meno); SendClientMessageToAll(COLOR_CYAN, text); return 1; } dale si vytvorime toto... CMD:teleport(playerid){ return 1; } po te tam napiseme tohle.. new car = GetPlayerVehicleID(playerid); if(IsPlayerInAnyVehicle(playerid)){ SetVehiclePos(car,pX,pY,pZ); SetVehicleZAngle(car, Angle); }else{ SetPlayerPos(playerid,pX,pY,pZ); SetPlayerFacingAngle(playerid,Angle); } new meno[MAX_PLAYER_NAME+1]; new text[128]; GetPlayerName(playerid, meno, sizeof(meno)); format(text, sizeof(text), "{00FF00}Hráč %s se teleportnul na veřejnou pozici {FFFFFF}->>> /teleport", meno); SendClientMessageToAll(COLOR_CYAN, text); zpravu si opet muzete zmenit a jeste si napiste nekde nahoru tohle, a mate hotovo: new Float:pX,Float:pY,Float:pZ,Float:Angle; doufam ze tento tutorial pomohl do nejakeho modu, nebo do cehokoliv myslim ze urcite ano... a jestli ne, tak mě je to jedno, pokračuji dale a dale... INCLUDE ZCMD: https://uloz.to/!u66tZaF7/zcmd-inc
  23. Jednoduchý Duel Systém v1.1 by OceT. Příkazy: /Duel /Leave [ Příkazy dělané přes IZCMD ] /Duel - Dialog s možnostmi Založit Duel, Podívat se na ID Zbraní, Sledovat Duel Když hráč založí duel se zbraní např. Sawn-off Shotgun, tak jiný hráč se musí zapojit do duelu s tou samou zbraní. Není tedy možné, aby proti sobě bylo třeba RPG vs. Dildo .. Z duelu hráč nemůže nijak utéct, protože plocha kde se duel odehrává je ohraničena. Příkaz pro odchod z duelu - /Leave Není to nic těžkého, tak v tom nehledejte nic extra.. Hotovo za 1 hodinu.. + Ke stáhnutí dávám .pwn + .amx Duel Systém.rar
×
×
  • Create New...