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)://
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;
}
Na vrh:
new oruzjet[MAX_PLAYERS];
Isto.
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 ..
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;
}
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;
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
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;
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.
Napravi sta sam ti rekao
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
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;
Izvinjavam se zbog duplog posta,net mi baguje
Reseno,moze lock.
Problem riješen, lock.