Jump to content

Woody

Recommended Posts

Zdravím,

dlouho jsem zvažoval o zveřejnění tohoto filterscriptu, ale nakonec jsem se rozhodl, že ho zveřejním. Určitě by se dalo ledacos vytknout, udělat jinak, takže konstruktivní kritiku vítám.

 

Co script obsahuje?

1) /carmenu - Spawn auta přes dialog s ochranou proti spamu

2) /neon - Nainstalování neonu do auta

3) /setskin - Nastavení skinu

4) /opravauto - Oprava auta s časovou ochranou proti spamu

5) /zivoty - Doplnění full životů s časovou ochranou proti spamu

6) /radio - Spuštění radia

7) /mute a /unmute - Umlčení a odmlčení hráče

8) /barvy - Výběr barevného nicku

9) /chatcolor - Výber barvy pro barevné psaní do chatu

+BONUS - Náhodné soutěže v chatu s výhrou zbraní

 

Najde zde zkrátka vše, co hodně lidí možná hledá nebo hledalo. Pro kompilaci stiskněte F5, není potřeba žádný include.

 

Pastebin: http://pastebin.com/FdvfuZYj

Download: http://pawno.cz/files/file/34-v%C5%A1ehoscript/

Link to comment
Share on other sites

  • Globální moderátor

Iba ma zaujíma či aj ukladáš aj "nastavenia" do súboru aby sa to ukladalo aj po resetnutí serveru napr. (nekukol som source code tak preto sa pýtam) :)

Link to comment
Share on other sites

Iba ma zaujíma či aj ukladáš aj "nastavenia" do súboru aby sa to ukladalo aj po resetnutí serveru napr. (nekukol som source code tak preto sa pýtam) :)

To bohužel ne.

Link to comment
Share on other sites

  • Hlavní moderátor

První dobré znamení - zkompilovalo se to. Divil by ses, kolik lidí zveřejňuje něco, co při kompilaci hází chyby, popř. varování.

_

new name[24];

Správně by velikost řetězce měla být 25, protože každý řetězec musí být ukončen nulovým znakem (EOS, \0). S tímhle by hráč, co by měl nick s 24 znaky, o poslední znak přišel.

_

OnFilterScriptInit:
for(new i=0; i<MAX_PLAYERS; i++) if(IsPlayerConnected(i)) OnPlayerConnect(i);

Spíš než nulovat proměnné tímto způsobem (že voláš OnPlayerConnect/OnPlayerDisconnect), by sis na to měl vytvořit funkci zvlášť a tu volat jak tady, tak tam. Do toho OnPlayerConnect či Disconnect si totiž může každý přidělat, co chce.

_

new string[144];
format(string, 144, "%s [ID:%d]: {%06x}%s", PlayerName(playerid), playerid, Chatcolor[playerid] >>> 8, text);

Podobně jako s tím nickem, i tady má být o znak navíc - 145. Zpráva s délkou 144 (a to se v případě zpráv může stávat často) by jinak přišla o jeden znak.

_

SetVehicleHealth(GetPlayerVehicleID(playerid), 1000.0);
RepairVehicle(GetPlayerVehicleID(playerid));

SetVehicleHealth je zde zbytečné.

_

new id = strval(cmdtext[6]);

Pozor, tohle ti vrátí nulu i v případě, že zadám nějaký text, třeba "/mute haha", takže by to mohlo nechtěně postihnout hráče s ID 0, když projde přes ostatní podmínky. Chtělo by to ošetřit (funkce IsNumeric). U /unmute totéž.

_

if(!(0 <= id <= 299)) return SendClientMessage(playerid, 0xFF0000FF, "Použij: /setskin [ 0-299 ]");

Víš, že přibyly nové skiny? 300-311.

_

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://www.play.cz/radio/danceradio192.mp3.m3u");
else if(listitem == 5) PlayAudioStreamForPlayer(playerid, "http://radio.ipip.cz:7996/listen.pls");
else if(listitem == 6) PlayAudioStreamForPlayer(playerid, "http://static.expres.sk/public/data/Playlist/stream/mp3_high.pls");
else StopAudioStreamForPlayer(playerid);

Switch...

_

if(listitem == 0) modelid = 18647;
else if(listitem == 1) modelid = 18648;
else if(listitem == 2) modelid = 18649;
else if(listitem == 3) modelid = 18650;
else if(listitem == 4) modelid = 18651;
else if(listitem == 5) modelid = 18652;

Dá se to na jeden řádek: modelid = 18647 + listitem;

 

Pár věcí, na které jsem narazil, když jsem to projížděl. Skript jako takový se mi hodnotit nechce, je to tady už stokrát.

Edited by vEnd
  • Líbí se mi to! (+1) 1
Link to comment
Share on other sites

 

Podobně jako s tím nickem, i tady má být o znak navíc - 145. Zpráva s délkou 144 (a to se v případě zpráv může stávat často) by jinak přišla o jeden znak.

http://wiki.sa-mp.com/wiki/SendClientMessage

The text that will be displayed (max 144 characters)

striktne 144 znaku a ani o jeden vic :)

Edited by ATomas
Link to comment
Share on other sites

  • 3 weeks later...
  • 8 months later...
  • Hlavní moderátor

JJ, ten update by mohl být. Woody má určitě dost času, když má čas obcházet všechny nedokončené projekty na fóru.

 

(Aspoň ty chyby, které jsem mu napsal před více než půl rokem, by mohl opravit. :haha: )

Link to comment
Share on other sites

  • 1 month later...
  • 5 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...