Přejít na obsah

[INC] Scydo CoreJobs v0.1 (YSI4)

Scydo SkiBig18 PAWN Include YSI4 Jobs JobSystém JobSystem

  • Pokud chcete odpovědět, přihlaste se
7 odpovědí

#1
SkiBig18

SkiBig18

    Expert ve satanistickém díle YSI4

  • Uživatel
  • Příspěvků: 1 255
  • Je tu celkem: 10d 15h 44m 7s

*
POPULÁRNÍ

SCYDO COREJOBS 0.1

Zdravím. Chtěl bych vám prezentovat script, který mě napadl vytvořit na základně celkem takové "drsnější" kritiky jednoho z uživatelů, který tady publikoval podobný include. Asi všichni víme, o koho a o co se jedná, ale i tak snad nebude vadit, když sem přidám pár výňatků:


Spoiler


Určitě si teď někteří budou myslet, že jsem udělal další podobný include a zmiňuji toho dotyčného tady s úmyslem ho nějak poškodit, zesměšnit a já nevím co ještě... I když je to těžko uvěřitelné, opravdu o to nemám zájem. Spíše mi dopomohl k nápadu pro další mojí práci a navíc, když jsem si pročítal ty jisté komentáře, tak mě napadly další věci, které se brzo dozvíte.

O SCJ

Nejspíše znáte takové ty klišé JobSystémy. Všechno máte v jedné funkci, takže přidáte jen do patřičného callbacku, po případě přidáte ještě další callbacky do patřičných callbacků a tím to končí. Pak už jen přidáváte funkci, po funkci, která je někdy delší než řeka. Ale u SCJ ne jen, že na každou funkci nemusíte scrollovat do stran, ale navíc máte přehled, kam ke komu co přidáváte, a také s ním můžete pokračovat. Celý include obsahuje jen ty nejzákladnější či nejspíše nejpotřebnější funkce pro tvorbo prací na server, ale pokračování si může uživatel zrealizovat sám podle sebe. Velká většina funkcí nevyžaduje id těch prací, ale jejich jména v kódě, která si také může uživatel přidávat sám.
Celá taková myšlenka, místo id práce vepisovat jména a přidávat další funkce, vznikla zrovna na základně komentáře:

 

abych zhodnotil zmého pohledu. máš tam hoodně kravin a to vytváření práce s 20 argumentama je otřesné..raději bych udělal CreateJob(ID,X,Y,Z); AddSkinJob(ID,One.Two,Three); AddSpawnPoint(ID,X,Y,Z); AddWeaponsJob(ID,Gun,Ammo);
takle má člověk přehled kde co má a nemusí to hrabat na jednom řádku mezi všema těma číslama kterým ani nemusí potom rozumět.. jednoduše řečeno. máš tam fakt moc kravin i na můj vkus.

UKÁZKA SCJ
Tady bych vám rád předvedl takovou ukázku, jak můžete pracovat s SCJ. Řekneme si, že si chceme vytvořit práci například Gang Vagos:




Please Login or Register to see this Hidden Content

(Nejspíše už většina z vás tuší, co jaká funkce, udělá. Jestliže ne, nevadí, vysvětlíme si to později)

Nevypadá to tak složitě a nepřehledně, že ne? Samozřejmě se nenechte oklamat! Jediné, co v tomhle případě přesně udělá je, že se vytvoří pickup s jménem té patřičné práce a nastaví jí 3 skiny(a jeden z nich dostane hráč po přidání do té práce), a výplatu jen té práci. Nebude se nikomu dávat. Začátečník (po případě je možné, že i pokročilejší), se zeptá "Tak pak k čemu nám to je?". Odpověď je prostá: Tady si můžeme jaksi "přednastavit" co budeme potřebovat, a pak s volnou rukou, si už budeme moct pokračovat, jak chceme, a přidávat co chceme. Ještě více to zjednoduším: Protože, to právě budou ty klišé JS, kde přidáte jednu funkci a konec. Nemůžete s tím hráčem pak v těch pracích nějak manipulovat. Nemůžete pak nastavovat, jakou dostane výplatu, kromě té ve funkci. Nemůžete mu zjistit, v jaké je práci(jediné co, tak jestli je vůbec v nějaké). Nemůžete pak kdekoliv znova přenastavit výplatu, a tak dále... Prostě, všechno se udělá za vás a máte omezenější možnosti.
SEZNAM FUNKCÍ VE SCJ
Zde je kompletní seznam funkcí, který obsahuje include. Tady zobecním, co k čemu slouží jaká funkce, a pak si ukážeme příklad využití každé z nich.
  • SJob_Insert() >> Přidává základ pro tvorbu prací (+vytvoří pickup s jménem práce).
  • SJob_SetSkins() >> Nastaví globálně dané práci skiny, které se pak nastaví hráči po připojení do dané práce.
  • SJob_SetVyplata() >> Nastaví globálně dané práci, jaká bude jeho výplata.
  • SJob_Vyplata() >> Vrací hodnotu, jakou má nastavenou výplatu daná práce.
  • SJob_Skin() >> Vrací jeden ze 3 skinu, které má nastavená daná práce.
  • SJob_PrintJobInfo() >> Vypíše všechny potřebné informace o dané práci do konzole.
  • SHasPlayerJob() >> Vrací hodnotu true/false, podle toho, jestliže je v nějaké z prácí.
  • SGetPlayerJob() >> Vrací hodnotu true/false, jestliže, je v dané práci.
  • SGetPlayerJobName() >> Vrací jméno práce v kódě v které se nachází hráč.
  • SGetJobObjName() >> Vrací jméno práce ve hře.
  • SJob_InsertPlayer() >> Vloží hráče do dané práce.
  • SJob_RemovePlayer() >> Vyhodí(smaže) hráče z dané práce.
  • IsPlayerOnJobsPickup() >> Vrací true/false, podle toho, jestliže je na nějakém z pickupů prací.
  • IsPlayerOnJobsPickup() >> Vrací true/false, podle toho, jestliže je na daném pickupu u dané práce.
 
