[pomoć] Kako napraviti komandu ,/wish

Započeo dane_1, Decembar 19, 2011, 18:23:51 POSLE PODNE

prethodna tema - sledeća tema

0 članova i 4 gostiju pregledaju ovu temu.

Skripta koju koristim: LARP
Detaljan opis problema: Ovako ,sto se tice bozica,zelim napraviti komandu /wish,odnosno zelja..Kad je igrac na odredenom mjestu da moze koristit tu komandu..I svi sto to kucaju da se sprema na notepad u gamepanelu..Ako shvacate :P..
Dio skripte:/
Neke slike/video za lakse dobivanje pomoci(neobavezno):/

Edit again,uspio sam evo komande al kako samo jos tu dodat da igrac samo jednom moze koristit tu komandu
if(strcmp(cmd, "/wish", true) == 0)
{
   if(IsPlayerConnected(playerid))
   {
new length = strlen(cmdtext);
while ((idx < length) && (cmdtext[idx] <= ' '))
{
idx++;
}
new offset = idx;
new result[128];
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, "Korištenje: /wish [text-zelja]");
return 1;
}
new y,m,d;
new h,mi,s;
getdate(y,m,d);
gettime(h,mi,s);
format(string, sizeof(string),"(%d/%d/%d)[%d:%d:%d] /wish %s: %s",d,m,y,h,mi,s,sendername, (result));
WishLog(string);
}
return 1;
}
Poslednja Izmena: Decembar 19, 2011, 21:17:02 POSLE PODNE od Koksildo


Pitam kako napravit da se moze samo 1,a ovo cu probat kasnije ubacit u komandu

Postavi parametar kad koristi komandu da mu postavi recimo na 1, i da nemoze koristit komandu kad mu je taj parametar na 1. Ako zelis da nemoze ni poslje reloga koristit onda stavi da mu se sprema u acc taj parametar
Street's Creed

Street's Creed gaming zajednica se vraća.
Forum: www.streets-creed.info
IP: 213.149.60.34:7774

Citat: [SC] ScHaLe poslato Decembar 19, 2011, 21:23:07 POSLE PODNE
Postavi parametar kad koristi komandu da mu postavi recimo na 1, i da nemoze koristit komandu kad mu je taj parametar na 1. Ako zelis da nemoze ni poslje reloga koristit onda stavi da mu se sprema u acc taj parametar

Kako ? Zato sam i stavio ovdje -.-'

aaa, nisam te razumeo dobro... pa gledaj ovako, da bi on samo jednom mogao da iskoristi tu komandu zauvek, onda moras da napravis sejvanje u statstima, larp koristi dini pa bi to islo ovako...
pod enum pinfo stavis sledece

pZelja,

tj evo ti kako to izgleda pocetak


enum pInfo
{
pKey,
pLevel,
pSpawn,
pAdmin,
       pZelja,
dole su ostale stvari...


onda nadjes u skripti pomocu ctrl + f sledece

PlayerInfo[playerid][pPhousekey] = 9999;

to je inace negde izmedju linije 5500 i 5580 , zavisi dal si nesto editovao i sl...

i ispod toga dodas

PlayerInfo[playerid][pZelja] = 0;

onda pronadjes ovo u skripti

dini_IntSet(string3, "AdminLevel",PlayerInfo[playerid][pAdmin]);

to je negde izmedju linije 27300 i 27400

i dodas ispod

dini_IntSet(string3, "Zelja",PlayerInfo[playerid][pZelja]);

onda pod public OnPlayerUpdateEx(playerid)

ispod ovoga

dini_IntSet(string3, "AdminLevel",PlayerInfo[playerid][pAdmin]);

dodas ovo
dini_IntSet(string3, "Zelja",PlayerInfo[playerid][pZelja]);

zatim pod public OnPlayerLogin(playerid,password[])

ispod ovoga

PlayerInfo[playerid][pAdmin] = dini_Int(string2,"AdminLevel");

dodas ovo

PlayerInfo[playerid][pZelja] = dini_Int(string2,"Zelja");

zatim onda ovo uradis u svojoj komandi, tj ovo ti je komanda

if(strcmp(cmd, "/wish", true) == 0)
{
    if(IsPlayerConnected(playerid))
    {
            if(PlayerInfo[playerid][pZelja] == 1)
   {
   SendClientMessage(playerid, COLOR_WHITE, "Vec si pozeleo zelju!");
           return 0;
   }
new length = strlen(cmdtext);
while ((idx < length) && (cmdtext[idx] <= ' '))
{
idx++;
}
new offset = idx;
new result[128];
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, "Korištenje: /wish [text-zelja]");
return 1;
}
                        PlayerInfo[playerid][pZelja] = 1;
new y,m,d;
new h,mi,s;
getdate(y,m,d);
gettime(h,mi,s);
format(string, sizeof(string),"(%d/%d/%d)[%d:%d:%d] /wish %s: %s",d,m,y,h,mi,s,sendername, (result));
WishLog(string);
}
return 1;
}


