Jump to content

script Moj FS


Ninjonik

Recommended Posts

Čaute už asi tak 1 mesiac sa snažím urobiť filterscipt ktorý by vedel prispôsobiť neaký gamemode.

Ano , je pravda že zatiaľ sa táto verzia dá plne využívať iba na RZE ale to sa neako upraviť dá si myslím.

no radšej to napíšem väčším lebo  by si to nikto nevšimol NIESOM DOBRY PAWNER teraz si myslím že si to všimne každý :d no neako to prosím ohodnotte a textdrawy a dialogy sa ešte učím takže nič extra ani v týchto veciach ani vo FS.

No nič tak opíšem na čo ten FS slúži :

Príkazy ktoré som pridal :

/letsmrti

/kopecsmrti

/strechasmrti

/tuningsraz

/autosmrti

/mosty

/adminem

/adminom

/pomoc

/gift

/prikazy

/eend

WARPY : /ls /sf /lv /nevada /dragls /dragsf /draglv

A ešte do vypisuje texty pri pripojení na server a neaké textdrawy.

Prosím ohodnotte ďakujem :)

Pastebin : http://pastebin.com/rN3Kivr2

Link to comment
Share on other sites

Měl by ses naučit pracovat s dialogy, protože pro příkazy jako třeba /rules atp. se už nevyužívá SendClientMessage, ale dává se to rovnou do dialogů pro větší přehlednost. Tohle snad už jde vidět jenom na RZE serverech. 

Link to comment
Share on other sites

Ahoj,

bohužel mi na tvém FS dost věcí nesedí. Napíšu ti je sem, aby jsi se z těchto chyb poučil a další FS, byl kvalitnější. Neber to nějak osobně, kritika je důležitá pro to, aby ses zlepšil. ;)

 

Když se kouknu na to množství Textdrawů je mi špatně. Určitě sis všiml, že všechny textdrawy mají stejné umístění (pozici na obrazovce) a i stejně tak jsou stejné i jejich vlastnosti. Funkce, která ti tohle všechno vyřeší se nazývá TextDrawSetString(Text: text, string[]), která ti vlastně změní zobrazovaný obsah, takže nemusíš pořád pro každý event vytvářet nový textdraw, je to zbytečné. Navíc, když už jsme u toho, tak proměnné pro textdrawy vytváříš globálně, ale využíváš je pouze v jednom bloku u příkazu, takže zbytečně hltíš paměť. ;) A určitě bych si vytvořil na schování textdrawu timer, není moc praktické dělat příkaz na schování txd.

 

Další, co by v FS rozhodně nemělo být je toto:

public OnPlayerConnect(playerid)
{
    SendClientMessage(playerid,0x00FF00,"------------------------------------------------------");
    SendClientMessage(playerid,0x00FF00FF," Vitaj na MEGA PARBE !");
    SendClientMessage(playerid,0x00FF00FF," MEGA PARBA BY : Ninjonik");
    SendClientMessage(playerid,0x00FF00FF," Doporučujeme si napísať adminovy aby vám dal peniaze či preukazy");
    SendClientMessage(playerid,0x00FF00FF,"Všetky príkazy zobrazíte pomocou /prikazy ");
    SendClientMessage(playerid,0x00FF00FF,"Navštívte náš web : www.megaparba.9e.cz");
    SendClientMessage(playerid,0x00FF00FF,"Novinky zobrazíte pomocou /novinky a celkovú pomoc v /pomoc");
    SendClientMessage(playerid,0x00FF00,"------------------------------------------------------");
Ať někdo prosí adminy, aby mu dal průkazy nebo aby navštívil nějaký cizí web, či dokonce četl, že MEGA PAŘBU vytvořil někdo kdo ji nevytvořil, by hráči opravdu číst neměli a pokud ano, tak si to tam provozovatel serveru napíše sám. To samé s tím příkazem adminom nebo adminem. ;) Tohle by rozhodně nemělo být součásti FS !!! Něco jiného by bylo, pokud by jsi napsal, že server využívá tvého FS, který si vytvořil. ;)
 
