Jump to content

[ TuT ] Odpočet


Guest Razor_©

Recommended Posts

Zdravim, jelikož jsem tu nic takového nenašel a hodně lidí mi psalo na skype / ICQ že neví jak udělat odpočet a posílali mi soubory.pwn na opravu a v jednom sem našel například toto:

 

 

public odp(playerid)
{
format(string, sizeof(string), "~g~3");
GameTextForAll(string, 1000, 3);
PlayerPlaySound(playerid,1056,0,0,0); //Zvuk
SetTimerEx("odpp",2000,0,"i",playerid); //2 s.
return 0;
}
public odpp(playerid)
{
format(string, sizeof(string), "~g~2"); 
GameTextForAll(string, 1000, 3);
PlayerPlaySound(playerid,1056,0,0,0); //Zvuk
SetTimerEx("odppp",2000,0,"i",playerid); //2 s.
return 0;
}
public odppp(playerid)
{
format(string, sizeof(string), "~g~1");
GameTextForAll(string, 1000, 3);
PlayerPlaySound(playerid,1056,0,0,0); //Zvuk
SetTimerEx("start",2000,0,"i",playerid); //2 s.
return 0;
}
public start(playerid)
{
PlayerPlaySound(playerid,1057,0,0,0);
format(string, sizeof(string), "~g~!JED!"); //Napise aby jel xD 
GameTextForAll(string, 1000, 3);
return 0;
}

 

 

Tak sem si řekl že to už je fakt hrůza... a proto sem na to dávám TuT !

 

Takže jako první si nadefinujeme promennou odpočet:

 

new Odpocet;

 

Dále musíme mít forward na public co vytvoříme... Ten bude níž !

 

forward OdpocetS();

 

Nyní si musíme udělat příkaz na spuštění... Předpokládám že všichni používáte dcmd nebo něco s params... a né staré strcmp !

 

dcmd_odpocet(playerid, params[])
{

if(Level[playerid] < 2) return  SendClientMessage(playerid,  COLOR_RED, "{FF0000}[{FFFFFF} ! {FF0000}]{FFFFFF} Nedostatečný Admin-Level !");
if(!strlen(params)) return SendClientMessage(playerid,  COLOR_WHITE, "{FF0000}[{FFFFFF} ! {FF0000}]{FFFFFF} Pouziti: /odpocet [ 0-60 ]");
   if(strlen(params) > 15) return SendClientMessage(playerid,  COLOR_WHITE, "{FF0000}[{FFFFFF}  !  {FF0000}]{FFFFFF} Chybne parametry.");

new Cas = strval(params);
if(Cas < 0 || 60 < Cas) return SendClientMessage(playerid,  COLOR_WHITE, "{FF0000}[{FFFFFF} ! {FF0000}]{FFFFFF} Pouziti: /odpocet [ 0-60 ]");
if(Odpocet > 0) return SendClientMessage(playerid,  COLOR_WHITE, "{FF0000}[{FFFFFF}  !  {FF0000}]{FFFFFF} Odpocet jiz probiha.");

new string[78];
format(string, 78, "[  !  ] Administrator %s spustil odpocet na %d sekund.", PlayerName(playerid), Cas);
   SendClientMessageToAll(COLOR_ORANGE, string);

Odpocet = Cas;
SetTimer("OdpocetS",1000, false);
return true;
}

 

Takhle to je možná nepřehledné a nepopsané takže si to popíšeme:

 

dcmd_odpocet(playerid, params[]) - Pokud někdo (admin) ve hře napíše /odpocet

 

if(Level[playerid] < 2) return SendClientMessage(playerid, COLOR_RED, "{FF0000}[{FFFFFF} ! {FF0000}]{FFFFFF} Nedostatečný Admin-Level !"); - Když ten co to napíše není administrátor... ( předpokládám že si tam dá každý vlastní podmínku... Podmínku Level mam akorát v modu já...)

 

if(!strlen(params)) return SendClientMessage(playerid, COLOR_WHITE, "{FF0000}[{FFFFFF} ! {FF0000}]{FFFFFF} Pouziti: /odpocet [ 0-60 ]"); - Pokud nezadá číslici (číslice) na odpočet...

 

if(strlen(params) > 15) return SendClientMessage(playerid, COLOR_WHITE, "{FF0000}[{FFFFFF} ! {FF0000}]{FFFFFF} Chybne parametry."); - Když napíše třeba /odpocet 0000000000 tak to je příšerná blbost :d

 

new Cas = strval(params); - Parametry které bude zadávat...

 

if(Cas < 0 || 60 < Cas) return SendClientMessage(playerid, COLOR_WHITE, "{FF0000}[{FFFFFF} ! {FF0000}]{FFFFFF} Pouziti: /odpocet [ 0-60 ]"); - Opět kdyby zadal třeba /odpocet 555555

 

if(Odpocet > 0) return SendClientMessage(playerid, COLOR_WHITE, "{FF0000}[{FFFFFF} ! {FF0000}]{FFFFFF} Odpocet jiz probiha."); - Když už je nějakej odpočet spuštěnej tak mu to nedovolí spustit další timer...

 

