Pomoc u vezi "giveplayerid = ReturnUser(tmp)"

Započeo [CM] BrunoHP, Jul 28, 2010, 12:07:17 POSLE PODNE

prethodna tema - sledeća tema

0 članova i 3 gostiju pregledaju ovu temu.

Pozdrav, poceo sam raditi DM scriptu i kada sam htjeo ubaciti amin system, sve sam ok radio. Cim sam stavio "/kick" komandu javlja mi se error u vezi redu "giveplayerid = ReturnUser(tmp);". Prvo mi kaze kako ne postoji ReturnUser pa sam dodao na pocetku OnPlayerCommandText -> new ReturnUser . Evo kako izgleda ispod OPCT:

public OnPlayerCommandText(playerid, cmdtext[])
{
   new cmd[256];
   new string[256];
new sendername[MAX_PLAYER_NAME];
new giveplayer[MAX_PLAYER_NAME];
new giveplayerid, idx;
new ReturnUser;
cmd = strtok(cmdtext, idx);
   cmd = strtok(cmdtext, idx);
new tmp[256];
   new playername[MAX_PLAYER_NAME];


Dalje su komande...

E, a ovako izgleda komanda kick preuzeta iz GF:[/b]

if(strcmp(cmd, "/kick", true) == 0)
{
   if(IsPlayerConnected(playerid))
   {
    tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_WHITE, "KORISTITE: /kick [ID/Ime] [razlog]");
return 1;
}
giveplayerid = ReturnUser(tmp);
if(PlayerInfo[playerid][pAdmin] >= 1)
{
if(IsPlayerConnected(giveplayerid))
{
   if(giveplayerid != INVALID_PLAYER_ID)
   {
   GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
new length = strlen(cmdtext);
while ((idx < length) && (cmdtext[idx] <= ' '))
{
idx++;
}
new offset = idx;
new result[64];
while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
{
result[idx - offset] = cmdtext[idx];
idx++;
}
result[idx - offset] = EOS;
if(!strlen(result))
{
SendClientMessage(playerid, COLOR_WHITE, "KORISTITE: /kick [ID/Ime] [razlog]");
return 1;
}
new year, month,day;
getdate(year, month, day);
format(string, sizeof(string), "Admin %s je izbacio(kickao) igraca %s sa servera. Razlog: %s", sendername, giveplayer, (result));
KickLog(string);
format(string, sizeof(string), "Admin %s je izbacio(kickao) igraca %s sa servera. Razlog: %s", sendername, giveplayer, (result));
SendClientMessageToAll(COLOR_LIGHTRED, string);
Kick(giveplayerid);
return 1;
}
}
}
else
{
format(string, sizeof(string), "%d nije aktivan igrac.", giveplayerid);
SendClientMessage(playerid, COLOR_GRAD1, string);
}
}
return 1;
}


I ovo je error koji se javlja u redu gdje se nalazi "giveplayerid = ReturnUser(tmp);":
C:\Documents and Settings\Laptop\Desktop\CroMafia\gamemodes\cmr.pwn(576) : warning 219: local variable "ReturnUser" shadows a variable at a preceding level
C:\Documents and Settings\Laptop\Desktop\CroMafia\gamemodes\cmr.pwn(771) : error 012: invalid function call, not a valid address
C:\Documents and Settings\Laptop\Desktop\CroMafia\gamemodes\cmr.pwn(771) : warning 215: expression has no effect
C:\Documents and Settings\Laptop\Desktop\CroMafia\gamemodes\cmr.pwn(771) : error 001: expected token: ";", but found ")"
C:\Documents and Settings\Laptop\Desktop\CroMafia\gamemodes\cmr.pwn(771) : error 029: invalid expression, assumed zero
C:\Documents and Settings\Laptop\Desktop\CroMafia\gamemodes\cmr.pwn(771) : 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.

Hvala unaprijed!


Poslednja Izmena: Jul 28, 2010, 12:07:39 POSLE PODNE od BrunoHP

Imas ReturnPlayer funkciju?

Ako nemas dodaj ju:

ReturnUser(text[], playerid = INVALID_PLAYER_ID)
{
new pos = 0;
while (text[pos] < 0x21) // Strip out leading spaces
{
if (text[pos] == 0) return INVALID_PLAYER_ID; // No passed text
pos++;
}
new userid = INVALID_PLAYER_ID;
if (IsNumeric(text[pos])) // Check whole passed string
{
// If they have a numeric name you have a problem (although names are checked on id failure)
userid = strval(text[pos]);
if (userid >=0 && userid < MAX_PLAYERS)
{
if(!IsPlayerConnected(userid))
{
/*if (playerid != INVALID_PLAYER_ID)
{
SendClientMessage(playerid, 0xFF0000AA, "User not connected");
}*/
userid = INVALID_PLAYER_ID;
}
else
{
return userid; // A player was found
}
}
/*else
{
if (playerid != INVALID_PLAYER_ID)
{
SendClientMessage(playerid, 0xFF0000AA, "Invalid user ID");
}
userid = INVALID_PLAYER_ID;
}
return userid;*/
// Removed for fallthrough code
}
// They entered [part of] a name or the id search failed (check names just incase)
new len = strlen(text[pos]);
new count = 0;
new name[MAX_PLAYER_NAME];
for (new i = 0; i < MAX_PLAYERS; i++)
{
if (IsPlayerConnected(i))
{
GetPlayerName(i, name, sizeof (name));
if (strcmp(name, text[pos], true, len) == 0) // Check segment of name
{
if (len == strlen(name)) // Exact match
{
return i; // Return the exact player on an exact match
// Otherwise if there are two players:
// Me and MeYou any time you entered Me it would find both
// And never be able to return just Me's id
}
else // Partial match
{
count++;
userid = i;
}
}
}
}
if (count != 1)
{
if (playerid != INVALID_PLAYER_ID)
{
if (count)
{
SendClientMessage(playerid, 0xFF0000AA, "Multiple users found, please narrow earch");
}
else
{
SendClientMessage(playerid, 0xFF0000AA, "No matching user found");
}
}
userid = INVALID_PLAYER_ID;
}
return userid; // INVALID_USER_ID for bad return
}


