Skripta koju koristim: Raven's RP
Detaljan opis problema: Timer -.-" Napravio sam par Textdrawova i hocu da se nakon 30sec mjenjaju ima ih 11 moze li mi neko pomoci trebale bi se paliti na /startdeliver komandu. Znaci trebalo bi mi pomoci kako napraviti timer jer me on najvise i zeza i kako ga ubaciti u komandu ako se nekom da bio bi zahvalan pa da napravi to :)
Dio skripte: //
Neke slike/video za lakse dobivanje pomoci(neobavezno): //
http://wiki.sa-mp.com/wiki/SetTimer evo ovo bi trebalo pomoci ako imalo razumijes engleski ;)
stavis SetTimer, pogledas tu parametre na samp wiki sta ti je ovaj gore dao, i napravis novi public sa forwarrdom primjer Deliver, i onda u timeru taj public koristis a u taj public ti ide TextDrawShowForPlayer...
Mislim da sam skuzio :P
forward deliverdok();
public OnGameModeInit()
{
if strcmp(text,"/startdeliver",true) {
SetTimer("deliverdok", 10000, false);
}
public deliverdok()
{
TextDrawShowForPlayer(playerid, Text:DockSysteamTextdraw1);
TextDrawShowForPlayer(playerid, Text:DockSysteamTextdraw2);
TextDrawShowForPlayer(playerid, Text:DockSysteamTextdraw3);
TextDrawShowForPlayer(playerid, Text:DockSysteamTextdraw4);
TextDrawShowForPlayer(playerid, Text:DockSysteamTextdraw5);
TextDrawShowForPlayer(playerid, Text:DockSysteamTextdraw6);
TextDrawShowForPlayer(playerid, Text:DockSysteamTextdraw7);
TextDrawShowForPlayer(playerid, Text:DockSysteamTextdraw8);
TextDrawShowForPlayer(playerid, Text:DockSysteamTextdraw9);
TextDrawShowForPlayer(playerid, Text:DockSysteamTextdraw10);
TextDrawShowForPlayer(playerid, Text:DockSysteamTextdraw11);
{
A sad me muci ti svi TextDrawovi ce mi se od jednom pokazat kako da namjestim da se svaki nakon 30 sekundi pokazuje :S?
Citat: SeYziicH poslato Jul 04, 2011, 16:41:05 POSLE PODNE
Mislim da sam skuzio :P
forward deliverdok();
public OnGameModeInit()
{
if strcmp(text,"/startdeliver",true) {
SetTimer("deliverdok", 10000, false);
}
public deliverdok()
{
TextDrawShowForPlayer(playerid, Text:DockSysteamTextdraw1);
TextDrawShowForPlayer(playerid, Text:DockSysteamTextdraw2);
TextDrawShowForPlayer(playerid, Text:DockSysteamTextdraw3);
TextDrawShowForPlayer(playerid, Text:DockSysteamTextdraw4);
TextDrawShowForPlayer(playerid, Text:DockSysteamTextdraw5);
TextDrawShowForPlayer(playerid, Text:DockSysteamTextdraw6);
TextDrawShowForPlayer(playerid, Text:DockSysteamTextdraw7);
TextDrawShowForPlayer(playerid, Text:DockSysteamTextdraw8);
TextDrawShowForPlayer(playerid, Text:DockSysteamTextdraw9);
TextDrawShowForPlayer(playerid, Text:DockSysteamTextdraw10);
TextDrawShowForPlayer(playerid, Text:DockSysteamTextdraw11);
{
A sad me muci ti svi TextDrawovi ce mi se od jednom pokazat kako da namjestim da se svaki nakon 30 sekundi pokazuje :S?
Nista ne valja! ;S
Kako ces strcmp staviti u OnGameModeInit() ?
i to ces ovako uraditi, pazi:
forward deliverdok();
public OnGameModeInit()
{
if strcmp(text,"/startdeliver",true) {
SetTimer("deliverdok", 10000, true);
}
OnPlayerCommandText(playerid, cmdtext[])
{
if(strcmp(cmdext, "/startdeliver", true) == 0)
{
SetPVarInt(playerid, "Deliver", 1);
}
return 1;
}
public deliverdok()
{
for(new i=0; i<MAX_PLAYERS; i++)
{
switch(GetPVarInt(i, "Deliver"))
{
case 1: { TextDrawShowForPlayer(i, Text:DockSysteamTextdraw1); SetPVarInt(i, "Deliver", 2); }
case 2: { TextDrawShowForPlayer(i, Text:DockSysteamTextdraw2); SetPVarInt(i, "Deliver", 3); }
case 3: { TextDrawShowForPlayer(i, Text:DockSysteamTextdraw3); SetPVarInt(i, "Deliver", 4); }
case 4: { TextDrawShowForPlayer(i, Text:DockSysteamTextdraw4); SetPVarInt(i, "Deliver", 5); }
case 5: { TextDrawShowForPlayer(i, Text:DockSysteamTextdraw5); SetPVarInt(i, "Deliver", 6); }
case 6: { TextDrawShowForPlayer(i, Text:DockSysteamTextdraw6); SetPVarInt(i, "Deliver", 7); }
case 7: { TextDrawShowForPlayer(i, Text:DockSysteamTextdraw7); SetPVarInt(i, "Deliver", 8); }
case 8: { TextDrawShowForPlayer(i, Text:DockSysteamTextdraw8); SetPVarInt(i, "Deliver", 9); }
case 9: { TextDrawShowForPlayer(i, Text:DockSysteamTextdraw9); SetPVarInt(i, "Deliver", 10); }
case 10: { TextDrawShowForPlayer(i, Text:DockSysteamTextdraw10); SetPVarInt(i, "Deliver",11); }
case 11: { TextDrawShowForPlayer(i, Text:DockSysteamTextdraw11); SetPVarInt(i, "Deliver",12); }
}
}
return 1;
}
I upamti ovo: UVIJEK KORISTI Globalne Timere, UVIJEK... (smanjuju lagg)
Takodje umesto
for(new i=0; i<MAX_PLAYERS; i++)
koristi
foreach(Player, i)
Napomena: moras imate #include "foreach" i taj include imati u pawno/include
Hvala vam puno, puuno ste mi pomogli :*