new string[78];

format(string, 78, "[ ! ] Administrator %s spustil odpocet na %d sekund.", PlayerName(playerid), Cas);

SendClientMessageToAll(COLOR_ORANGE, string); - Pošle všem zprávu že byl spuštěn odpočet...

 

Odpocet = Cas;

SetTimer("OdpocetS",1000, false);

return true; - nastavíme promennou na čas kterej jsme zadali a spustíme Timer... return doufám že nemusím vystvětlovat...

 

{} - Závorky ve scriptu jsou snad jasný ne ??

 

Jdeme dál na public kterej byl spuštěnej timerem... (nahoře již máme forward)

 

public OdpocetS()
{

new string[8];
if(Odpocet > 0)
{
	format(string,8,"~g~%d",Odpocet);
	GameTextForAll(string, 1000, 4);
	Odpocet--;
	SetTimer("SOdpocet", 1000, false);
}else{
	GameTextForAll("~r~START!", 2000, 4);
}
}

 

public OdpocetS() - vytvořený nový public

 

new string[8];

if(Odpocet > 0) - Vytvoříme string a zkontrolujeme zda není odpočet 0 !

 

format(string,8,"~g~%d",Odpocet);

GameTextForAll(string, 1000, 4);

Odpocet--;

SetTimer("OdpocetS", 1000, false); - formát Game textu kde použijeme vytvořený string, pod tím GameText zobrazíme všem... Odpocet--; znamená zadanej odpočet kterej jsme udělali v dcmd_odpocet ! A znova spustíme timer po každé sekundě...

 

}else{

GameTextForAll("~r~START!", 2000, 4); - Pokud je již odpočet na 0 tak zobrazíme START!

 

A potom už jen zase zazávorkujeme podle toho kolik máme závorek otevřeno !

 

Je to otestované a funguje to na 100%

 

Děkuji za přeštení a hodnoťte, hlaste chyby a :spam: ... Dík ;)

PS: je to můj 2 TuT tak s klidem ;)

Link to comment
Share on other sites

je to tvoj odpočet ? lebo tento som videl v toľko módoch... presne rovnaký... ten public myslím...

 

Ano je to můj odpočet... Tak je to možná shoda ale psal jsem ho já... včera jsem dělal jednu akci na serveru a chybělo mi to tam... tak jsem se o to s váma podělil.. Ano je můj ;)

Link to comment
Share on other sites

btw

public odp(playerid)

{

format(string, sizeof(string), "~g~3");

GameTextForAll(string, 1000, 3);

PlayerPlaySound(playerid,1056,0,0,0); //Zvuk

SetTimerEx("odpp",2000,0,"i",playerid); //2 s.

return 0;

}

public odpp(playerid)

{

format(string, sizeof(string), "~g~2");

GameTextForAll(string, 1000, 3);

PlayerPlaySound(playerid,1056,0,0,0); //Zvuk

SetTimerEx("odppp",2000,0,"i",playerid); //2 s.

return 0;

}

public odppp(playerid)

{

format(string, sizeof(string), "~g~1");

GameTextForAll(string, 1000, 3);

PlayerPlaySound(playerid,1056,0,0,0); //Zvuk

SetTimerEx("start",2000,0,"i",playerid); //2 s.

return 0;

}

public start(playerid)

{

PlayerPlaySound(playerid,1057,0,0,0);

format(string, sizeof(string), "~g~!JED!"); //Napise aby jel xD :d;):)

GameTextForAll(string, 1000, 3);

return 0;

}

 

toto máš od tej lamy Ceeker z pawnowe******** ? :d od toho kopiráka by som nič nebral...

Link to comment
Share on other sites

btw
public odp(playerid)

{

format(string, sizeof(string), "~g~3");

GameTextForAll(string, 1000, 3);

PlayerPlaySound(playerid,1056,0,0,0); //Zvuk

SetTimerEx("odpp",2000,0,"i",playerid); //2 s.

return 0;

}

public odpp(playerid)

{

format(string, sizeof(string), "~g~2");

GameTextForAll(string, 1000, 3);

PlayerPlaySound(playerid,1056,0,0,0); //Zvuk

SetTimerEx("odppp",2000,0,"i",playerid); //2 s.

return 0;

}

public odppp(playerid)

{

format(string, sizeof(string), "~g~1");

GameTextForAll(string, 1000, 3);

PlayerPlaySound(playerid,1056,0,0,0); //Zvuk

SetTimerEx("start",2000,0,"i",playerid); //2 s.

return 0;

}

public start(playerid)

{

PlayerPlaySound(playerid,1057,0,0,0);

format(string, sizeof(string), "~g~!JED!"); //Napise aby jel xD :d;):)

GameTextForAll(string, 1000, 3);

return 0;

}

 

toto máš od tej lamy Ceeker z pawnowe******** ? :d od toho kopiráka by som nič nebral...

 

Dyť říkám že mi to posílali lidi na opravu :d