SJob_Insert()
(sJobName[], sJobObjName[], Float: fJobPosX, Float: fJobPosY, Float: fJobPos)
sJobName[] - Jméno práce ve zdrojovém kódu.
sJobObjName[] - Jméno práce ve hře(lze přidat i hexkód barvy).
fJobPosX - X pozice nové práce (pickupu).
fJobPosY - Y pozice nové práce (pickupu).
fJobPosZ - Z pozice nové práce (pickupu).

Ukázka využití:

Please Login or Register to see this Hidden Content

 
SJob_SetSkins()
(sJobName[], iJobSkin1, iJobSkin2 = -1, iJobSkin3 = -1)
sJobName[] - Jméno práce ve zdrojovém kódu.
iJobSkin1 - Nastavit první skin pro práci.
iJobSkin2 - Nastavit druhý skin pro práci.
iJobSkin3 - Nastavit třetí skin pro práci.

Ukázka využití:

Please Login or Register to see this Hidden Content

 
SJob_SetVyplata()
(sJobName[], iJobVyplata = 25000)
sJobName[] - Jméno práce ve zdrojovém kódu.
iJobVyplata - Nastavit výplatu pro danou práci.

Ukázka využití:

Please Login or Register to see this Hidden Content

 
SJob_Vyplata()
(sJobName[])
sJobName[] - Jméno práce ve zdrojovém kódu.

Ukázka využití:

Please Login or Register to see this Hidden Content

 
SJob_Skin()
(sJobName[], iJobSkinListID)
sJobName[] - Jméno práce ve zdrojovém kódu.
iJobSkinListID - Jeden ze tří nastavených skinů (pole s 0, 1 a 2).

Ukázka využití:

Please Login or Register to see this Hidden Content

 
SJob_PrintJobInfo()
(sJobName[])
sJobName[] - Jméno práce ve zdrojovém kódu.

Ukázka využití:

Please Login or Register to see this Hidden Content

 
SHasPlayerJob()
(playerid)
playerid - ID daného hráče.

Ukázka využití:

Please Login or Register to see this Hidden Content

 
SGetPlayerJob()
(playerid, sJobName[])
playerid - ID daného hráče.
sJobName[] - Jméno práce ve zdrojovém kódu.

Ukázka využití:

Please Login or Register to see this Hidden Content

 
SGetPlayerJobName()
(playerid)
playerid - ID daného hráče.

 
SGetJobObjName()
(iJob_ID)
playerid - ID dané práce.

Ukázka využití:

Please Login or Register to see this Hidden Content

 
SJob_InsertPlayer()
(playerid, sJobName[])
playerid - ID daného hráče.
sJobName[] - Jméno práce ve zdrojovém kódu.

Ukázka využití:

Please Login or Register to see this Hidden Content

 
SJob_RemovePlayer()
(playerid)
playerid - ID daného hráče.

Ukázka využití:

Please Login or Register to see this Hidden Content

 
IsPlayerOnJobPickup()
(playerid, sJobName[])
playerid - ID daného hráče.
sJobName[] - Jméno práce ve zdrojovém kódu.

Ukázka využití:

Please Login or Register to see this Hidden Content

 
IsPlayerOnJobsPickup()
(playerid)
playerid - ID daného hráče.

Ukázka využití:

