Skripta: CLRP
Problem: Ovako. Jail sistem na CLRPU nije dobar, tj izbacio sam ga skroz ne valja, jel mi moze neko dat jail sistem tj. samo ono /zatvori [vrijeme] /oslobodi i ono pod onplayer spawn i onplayerconnect sta ide....
Slike
Dio skipte
Dodaj u Enum od Player Info ako ga koristis ili nesto tako ja cu ovako dodat
na vrh skripte ako neces sa enumom
new Zatvoren[MAX_PLAYERS];
new ZatvorenVrijeme[MAX_PLAYERS];
Eh sada bi ti trebao pod OnPlayerDisconnect spremati tu varijablu ovisi sve kakav system spremanja koristiš...Isto tako loadati varijablu kad se igrać spoji...
OnPlayerSpawn (Ovo dodaj poslje spawna igraca znaci nakon sto ga stvori na kolodvoru, u kuci ili gdje vec)
if(Zatvoren[playerid] == 1)
{
SendClientMessage(playerid,-1,"{FF0000}*Niste odradili kaznu, vratili smo vas u areju!");
SetTimerEx("ZatvorTimer", 1000,false,"i",playerid);
SetPlayerPos(playerid,X,Y,Z); // Dodaj kordinate od areje
}
Public
forward ZatvorTimer(playerid);
public ZatvorTimer(playerid)
{
if(Zatvoren[playerid] == 1)
{
ZatvorenVrijeme[playerid] -= 1000;
SetTimerEx("ZatvorTimer", 1000,false,"i",playerid);
}
if(ZatvorenVrijeme[playerid] == 0)
{
Zatvoren[playerid] = 0;
SendClientMessage(playerid,-1,"Oslobodjeni ste iz areje");
SetPlayerPos(playerid,X,Y,Z); // stavi kordinate gdje ga treba stavit kad izadje iz areje
}
return 1;
}
Komanda za zatvoriti (sscanf+zcmd)
CMD:zatvori(playerid,params[])
{
new Razlog[250];
new IDKojegZatvaras;
new Vrijeme;
if(sscanf(params, "uds",IDKojegZatvaras,Vrijeme,Razlog)) return SendClientMessage(playerid, -1, "Koristi: /zatvori [ID] [Vrijeme] [Razlog]");
else
{
new Poruka[350];
new ImeAdmina[24];
GetPlayerName(playerid,ImeAdmina,sizeof(ImeAdmina));
new ImeIgraca[24];
GetPlayerName(IDKojegZatvaras,ImeIgraca,sizeof(ImeIgraca));
format(Poruka,sizeof(Poruka),"Zatvoreni ste u areu od admina %s na %d minuta razlog:%s",ImeAdmina,Vrijeme,Razlog);
SendClientMessage(IDKojegZatvaras,-1,Poruka);
format(Poruka,sizeof(Poruka),"Zatvorili ste %s u aeru na %d zbog %s",ImeIgraca,Vrijeme,Razlog);
SendClientMessage(playerid,-1,Poruka);
Zatvoren[playerid] = 1;
new VrijemeZatvora = Vrijeme*1000;
ZatvorenVrijeme[playerid] = VrijemeZatvora;
SetPlayerPos(playerid,0,0,0); // Kordinate areje opet vamo
}
return 1;
}
Ako ga zelis izvadit samo ga zatvori na 0 min i to je to ;)
Nadam se da radi...
Jojjjjjjjjj hvala ti punoooooooooooooooooooooo :D
Javlja mi error "params"
if(!strcmp(cmdtext, "/zatvorii", true))
{
new Razlog[250];
new IDKojegZatvaras;
new Vrijeme;
if(sscanf(params, "uds",IDKojegZatvaras,Vrijeme,Razlog)) return SendClientMessage(playerid, -1, "Koristi: /zatvori [ID] [Vrijeme] [Razlog]");
else
{
new Poruka[350];
new ImeAdmina[24];
GetPlayerName(playerid,ImeAdmina,sizeof(ImeAdmina));
new ImeIgraca[24];
GetPlayerName(IDKojegZatvaras,ImeIgraca,sizeof(ImeIgraca));
format(Poruka,sizeof(Poruka),"Zatvoreni ste u areu od admina %s na %d minuta razlog:%s",ImeAdmina,Vrijeme,Razlog);
SendClientMessage(IDKojegZatvaras,-1,Poruka);
format(Poruka,sizeof(Poruka),"Zatvorili ste %s u aeru na %d zbog %s",ImeIgraca,Vrijeme,Razlog);
SendClientMessage(playerid,-1,Poruka);
Zatvoren[playerid] = 1;
new VrijemeZatvora = Vrijeme*1000;
ZatvorenVrijeme[playerid] = VrijemeZatvora;
SetPlayerPos(playerid,1031.9622803,-1472.8709717,12.5529537); // Kordinate areje opet vamo
}
Jbg, jel mozes ti prebacit, molim te :D
Jbg... Aj ako neko zna bilo bi dobro :)
Meni treba cmd u strmpc :)
2 errora
CMD:zatvori(playerid, params[])
{
stavi ovako
if(!strcmp(cmdtext, "/zatvorii", true))
{
new Razlog[250];
new IDKojegZatvaras;
new Vrijeme;
if(sscanf(cmdtext, "uds",IDKojegZatvaras,Vrijeme,Razlog)) return SendClientMessage(playerid, -1, "Koristi: /zatvori [ID] [Vrijeme] [Razlog]");
else
{
new Poruka[350];
new ImeAdmina[24];
GetPlayerName(playerid,ImeAdmina,sizeof(ImeAdmina));
new ImeIgraca[24];
GetPlayerName(IDKojegZatvaras,ImeIgraca,sizeof(ImeIgraca));
format(Poruka,sizeof(Poruka),"Zatvoreni ste u areu od admina %s na %d minuta razlog:%s",ImeAdmina,Vrijeme,Razlog);
SendClientMessage(IDKojegZatvaras,-1,Poruka);
format(Poruka,sizeof(Poruka),"Zatvorili ste %s u aeru na %d zbog %s",ImeIgraca,Vrijeme,Razlog);
SendClientMessage(playerid,-1,Poruka);
Zatvoren[playerid] = 1;
new VrijemeZatvora = Vrijeme*1000;
ZatvorenVrijeme[playerid] = VrijemeZatvora;
SetPlayerPos(playerid,1031.9622803,-1472.8709717,12.5529537); // Kordinate areje opet vamo
}
return 1;
}
Nece, udjem u igricu kucam /zatvorii i dodje mi poruka "zatvori id igraca vrijeme razlog " i onda kad ukucam /zatvori 0 10 javlja da komanda ne posotji tj da komanda /zatvori nije poznata
to je komanda /zatvorii ne /zatvori xD
probaj /zatvorii 0 1 test
ako nece sa onim starim kodom probaj ovaj
:
if(!strcmp(cmdtext, "/zatvorii", true))
{
new Razlog[250];
new IDKojegZatvaras;
new Vrijeme;
if(sscanf(cmdtext, "udz",IDKojegZatvaras,Vrijeme,Razlog)) return SendClientMessage(playerid, -1, "Koristi: /zatvori [ID] [Vrijeme] [Razlog]");
else
{
new Poruka[350];
new ImeAdmina[24];
GetPlayerName(playerid,ImeAdmina,sizeof(ImeAdmina));
new ImeIgraca[24];
GetPlayerName(IDKojegZatvaras,ImeIgraca,sizeof(ImeIgraca));
format(Poruka,sizeof(Poruka),"Zatvoreni ste u areu od admina %s na %d minuta razlog:%s",ImeAdmina,Vrijeme,Razlog);
SendClientMessage(IDKojegZatvaras,-1,Poruka);
format(Poruka,sizeof(Poruka),"Zatvorili ste %s u aeru na %d zbog %s",ImeIgraca,Vrijeme,Razlog);
SendClientMessage(playerid,-1,Poruka);
Zatvoren[playerid] = 1;
new VrijemeZatvora = Vrijeme*1000;
ZatvorenVrijeme[playerid] = VrijemeZatvora;
SetPlayerPos(playerid,1031.9622803,-1472.8709717,12.5529537); // Kordinate areje opet vamo
}
return 1;
}
i jesam isao /zatvorii samo nisam tu napisao.
Aj sad cu tu probat
nece o5
Neznam onda meni sve radi u ZCMD-u kako treba ....
Znaci u ZCMD-u radi...
Usput neide vrijeme*1000 vec *6000, zabunio sam se :)
CMD:zatvori(playerid,params[])
{
new Razlog[250];
new IDKojegZatvaras;
new Vrijeme;
if(sscanf(params, "uds",IDKojegZatvaras,Vrijeme,Razlog)) return SendClientMessage(playerid, -1, "Koristi: /zatvori [ID] [Vrijeme] [Razlog]");
else
{
new Poruka[350];
new ImeAdmina[24];
GetPlayerName(playerid,ImeAdmina,sizeof(ImeAdmina));
new ImeIgraca[24];
GetPlayerName(IDKojegZatvaras,ImeIgraca,sizeof(ImeIgraca));
format(Poruka,sizeof(Poruka),"Zatvoreni ste u areu od admina %s na %d minuta razlog:%s",ImeAdmina,Vrijeme,Razlog);
SendClientMessage(IDKojegZatvaras,-1,Poruka);
format(Poruka,sizeof(Poruka),"Zatvorili ste %s u aeru na %d zbog %s",ImeIgraca,Vrijeme,Razlog);
SendClientMessage(playerid,-1,Poruka);
Zatvoren[playerid] = 1;
new VrijemeZatvora = Vrijeme*6000;
ZatvorenVrijeme[playerid] = VrijemeZatvora;
SetPlayerPos(playerid,0,0,0); // Kordinate areje opet vamo
SetTimerEx("ZatvorTimer", 1000,false,"i",playerid);
}
return 1;
}
Eo kako mi bude u cmd
Zatvorili ste igraca 49 zbog 3, eto samo to pise nista nije jasno jbt stahor
Citat: BC Aldin Delic poslato Januar 08, 2013, 17:45:14 POSLE PODNE
Eo kako mi bude u cmd
Zatvorili ste igraca 49 zbog 3, eto samo to pise nista nije jasno jbt stahor
Probaj novi include za sscanf i plugin skinut novi...
Ne znam bas i nac to, a iako nadjem nezz hocul znat ubacit o.O :D
Ako ces u STRCMP samo umjesto
params
stavi ovo i radi bez problema :)
cmdtext
Ma teze mi je to nego........ Jel moze neko napravit cmd strmpc al' da radi one nesto stekaju :)
Ma nevalja cmd eo vidite sta meni izbacuje.
C:\Users\PC\Desktop\DD-Derby by Alen\gamemodes\dl-rp.pwn(955) : error 010: invalid function or declaration
C:\Users\PC\Desktop\DD-Derby by Alen\gamemodes\dl-rp.pwn(961) : error 054: unmatched closing brace ("}")
C:\Users\PC\Desktop\DD-Derby by Alen\gamemodes\dl-rp.pwn(974) : error 017: undefined symbol "X"
C:\Users\PC\Desktop\DD-Derby by Alen\gamemodes\dl-rp.pwn(1003) : error 030: compound statement not closed at the end of file (started at line 980)
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
4 Errors.
Stavi umjesto X,Y,Z stavi koordinate gdje ce te zatvorit
Uradio sam nekako komandu al' nece me sad oslobodit tj. stavim na 1 min i cekam 1 min nista, onda idem /zatvori 0 0 , i opet nece tj nece me oslobodit kad istekne vrijeme
if(strcmp(cmd, "/zatvori", true) == 0)
{
if(IsPlayerConnected(playerid))
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GRAD2, "{33FF81}BC {ffffff}| {33F1FF}Pomoc:{ffffff} /mute [ID Igraca/Dio Imena] [vrijeme] [razlog]");
return 1;
}
new playa;
new time;
playa = ReturnUser(tmp);
tmp = strtok(cmdtext, idx);
time = strval(tmp);
if (PlayerInfo[playerid][pAdmin] >= 1 || PlayerInfo[playerid][pGameSage] >= 1)
{
if(IsPlayerConnected(playa))
{
if(playa != INVALID_PLAYER_ID)
{
GetPlayerName(playa, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
new length = strlen(cmdtext);
while ((idx < length) && (cmdtext[idx] <= ' '))
{
idx++;
}
new offset = idx;
new result[128];
new Vrijeme;
while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
{
result[idx - offset] = cmdtext[idx];
idx++;
}
result[idx - offset] = EOS;
if(!strlen(result))
{
SendClientMessage(playerid, COLOR_GRAD2, "{33FF81}BC {ffffff}| {33F1FF}Pomoc:{ffffff} /mute [ID Igraca/Dio Imena] [vrijeme] [razlog]");
return 1;
}
format(string, sizeof(string), "{ffffff}[BC]:"svpl" Admin %s vas je zatvorio u areu na %d minuta. Razlog: %s",sendername,time,(result));
SendClientMessage(playa, SVETLOPLAVA, string);
format(string, sizeof(string), "{e5ed91}Zatvorio si "svpl"%s-a{e5ed91} u areu na"svpl" %d{e5ed91} min. Razlog: %s", giveplayer, time, (result));
SendClientMessage(playerid, WHITE, string);
format(string, sizeof(string), "{aa00f7}Adm | Area: Igrac %s | Admin: %s | Vrijeme: %d | Razlog: %s",giveplayer ,sendername,time,(result));
ABroadCast(WHITE,string,1);
Zatvoren[playerid] = 1;
new VrijemeZatvora = Vrijeme*1000;
ZatvorenVrijeme[playerid] = VrijemeZatvora;
SetPlayerPos(playerid,1031.9622803,-1472.8709717,12.5529537);
}
}
}
else
{
SendClientMessage(playerid, WHITE, "{ffffff}[BC]: {ffff00}Niste ovlasteni za upotrebu te komande!");
}
}
return 1;
}
Jel mozes ti prebaciti? :)
Ok. hvala :)
? :)