Nechápu jak někdo něco takovýho vytvořil :d To jé :sick: kód :d

Link to comment
Share on other sites

Presne jak rikal QWER tak sem si jistej na 90% ze tohle neni tvuj vytvor :( mam mod ve kterym je oplnej 99% schoda vsech kodu :( mozna sis tam zmenil nejaky malickosti jinak presnej COPY!!!!!!!!! :(

 

P.S Vim ze tet budes tvrdit nnnnn to je muj vytvor jako ostatni Kopiraci ;) !!!!!!

"lol"

Link to comment
Share on other sites

Presne jak rikal QWER tak sem si jistej na 90% ze tohle neni tvuj vytvor :( mam mod ve kterym je oplnej 99% schoda vsech kodu :( mozna sis tam zmenil nejaky malickosti jinak presnej COPY!!!!!!!!! :(

 

P.S Vim ze tet budes tvrdit nnnnn to je muj vytvor jako ostatni Kopiraci ;) !!!!!!

"lol"

 

Jj budu jelikož to je můj výtvor ! Nevěříš ? Nevěř... Mě to nezajímá... Máte tady tut a myslete si co chcete já jen vím že COPY to neni...

Link to comment
Share on other sites

Zabudol si dať do OnGameModeInit vyvolanie odpočtu "farao"

Ale ked si to neskopčil tak dávam 9/10

 

Nn.. nezapoměl.. Odpočet se vyvolává příkazem /odpocet ;)

 

Jinak díky ;)

Link to comment
Share on other sites

Nn.. nezapoměl.. Odpočet se vyvolává příkazem /odpocet ;)

symbol is never used: "dcmd_odpocet"

 

To už si snad dokážeš opravit ne ?? Nedával jsem to tam záměrně... aby ste si alespoň tohle doplnili ;)

Link to comment
Share on other sites

Návody nejsou na CTRL C + V

Nechcem tu spamovať ale ja som mu napísal že zabudol na vyvolanie odpočtu a napísal že nezabudol a tak som mu napísal ten warning čo znamená že ten public odpocet neni použitý.

Ale toto hádam každý vie

dcmd(odpocet,7, cmdtext);

Link to comment
Share on other sites

Návody nejsou na CTRL C + V

Nechcem tu spamovať ale ja som mu napísal že zabudol na vyvolanie odpočtu a napísal že nezabudol a tak som mu napísal ten warning čo znamená že ten public odpocet neni použitý.

Ale toto hádam každý vie

dcmd(odpocet,7, cmdtext);

 

jj... viz můj post nad tvým... ale už STOP OT ;)

 

BTW: napsal jsi OnGameModeInit... Vyvolává se to v OnPlayerCommandText ;)

 

-- EDIT --

 

Díky všem co hodnotili ;) A ještě hodnoťte ostatní 84.gif

Link to comment
Share on other sites

  • 2 weeks later...
  • 2 weeks later...

hovoril si, že ak nájdem(e) chybu, mám(e) ťa upozorniť...

 

 

 

if(!strlen(params)) return SendClientMessage(playerid, COLOR_WHITE, "{FF0000}[{FFFFFF} ! {FF0000}]{FFFFFF} Pouziti: /odpocet [ 0-60 ]"); - Pokud nezadá číslici (číslice) na odpočet...

Link to comment
Share on other sites

  • 3 weeks later...

The fuc* ???

 

if(!strlen(params)) return SendClientMessage(playerid, COLOR_WHITE, "{FF0000}[{FFFFFF} ! {FF0000}]{FFFFFF} Pouziti: /odpocet [ 0-60 ]"); - Pokud nezadá číslici (číslice) na odpočet...

if(strlen(params) > 15) return SendClientMessage(playerid, COLOR_WHITE, "{FF0000}[{FFFFFF} ! {FF0000}]{FFFFFF} Chybne parametry."); - Když napíše třeba /odpocet 0000000000 tak to je příšerná blbost

 

nebylo by lepší

 

if(IsNumeric(params) && strval(params) > 0 && strval(params) < 60) ???

 

zbytek jsem nečetl...

 

hodnocení 2/10 za snahu + zvýrazni trochu ty funkce až to uděláš změním hodnocení (červená je na hovn*)

Link to comment
Share on other sites

Reknu ti ze ten odpocet co tam davas sem delal kdyz sem zacinal s pawnem a moc sem toho neumel coz je dlouho, a jeste k tomu funguje! ;) odzkousej si to :d

 

-- úte 28. čer 2011 17:34:43 --

 

toto máš od tej lamy Ceeker z pawnowe******** ? :d od toho kopiráka by som nič nebral...

Nemusis me pomlouvat ja te taky nepomlouvam, ale jak myslis jak ty tak ja ;)....

 

2. Lama si tu ty delas tu ze sebe nej pawnera a myslis si ze jsi nejlepsi ale to se peltes ani ja nejsem nej a ani ty...

 

NEMUSIS KOMENTOVAT QWER diky ;)

Link to comment
Share on other sites

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...