Skripta koju koristim: Svoje nesto
Detaljan opis problema: Nece da zaledi igrace,samo im ispise poruku
Dio skripte:
if(strcmp(cmd, "/tflp", true) == 0)
{
if(IgracLogovan[playerid] == 1)
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GRAD2, "{ffffff}EL Pomoc| {00C0FF}/tflp [vrijeme]");
return 1;
}
new playa;
new time,Float:Pos[3];
time = strval(tmp);
if (PlayerInfo[playerid][pAdmin] >= 1 || PlayerInfo[playerid][pGameXpert] >= 4)
{
imeigraca(playerid, sendername);
new length = strlen(cmdtext);
while ((idx < length) && (cmdtext[idx] <= ' '))
{
idx++;
}
new offset = idx;
if(time > 5000)
{
SCM(playerid,SIVA,"{F3FF02}[EL] Adm | {1fb5f0}Ne manje od 1 minute i vise od 5000 minuta!");
return 1;
}
GetPlayerPos(playerid,Pos[0],Pos[1], Pos[2]);
for(new idigraca; idigraca < MAX_PLAYERS; idigraca++)
{
if(IsPlayerConnected(idigraca) && idigraca != playerid)
{
if(IsPlayerInRangeOfPoint(idigraca,30, Pos[0],Pos[1], Pos[2]) && IsPlayerConnected(idigraca))
{
new string1[256];
format(string1, sizeof(string1), "{ffffff}[EL]: {00C0FF}Admin/GX %s vas je zaledio na %d minuta.",sendername,time);
SCM(idigraca,SIVA,string1);
TogglePlayerControllable(playa, 0);
PlayerFreezed[playa] = 1;
}
}
}
format(string, sizeof(string), "{F3FF02}[EL] Adm | {1fb5f0}Zaledili ste igraca u vasoj okolini na %d minuta.",time);
SendClientMessage(playerid, SIVA, string);
}
else
{
SCM(playerid,COLOR_NICERED,"{ffffff}[EL]: {f3ff02}Nemate ovlastenje za upotrebu ove komande!");
}
}
return 1;
}
Neke slike/video za lakse dobivanje pomoci(neobavezno): Ako bude bilo potrebe
Ova komanda radi samo kad si blizu igraca koliko vidim, jesi bio blizu igraca kada si probao da ga freeze?
Ma jesam ali opet nista
new Frozen[MAX_PLAYERS];
CMD:freeze(playerid, params[])
{
new id;
if(isnull(params)) return SendClientMessage(playerid, -1, "Koristi: /freeze <Player ID>");
sscanf(params, "uis[50]", id);
if(IsPlayerConnected(id))
{
if(pInfo[id][Frozen] == 1) return SendClientMessage(playerid,-1,"Igrac je vec zamrznut !");
format(Jstring,sizeof(Jstring),"Administrator %s has frozen player '%s' | Reason: %s",GetName(playerid),GetName(id));
else format(Jstring,sizeof(Jstring),"Administrator %s has frozen '%s'",GetName(playerid),GetName(id));
SendClientMessageToAll(red,Jstring);
Frozen[id] = 1;
TogglePlayerControllable(id, false);
}
return 1;
}
Citat: arnel avdic poslato Januar 22, 2015, 12:09:00 POSLE PODNE
new Frozen[MAX_PLAYERS];
CMD:freeze(playerid, params[])
{
new id;
if(isnull(params)) return SendClientMessage(playerid, -1, "Koristi: /freeze <Player ID>");
sscanf(params, "uis[50]", id);
if(IsPlayerConnected(id))
{
if(pInfo[id][Frozen] == 1) return SendClientMessage(playerid,-1,"Igrac je vec zamrznut !");
format(Jstring,sizeof(Jstring),"Administrator %s has frozen player '%s' | Reason: %s",GetName(playerid),GetName(id));
else format(Jstring,sizeof(Jstring),"Administrator %s has frozen '%s'",GetName(playerid),GetName(id));
SendClientMessageToAll(red,Jstring);
Frozen[id] = 1;
TogglePlayerControllable(id, false);
}
return 1;
}
ti s tom komandom mu nisi ništa pomoga
OT: ostavi se stcmp uvati se zcmd i sscanfa
Ama ja imam cmd da zaledim igraca vec ocu kad ukucam /tflp neko vrijeme da zaledi sve igrace u mojoj blizini
Pa preko IsPlayerInRangeOfPoint sredis to ako vec hoces da ih mutiras samo u tvojoj blizini...
CMD:tflp(playerid,params[])
{
if(IgracLogovan[playerid] < 1) return SCM(playerid,-1,"Morate se logovati!");
new vrijeme;
if(sscanf(params, "dddfff", vrijeme )) return SendClientMessage(playerid, -1, "/tflp [vrijeme]");
if (PlayerInfo[playerid][pAdmin] >= 1 || PlayerInfo[playerid][pGameXpert] >= 4) return SCM(playerid,-1,"Niste ovlasteni za ovu komandu!");
if(vrijeme > 5000) return SCM(playerid,SIVA,"{F3FF02}[EL] Adm | {1fb5f0}Ne manje od 1 minute i vise od 5000 minuta!");
new Pos[3];
GetPlayerPos(playerid,Pos[0],Pos[1], Pos[2]);
for(new idigraca; idigraca < MAX_PLAYERS; idigraca++)
{
if(IsPlayerConnected(idigraca) && idigraca != playerid)
{
if(IsPlayerInRangeOfPoint(idigraca,30, Pos[0],Pos[1], Pos[2]) && IsPlayerConnected(idigraca))
{
new string1[256];
format(string1, sizeof(string1), "{ffffff}[EL]: {00C0FF}Admin/GX %s vas je zaledio na %d minuta.",GetName(playerid),vrijeme);
SCM(idigraca,SIVA,string1);
TogglePlayerControllable(playa, 0);
PlayerFreezed[playa] = 1;
format(string, sizeof(string), "{F3FF02}[EL] Adm | {1fb5f0}Zaledili ste igrace u vasoj okolini na %d minuta.",vrijeme);
SendClientMessage(playerid, SIVA, string);
}
}
}
return 1;
}
pokusaj
if (PlayerInfo[playerid][pAdmin] >= 1 || PlayerInfo[playerid][pGameXpert] >= 4) return SCM(playerid,-1,"Niste ovlasteni za ovu komandu!");
Meni se cini da ce ovo moc koristiti igraci jer si stavio ako je admin lvl veci od 1 da mu vrati niste ovlasteni .
Citat: X_G1 poslato Januar 22, 2015, 19:07:06 POSLE PODNE
if (PlayerInfo[playerid][pAdmin] >= 1 || PlayerInfo[playerid][pGameXpert] >= 4) return SCM(playerid,-1,"Niste ovlasteni za ovu komandu!");
Meni se cini da ce ovo moc koristiti igraci jer si stavio ako je admin lvl veci od 1 da mu vrati niste ovlasteni .
Tacno nisam gledao pošto sam od njega kopirao ovako treba
if (PlayerInfo[playerid][pAdmin] < 1|| PlayerInfo[playerid][pGameXpert] < 4) return SCM(playerid,-1,"Niste ovlasteni za ovu komandu!");
Ne ne radi komanda kako si je ti tako napravio
Nigdje ne koristiÅ¡ tajmer da bi odledio igraÄa, ja mislim da bi ti ovako trebalo biti.
for(new i=0; i<MAX_PLAYERS; i++)
{
GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]);
if(IsPlayerInRangeOfPoint(i, 50.0, Pos[0], Pos[1], Pos[2]);
TogglePlayerControllable(i, 0);
SetTimer("Unfreeze", vrijeme*1000*60, false);
}
forward Unfreeze()
public Unfreeze()
{
for(new i=0; i<MAX_PLAYERS; i++)
{
if(IgracZaledjen[i])
{
TogglePlayerControllable(i, 1);
}
}
}
EDIT: evo ti Äitava komanda
CMD:freezeinradius(playerid, help[])
{
new vrijeme;
new str[128];
new Float:Pos[3];
if(sscanf(params, "i", vrijeme)) return SendClientMessage(playerid, -1, "KORISTENJE: /freezeinradius [Vrijeme]");
if(PlayerInfo[playerid][pAdmin] >= 1 || PlayerInfo[playerid][pGameXpert]) return SendClientMessage(playerid, -1, "Niste ovlasteni za koristenje ove komande");
for(new i=0; i<MAX_PLAYERS; i++)
{
GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]);
if(IsPlayerInRangeOfPoint(i, 50.0, Pos[0], Pos[1], Pos[2]);
TogglePlayerControllable(i, 0);
SetTimer("Unfreeze", vrijeme*1000*60, false);
format(str, sizeof(str), "GameAdmin %s je zaledio sve igrace u radiusu od 50 metara.", GetName(playerid));
SendClientMessageToAll(-1, str);
}
return 1;
}