Please Login or Register to see this Hidden Content

PÁR ZAJÍMAVOSTÍ O SCJ
  • Celé SCJ neukládá, kromě počtu zaměstnání u každé vytvořené práce, a souboru s jménem hráče rovnou ve scriptfiles. Tudíž, není třeba nikde nic vytvářet za složku.
  • Funkce SJob_PrintJobInfo se vám může hodit jako ukázka, jestliže jste se někde při vytváření nesekli.
eJ8m.png
  • Žádná z funkcí nezobrazuje zprávy hráči do hry, pouze do konzole.
  • Nelze vytvořit již existující práci (jestliže se budou jména prací ve zdrojovém kód schodovat.
  • Údaje ohledně zamestnání u každého hráče se nahrají a uloží jen v případě, že se zaměstnán.
  • S tímto includem lze samozřejmě pracovat i v gamemodu. Stačí přídat dJOB_GAMEMODE
  • V include jsem se snažil co nejvíce šetřit (počet proměnných, pole, délky...),
  • Lze si nastavit vlastní maximum prací pomocí dMAX_JOBS jinak default je 100, a nastavit si ID skinu po opuštění zaměstnání pomocí dDEFAULT_SKIN, jinak defaultně je 0.
  • Pro nastavení výplaty u dané práce s funkcí SJob_SetVyplata() nemusíte zadávat druhý parametr. V případě, že nedosadíte, výplata se automaticky nastaví na 35000$.
  • Na funkci, pro zjištění jestliže stojí na pickupu prací, nebo jedné z prací se použila funkce na zjistění, zda se hráč nachází v dané oblasti(pro práci s těmito funkcemi doporučuji využívat callback OnPlayerKeyStateChange).
NĚKOLIK UKÁZEK S SCJ

RYCHLÉ EASY ZAMĚSTNÁNÍ POLICIE

Spoiler


OTEVŘENÍ MENU DANÉ PRÁCE

Spoiler


OTEVŘENÍ MENU VŠECH PRACÍ NAJEDNOU

Spoiler



NASTAVENÍ SPAWNU ZAMĚSTNANCŮ

Spoiler


ZJISTĚNÍ PRÁCE VŠECH NA SERVERU
Spoiler


SCREENY
Stačil jsem si, kromě těch 2 ukázek výše, připravit ještě další 2 screeny, ale podle mě není toho moc co ukazovat na include, kde si toho můžete udělat tolik podle sebe.

Spoiler


CO BUDE V UPDATE
V případě, že bude nějaký větší zájem či časté kladnější ohodnocení, mám v úmyslu v tom pokračovat.
0.2
  • Změnit celý enum pJobInfo na obyčejné 2 proměnné.
  • Přidat funkci SJob_InsertRankJob(), půjde o práce, na kterou se dostane povýšením v prácí, ke které já RankJob přiřazena.
  • Přidat funkci SJob_InsertPlayerRank(), povyší hráče z určené předešlé práce do této.
  • Přidat funkci SJob_AddJobCommand(), určí, které příkazy budou JEN pro hráče, kteří jsou zaměstnáni v určitých pracích v této funkci.
  • Vylepšit funkci SJob_PrintJobInfo, bude vám moct nahlásit i patřičné chyby.
  • Přidat funkci SJob_SetWeapons(), asi všichni víme k čemu.
  • Přidat funkci SJob_SetRandomVyplaty(), lze nastavit u určitě true, a tak budou hráči dostávat výplatu od určité hodnoty, ale ještě s nějakým náhodným doplňkem.
  • Optimalizace kód, opravit chyby, opravit bugy, překlepy, zpřehledit kód a tak dále...
DOWNLOAD

Please Login or Register to see this Hidden Content



V souboru, který stačí rozbalit, bude vše potřebné pro práci. Stačí jen všechno, co obsaje složka include hodit do složky pawno\include, přidat nahrání daného include SCoreJobs01.inc a už můžete tvořit!


ZÁVĚR
Na závěr bych chtěl poděkovat samozřejmě Y_Lessovi za jeho YSI4, a také vEndovi a Lukaszovi za pomoc při opravování chyb.
Otestoval jsem, co jsem mohl a vše fungovalo. V případě, že i přesto vám něco nepůjde, dejte vědět.
V případě, že budete mít zájem nějakým způsobem ohodnotit či budet mít nějaký nápad, co přidat nebo vylepšit, tak vás prosím, zdržte se zbytečných a pitomých příspěvků, jen, aby jste se předvedli. Děkuji za pochopení.

  • 6

#2
Polis_Polismanovic

Polis_Polismanovic

    Head Of Reports

  • Globální moderátor
  • Příspěvků: 752
  • Je tu celkem: 13d 10h 1m 40s

Velmi pěkné.

 

 

Script povolen tedy můžete vesele stahovat :d


  • 0

Ačkoliv jsem moderátor nejsem více než normalní uživatel,

proto všechno a všechny měřím jedním metrem.

 

Gamemodes in works

Dark Island by Polis_Polismanovic

Life in State Prison by Daniels & Polis_Polismanovic

San Fierro Life by Polis_Polismanovic

 

 

My Servers

Basic Team Deathmatch by Polis_Polismanovic                       IP:5.189.179.167:7779

 

 

Důvod něco začít ?,Jsem já sám.

Důvod něco zlepšit ?,Jsem já sám.

Důvod něco změnit ?,Jsem já sám.

Důvod něco ukončit ?,Jsem já sám.

 

Money,money and money please

btn_donateCC_LG.gif


#3
Qvosty_

Qvosty_

    Dwaine

  • Uživatel
  • Příspěvků: 76
  • Je tu celkem: 2d 2h 50m 52s

Nice job ;)


  • 0

