[Pomoc]Ubacivanje timera u komandu

Započeo Mikiâ„¢, Februar 27, 2013, 13:20:21 POSLE PODNE

prethodna tema - sledeća tema

0 članova i 3 gostiju pregledaju ovu temu.

Skripta koju koristim:od 0 (pocetnik sam)
Detaljan opis problema:Imam komandu /oruzje kojom igrac osvezava oruzje(za dm server) ali hocu da napravim da ne moze da spama tom komandom odnosno da moze opet da je koristi tek posle 3 minuta.
Dio skripte:CMD:oruzje(playerid, params[])
{
if(IsPlayerConnected(playerid))
{

GivePlayerWeapon(playerid, 31, 500);
GivePlayerWeapon(playerid, 25, 200);
GivePlayerWeapon(playerid, 24, 200);
SendClientMessage(playerid, 0xFF9900AA, "Obnovio si oruzje!");
return 1;
}
return 1;
}

Neke slike/video za lakse dobivanje pomoci(neobavezno)://
BIG RESPECT:Blaeks, SABO(T), |LG|Yui_Sang, Joey_

Hvala,sad cu da probam pa javljam  ;D

EDIT:
Probao sam ne radi izbacuje mi errore :(
Evo errora

C:\Documents and Settings\Administrator\Desktop\Sa-mp\gamemodes\testgm.pwn(300) : error 017: undefined symbol "oruzjet"
C:\Documents and Settings\Administrator\Desktop\Sa-mp\gamemodes\testgm.pwn(300) : warning 215: expression has no effect
C:\Documents and Settings\Administrator\Desktop\Sa-mp\gamemodes\testgm.pwn(300) : error 001: expected token: ";", but found "]"
C:\Documents and Settings\Administrator\Desktop\Sa-mp\gamemodes\testgm.pwn(300) : error 029: invalid expression, assumed zero
C:\Documents and Settings\Administrator\Desktop\Sa-mp\gamemodes\testgm.pwn(300) : fatal error 107: too many error messages on one line

Compilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase


4 Errors.






A evo cele komande sa tim tajmerom:


CMD:oruzje(playerid, params[])
{
if(IsPlayerConnected(playerid))
{

GivePlayerWeapon(playerid, 31, 500);
GivePlayerWeapon(playerid, 25, 200);
GivePlayerWeapon(playerid, 24, 200);
SendClientMessage(playerid, 0xFF9900AA, "Obnovio si oruzje!");
    if(oruzjet[playerid] == true) return SendClientMessage(playerid,-1,  "Komandu mozes koristit nakon 1 minuta/e!");
return 1;
}
return 1;
}
Poslednja Izmena: Februar 27, 2013, 21:38:25 POSLE PODNE od Mish26
BIG RESPECT:Blaeks, SABO(T), |LG|Yui_Sang, Joey_

Na vrh:

new oruzjet[MAX_PLAYERS];
Poslednja Izmena: Februar 27, 2013, 21:40:49 POSLE PODNE od FlasH
BIG RESPEKT: Blaeks,  [CRP] Joey_, David (Sabljak) A.k.A SABO(T), joXy_, Dimi, Sexserghy ♥, TerminuS, H1TM4N

Isto.
BIG RESPECT:Blaeks, SABO(T), |LG|Yui_Sang, Joey_

Citat: Mish26 poslato Februar 27, 2013, 21:45:54 POSLE PODNE
Isto.

Nije moguće kada si ga definirao.
BIG RESPEKT: Blaeks,  [CRP] Joey_, David (Sabljak) A.k.A SABO(T), joXy_, Dimi, Sexserghy ♥, TerminuS, H1TM4N

Citat: FlasH poslato Februar 27, 2013, 21:49:14 POSLE PODNE
Citat: Mish26 poslato Februar 27, 2013, 21:45:54 POSLE PODNE
Isto.

Nije moguće kada si ga definirao.


Onda je nesto do mog retardiranog kompa :)Moze lock,nema veze.
Poslednja Izmena: Februar 27, 2013, 21:58:04 POSLE PODNE od Mish26
BIG RESPECT:Blaeks, SABO(T), |LG|Yui_Sang, Joey_