Naravno ti podesi lepo u komandi da mu stavi zlju na 1, tj stavis tamo de mu i upisuje zelju, nemogu sad da trazim lakse je tebi to...
nadam se da si razumeo sta sam ti gore ispisao...  :D

Zašto da to dodaje u igračev enum? Bolje da jednostavno
new bool:Wish[MAX_PLAYERS];

Te jednostavno kad iskoristi komandu

Wish[playerid] = true;

I onda provjera dali igrač već napravio želju

if(Wish[playerid] == true) return SCM(playerid,-1,"nemozete koristit vec ste koristili");

I tebi Dane preporučavam da koristiš ycmd i sscanf , skratit ćeš si komandu na 6,7 linija i smanjit ćeš lag i optimizirat skriptu.

Citat: [SC] ScHaLe poslato Decembar 19, 2011, 21:23:07 POSLE PODNE
Postavi parametar kad koristi komandu da mu postavi recimo na 1, i da nemoze koristit komandu kad mu je taj parametar na 1. Ako zelis da nemoze ni poslje reloga koristit onda stavi da mu se sprema u acc taj parametar

Znaš ti šta znači parametar?

To Å¡to si ti rekao je vrijednost varijable a ne parametar.
Poslednja Izmena: Decembar 20, 2011, 03:01:42 PRE PODNE od 20 Dollar Nosebleed
"I'm a loser and a user so I don't need no accuser" - Billie Joe Armstrong

Citat: 20 Dollar Nosebleed poslato Decembar 20, 2011, 02:23:37 PRE PODNE
Zašto da to dodaje u igračev enum? Bolje da jednostavno
new bool:Wish[MAX_PLAYERS];

Te jednostavno kad iskoristi komandu

Wish[playerid] = true;

I onda provjera dali igrač već napravio želju

if(Wish[playerid] == true) return SCM(playerid,-1,"nemozete koristit vec ste koristili");

I tebi Dane preporučavam da koristiš ycmd i sscanf , skratit ćeš si komandu na 6,7 linija i smanjit ćeš lag i optimizirat skriptu.

Citat: [SC] ScHaLe poslato Decembar 19, 2011, 21:23:07 POSLE PODNE
Postavi parametar kad koristi komandu da mu postavi recimo na 1, i da nemoze koristit komandu kad mu je taj parametar na 1. Ako zelis da nemoze ni poslje reloga koristit onda stavi da mu se sprema u acc taj parametar

Znaš ti šta znači parametar?

To Å¡to si ti rekao je vrijednost varijable a ne parametar.

Pa ako mu nedoda u profil, onda ce pamtiti samo dok on neode offline, a on hoce da i posle logina to ima...

probat cu na tedr cmd od sada sam daovo rjesim probat cu kad budem na kompu