#4
Steam wallet

Steam wallet

    Trolloloooo

  • Uživatel
  • Příspěvků: 2 231

Steam Profile


         
  • Je tu celkem: 53d 18h 28m 46s

Něco ti tam chybý.... aa už vím toto

Please Login or Register to see this Hidden Content

 

:kappa:

 

Ke scriptu. kurde použij i něco jineho než ysi :d

 

jediné co se mi nelibí je zpracovaní dialogu a 3D labelu. jinak cg gj


  • 0
Vložený obrázek

#5
SkiBig18

SkiBig18

    Expert ve satanistickém díle YSI4

  • Uživatel
  • Příspěvků: 1 255
  • Je tu celkem: 10d 15h 44m 7s

Velmi pěkné.

 

Nice job ;)

 
~> Děkuju.
 

Ke scriptu. kurde použij i něco jineho než ysi :d


~> Mohl bych, ale nechce se mi. Všiml jsem si, že s ním tady podstatě nikdo nepracuje. Navíc, s celou knihovnu se mi děla jednodušeji velká většina scriptů. Pokud bude zájem, tak samozřejmě udělám i bez ní.

jediné co se mi nelibí je zpracovaní dialogu a 3D labelu. jinak cg gj


~> Include neobsahuje dialogy, a do 3D label textů jsem toho chtěl přidat více, ale musel bych je fakt furt neustále update-ovat. Zbytečně. Tak prozatím snad bude jméno práce stačit.
  • 0

#6
HighPrint

HighPrint

    Proud =NTP= Member

  • Uživatel
  • Příspěvků: 1 031
  • Je tu celkem: 14d 11h 55m 13s

To nevypadá zle :) zítra zkouknu zdroják

 

@Steam Wallet, jestli tam chybí #define IsPlayerInJob(%0,%1,%2) Job[%0]%1%2, tak je to fakt špatný :( 


  • 0

podpis.png

 


#7
SkiBig18

SkiBig18

    Expert ve satanistickém díle YSI4

  • Uživatel
  • Příspěvků: 1 255
  • Je tu celkem: 10d 15h 44m 7s

To nevypadá zle :) zítra zkouknu zdroják


~> Děkuju. Jinak, ten zdroják má sotva přes 300 řádků a to ještě celkem krátké. Takže bych řekl, že, pokud jsi někam pospíchal, stejně bys stihl ho prozkoumat :d...


Jinak jsem ještě zapomněl dodat, že uvažuji o tom přidat plg streamer na ten pickup a 3D text label.

  • 0

#8
Paulee

Paulee

    Learning pawn ...

  • Uživatel
  • Příspěvků: 576

Steam Profile

  • Paulee - Offline
    Since: led 18 2017 21:46:05
    17,1 hrs last 2 weeks.
    Add Friend

   
  • Je tu celkem: 7d 19h 29m 36s

SkiBigu dobrá práce :d. Chtěl jsem nějak začít se zaměstnáním, ale furt se mi nějak do toho nechtělo. Díky tvému includu to půjde lépe. Díky moc ! Určitě využiji.


  • 0

Gamenice.sk - My Game My Life






Také označeno jedním nebo více klíčovými slovy: Script, Scydo, SkiBig18, PAWN, Include, YSI4, Jobs, JobSystém, JobSystem

0 uživatelů si prohlíží toto fórum

0 uživatelů, 0 návštěvníků 0 anonymních uživatelů

© 2015 IPS, Inc.

TOPlist

Zajímat Vás mohou ještě aktuální zprávy. sleviště, slevy dnes Herbalife je skvělou cestou pro dobré zdraví. Je libo dětský web?