Citat: |LG|Yui_Sang poslato Februar 27, 2013, 22:03:15 POSLE PODNE
Citat: Mish26 poslato Februar 27, 2013, 21:57:39 POSLE PODNE
Citat: FlasH poslato Februar 27, 2013, 21:49:14 POSLE PODNE
Citat: Mish26 poslato Februar 27, 2013, 21:45:54 POSLE PODNE
Isto.

Nije moguće kada si ga definirao.


Onda je nesto do mog retardiranog kompa :)Moze lock,nema veze.
Dodaj ovo na vrh mesto to sto ti je flash dao

new bool:oruzjet[MAX_PLAYERS] = false;


Aham,nisam ni primjetio da radiš po ovome tutu ... Ispričavam se ..
BIG RESPEKT: Blaeks,  [CRP] Joey_, David (Sabljak) A.k.A SABO(T), joXy_, Dimi, Sexserghy ♥, TerminuS, H1TM4N

Stavio sam ovako,moze compile ali ne radi na serveru.

CMD:oruzje(playerid, params[])
{

    new bool:oruzjet[MAX_PLAYERS] = false;
if(IsPlayerConnected(playerid))
{
GivePlayerWeapon(playerid, 25, 200);
GivePlayerWeapon(playerid, 24, 200);
SendClientMessage(playerid, 0xFF9900AA, "Obnovio si oruzje!");
if(oruzjet[playerid] == true) return SendClientMessage(playerid,-1,  "Komandu mozes koristit nakon (TVOJ BROJ) minuta/e!");
        oruzjet[playerid] = true;
SetTimerEx("oruzje", 60000, false, "d", playerid);
return 1;
}
return 1;
}
BIG RESPECT:Blaeks, SABO(T), |LG|Yui_Sang, Joey_

CMD:oruzje(playerid, params[])
{

   
if(IsPlayerConnected(playerid))
{
f(oruzjet[playerid] == true) return SendClientMessage(playerid,-1,  "Komandu mozes koristit nakon (TVOJ BROJ) minuta/e!");
        oruzjet[playerid] = true;
SetTimerEx("oruzje", 60000, false, "d", playerid);
        GivePlayerWeapon(playerid, 25, 200);
GivePlayerWeapon(playerid, 24, 200);
SendClientMessage(playerid, 0xFF9900AA, "Obnovio si oruzje!");
i
return 1;
}
return 1;
}

Tako napravi komandu, jer provjera if(oruzjet[playerid] == true) na dnu komande nema smisla, igracu ce se obnovit oruzje imao on zabranu koristenja komande ili ne.. Ovako kada ti je na vrhu onda prvo provjerava ima li zabranu pa ako nema daje mu oruzja, a ako ima ispisuje mu poruku da nemoze koristit komandu

Ovo dodaj na vrh skripte

new bool:oruzjet[MAX_PLAYERS] = false;
Poslednja Izmena: Februar 27, 2013, 22:29:50 POSLE PODNE od Alycone

Ove erore mi izbacuje kada stoji na vrhu skripte

C:\Documents and Settings\Administrator\Desktop\Sa-mp\gamemodes\testgm.pwn(300) : error 017: undefined symbol "oruzjet"
C:\Documents and Settings\Administrator\Desktop\Sa-mp\gamemodes\testgm.pwn(300) : warning 215: expression has no effect
C:\Documents and Settings\Administrator\Desktop\Sa-mp\gamemodes\testgm.pwn(300) : error 001: expected token: ";", but found "]"
C:\Documents and Settings\Administrator\Desktop\Sa-mp\gamemodes\testgm.pwn(300) : error 029: invalid expression, assumed zero
C:\Documents and Settings\Administrator\Desktop\Sa-mp\gamemodes\testgm.pwn(300) : fatal error 107: too many error messages on one line

Compilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase


4 Errors.


A kad stoji na vrhu komande nema erora ali onda ne radi na serveru, tj. nema tajmera, moze  da se spamuje
BIG RESPECT:Blaeks, SABO(T), |LG|Yui_Sang, Joey_

Rekao sam ti zasto timer ne radi, provjera ti je na dnu, znaci prvo dobijes oruzje pa provjerava imas li zabranu koristenja komande, taj problem rijesis tako da provjeru postavis na vrh komande..



CMD:oruzje(playerid, params[])
{

        new bool:oruzjet[MAX_PLAYERS] = false;
if(IsPlayerConnected(playerid))
{
if(oruzjet[playerid] == true) return SendClientMessage(playerid,-1,  "Komandu mozes koristit nakon (TVOJ BROJ) minuta/e!");
        oruzjet[playerid] = true;
SetTimerEx("oruzje", 60000, false, "d", playerid);
        GivePlayerWeapon(playerid, 25, 200);
GivePlayerWeapon(playerid, 24, 200);
SendClientMessage(playerid, 0xFF9900AA, "Obnovio si oruzje!");

return 1;
}
return 1;
}


Stavi tako pa reci jel radi..

Ako imaš tako veliki problem oko toga napravi to jednostavnije:

Na vrhu stavi:


new koristiokomandu[MAX_PLAYERS];

Dodaj u komandu:

if(gettime() < koristiokomandu[playerid]) return SendClientMessage(playerid, TVOJA_BOJA, "Ovu komandu možeš koristit svakih TVOJ_BROJ.");
koristiokomandu[playerid] = gettime() + BROJ_TVOJ;
BIG RESPEKT: Blaeks,  [CRP] Joey_, David (Sabljak) A.k.A SABO(T), joXy_, Dimi, Sexserghy ♥, TerminuS, H1TM4N

Citat: Alycone poslato Februar 27, 2013, 22:39:38 POSLE PODNE
Rekao sam ti zasto timer ne radi, provjera ti je na dnu, znaci prvo dobijes oruzje pa provjerava imas li zabranu koristenja komande, taj problem rijesis tako da provjeru postavis na vrh komande..



CMD:oruzje(playerid, params[])
{

        new bool:oruzjet[MAX_PLAYERS] = false;
if(IsPlayerConnected(playerid))
{
if(oruzjet[playerid] == true) return SendClientMessage(playerid,-1,  "Komandu mozes koristit nakon (TVOJ BROJ) minuta/e!");
        oruzjet[playerid] = true;
SetTimerEx("oruzje", 60000, false, "d", playerid);
        GivePlayerWeapon(playerid, 25, 200);
GivePlayerWeapon(playerid, 24, 200);
SendClientMessage(playerid, 0xFF9900AA, "Obnovio si oruzje!");

return 1;
}
return 1;
}


Stavi tako pa reci jel radi..


Ne radi na serveru,compile radi.Prekopirao sam isto.
BIG RESPECT:Blaeks, SABO(T), |LG|Yui_Sang, Joey_

Napravi sta sam ti rekao
BIG RESPEKT: Blaeks,  [CRP] Joey_, David (Sabljak) A.k.A SABO(T), joXy_, Dimi, Sexserghy ♥, TerminuS, H1TM4N

Citat: FlasH poslato Februar 27, 2013, 22:44:14 POSLE PODNE
Ako imaš tako veliki problem oko toga napravi to jednostavnije:

Na vrhu stavi:


new koristiokomandu[MAX_PLAYERS];

Dodaj u komandu:

if(gettime() < koristiokomandu[playerid]) return SendClientMessage(playerid, TVOJA_BOJA, "Ovu komandu možeš koristit svakih TVOJ_BROJ.");
koristiokomandu[playerid] = gettime() + BROJ_TVOJ;


Ni ovo ne radi
BIG RESPECT:Blaeks, SABO(T), |LG|Yui_Sang, Joey_