Balkan SA:MP

PAWN skriptanje, gamemodovi, filterskripte, include fajlovi, mape, pluginovi => Razgovor u vezi PAWN - skriptanja => Temu započeo: ѕєуzιι¢н™.amx poslato Jul 03, 2011, 22:49:10 POSLE PODNE

Naslov: [Pomoc] Textdraw timer :/
Poruka od: ѕєуzιι¢н™.amx poslato Jul 03, 2011, 22:49:10 POSLE PODNE
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): //
Naslov: Odg: [Pomoc] Textdraw timer :/
Poruka od: Sineša poslato Jul 03, 2011, 22:56:08 POSLE PODNE
http://wiki.sa-mp.com/wiki/SetTimer evo ovo bi trebalo pomoci ako imalo razumijes engleski  ;)
Naslov: Odg: [Pomoc] Textdraw timer :/
Poruka od: System32 poslato Jul 03, 2011, 23:02:08 POSLE PODNE
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...
Naslov: Odg: [Pomoc] Textdraw timer :/
Poruka od: ѕєуzιι¢н™.amx 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?

Naslov: Odg: [Pomoc] Textdraw timer :/
Poruka od: Zarathos poslato Jul 04, 2011, 18:37:51 POSLE PODNE
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)
Naslov: Odg: [Pomoc] Textdraw timer :/
Poruka od: Aleksandar? poslato Jul 04, 2011, 19:21:09 POSLE PODNE
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
Naslov: Odg: [Pomoc] Textdraw timer :/
Poruka od: ѕєуzιι¢н™.amx poslato Jul 04, 2011, 20:28:02 POSLE PODNE
Hvala vam puno, puuno ste mi pomogli :*