Kdyby jsi byl zkušenější, určitě by sis udělal funkci na ty teleporty, jelikož obsah příkazů je stále stejný, akorát měníš text, který se zobrazuje hráčům a pozici. Ale tohle se dá ještě pochopit. 
 
No a nejvíc cancer jsou asi dialogy. Nejspíš to je tím tabováním, jak si celý OnDialogResponse napsal, ale každopádně ti ten jediný dialog, co tam máš nebudu fungovat. Viz.:
if(dialogid == 1){} // dialog otevřeš a okamžitě zavřeš a pod něj potom už rveš response a listitemy....

Navíc použít id 1, je dost odvážné, jelikož je největší pravděpodobnost, že bude už obsazené, třeba módem. ;) Ale někdy se tomu prostě nevyhneš, každopádně máš ještě 32767 možností pro jiné id. ;) A  co se týče stavby OnDialogResponse, tak i při jediném dialogu, který tam máš, je celý callback špatně napsaný. Dialog by jsi měl ukončit return 1, a celý public return 0; Je to kvůli tomu, že když se dialog nenajde, tak public vrátí 0 a hledá ho v dalších fs, pokud však vrátíš 1, tak se bere, že se dialog našel a dál už to nehledá. ;)

 

Celkově by se dal tenhle tvůj FS asi víc jak o polovinu zkrátit. Pokud budeš chtít, přepíšu ti to na to jak by měl nějak správně vypadat a pošlu ti to, aby ses z toho mohl učit. ;)

 

A jako poslední radu co bych ti dal, že by sis měl určitě FS předtím, než ho zveřejníš odzkoušet, jelikož ten dialog ti opravdu fungovat nemůže. ;) A přitom by ti stačilo tabovat a všiml by sis toho. ;)

Edited by GaRGoyLeS
Link to comment
Share on other sites

ďakujem za kritiku ale tento fs si robím sám pre svoj server a len som chcel vedieť čo na ňom zlepšiť

ak by som to chcel dať aby si to ľudia dali na svoj server tak akože jasné že by som to takto neurobil :d

Edited by PGS
Link to comment
Share on other sites

keby tam boli dialogy tak by to bolo celkom fajn :/

lepší dialog ako ( SendClientMessage )

a to sú také admin príkazy že to dokáže aj obyčajný hráč dať ten príkaz

mal si sa viac snažiť :/

je to také divné osobne si myslím že to ani nevyužiješ na RZE :)

možno hej ale budú sa ti krížiť príkazy :)

Nabudúce skus vymyslieť niečo lepšie :)

ale pokračuj v pawne lepšie ako tie lamky čo kopirujú cod a vydávaju si ich za svoj :)

Link to comment
Share on other sites

Projel jsem kod.. Když neberu v potaz to co již tady psali tak jsem si ještě všiml, že máš chybu ještě: viz kod:
+ bych chtomu určitě dosadil PlayerName

public OnPlayerDisconnect(playerid, reason)
{
    SendClientMessage(playerid,0x0FF0,"Určite prídte aj nabudúce  ");//Zde je chyba, zpráva se odešle hráči, který se odpojuje
    TextDrawHideForPlayer(playerid,prvytextdraw);
    TextDrawHideForPlayer(playerid,druhytextdraw);
    TextDrawHideForPlayer(playerid,tretitextdraw);
    return 1;
}

Takto bys to měl mít:

public OnPlayerDisconnect(playerid, reason)
{
    SendClientMessageToAll(-1,0x0FF0,"Určite prídte aj nabudúce  ");
    TextDrawHideForPlayer(playerid,prvytextdraw);
    TextDrawHideForPlayer(playerid,druhytextdraw);
    TextDrawHideForPlayer(playerid,tretitextdraw);
    return 1;
}
Edited by TGaMeR
Link to comment
Share on other sites

Docela by mě zajimalo, jak ti to může tak dobře fungovat... Hlavně ta část s preprocesorovou podmínkou. Jestli-že je definován FILTERSCRIPT zavolají se ty 2 callbacky+fce print, pokud ne, deklarují se proměnné... což znamená, kdybych nahoře odpoznámkoval hned 3. řádek, už bych dostal hromadu errorů s neznámou proměnnou.

Link to comment
Share on other sites

  • 2 months later...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...