RESPECT 4 EVER: John, GLC,bAndzi, Nikola, Sop, Zoki, Bruno_Venuti, Mele, Luka P,ExtremePower,Wang(neki kineski frajer)

NAJBOLJI CITATI:
Citat: [GF]Alive poslato Jun 24, 2010, 18:20:19 POSLE PODNE
Paizte ljud mozda je KayLoger! ! !
MOJI RADOVI:
[FS]Trofeji


Bilo gdje u skripti samo ne u neki callback.


RESPECT 4 EVER: John, GLC,bAndzi, Nikola, Sop, Zoki, Bruno_Venuti, Mele, Luka P,ExtremePower,Wang(neki kineski frajer)

NAJBOLJI CITATI:
Citat: [GF]Alive poslato Jun 24, 2010, 18:20:19 POSLE PODNE
Paizte ljud mozda je KayLoger! ! !
MOJI RADOVI:
[FS]Trofeji

E sada sam popravio taj error ali mi se javlja drugi koji govori da ima negdje jos u scripti a nema nigdje osim "giveplayerid = ReturnUser(tmp) na /kick i ostalim komandama koje ih trebaju.
C:\Documents and Settings\Laptop\Desktop\CroMafia\gamemodes\cmr.pwn(95) : error 021: symbol already defined: "ReturnUser"
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase


6 Errors.

Poslednja Izmena: Jul 28, 2010, 13:41:47 POSLE PODNE od BrunoHP

Onda makni, daj molim te pricekaj da ti nekod rugi odgovori jer sam se proteklih 2h mucio s skriptom imam velikih problema i sva logika mi je otkazala u glavi.  :-[


EDIT: Samo izbrisi onu varijablu ReturnUser pod OnPlayerCommandText callbackom.
Poslednja Izmena: Jul 28, 2010, 23:04:22 POSLE PODNE od LordShigi


RESPECT 4 EVER: John, GLC,bAndzi, Nikola, Sop, Zoki, Bruno_Venuti, Mele, Luka P,ExtremePower,Wang(neki kineski frajer)

NAJBOLJI CITATI:
Citat: [GF]Alive poslato Jun 24, 2010, 18:20:19 POSLE PODNE
Paizte ljud mozda je KayLoger! ! !
MOJI RADOVI:
[FS]Trofeji

Bio sam to obrisao vec ali sam stavio tu ReturnUser funkciju na pocetak scripte odmah prije ovoga sto bude hrpa new i ispod definea. Sad nisam na svom laptopu pa ti mogu samo reci kako sam to stavio.

Fakat neznam... Mozda dok prespavam se sjetim necega.


RESPECT 4 EVER: John, GLC,bAndzi, Nikola, Sop, Zoki, Bruno_Venuti, Mele, Luka P,ExtremePower,Wang(neki kineski frajer)

NAJBOLJI CITATI:
Citat: [GF]Alive poslato Jun 24, 2010, 18:20:19 POSLE PODNE
Paizte ljud mozda je KayLoger! ! !
MOJI RADOVI:
[FS]Trofeji


ReturnUser je funkcija .. ovo "new ReturnUser;" ti netreba omg
Vikend je policija nas hvata,
vikend je ode cijela plata,
oko nas stvari ukradene,
sve smo dali na planove i sheme..
||||:=:=:=:=:=:=::=:=:=:=:=:=:=:THE IVEX:=:=:=:=:=:=:=:=:=::=:=:=:=:=:=::=:|||| 


PS: Ne saljite mi nikakve pm jer neodgovaram na njih! Ako trebate nes pitajte ove pr0 skriptere pa neka vam kazu!Hvala !

Fala vam na pomoci ali sam samo trebo dodat include "utils" i rjesen problem xD! Opet bez vase pomoci nebi se toga sjetio xD

Haha, omg, kako sam glup. Jednostavije nemoze biti.


RESPECT 4 EVER: John, GLC,bAndzi, Nikola, Sop, Zoki, Bruno_Venuti, Mele, Luka P,ExtremePower,Wang(neki kineski frajer)

NAJBOLJI CITATI:
Citat: [GF]Alive poslato Jun 24, 2010, 18:20:19 POSLE PODNE
Paizte ljud mozda je KayLoger! ! !
MOJI RADOVI:
[FS]Trofeji