PDA

View Full Version : checking rank



Ni3ls
26th June 2015, 12:21
if(isdefined(self.rank) && self.rank <50)
{
self iprintlnbold("RANK: "+self.rank);
self iprintlnbold("not enough rank");
return;
}
Code to load the rank of the player

checkrank()
{
self.rank=0;
if(self getGuid() != 0)
{
f=openfile("ranks/"+self getGuid()+".cfg","read");
if (f != -1)
{
freadln(f);
self.rank=int(fgetarg(f,0));
closefile(f);
}
}
else
{
f=openfile("ranks/"+self getIP()+".cfg","read");
if (f != -1)
{
freadln(f);
self.rank=int(fgetarg(f,0));
closefile(f);
}
}
self iprintlnbold("Rank: "+self.rank);
}


In my screen I get RANK: 100 and not enough rank. But my self.rank is bigger than 50. So why does it give me that message? I think its a simple mistake but I dont see it

IzNoGoD
26th June 2015, 14:18
Probably wrong usage of self somewhere. Show how all code is called.

Also run it in developer 1 mode.

Ni3ls
26th June 2015, 14:53
self thread checkrank(); on playerconnected

checkrank()
{
self.rank=0;
if(self getGuid() != 0)
{
f=openfile("ranks/"+self getGuid()+".cfg","read");
if (f != -1)
{
freadln(f);
self.rank=fgetarg(f,0);
closefile(f);
}
}
else
{
f=openfile("ranks/"+self getIP()+".cfg","read");
if (f != -1)
{
freadln(f);
self.rank=fgetarg(f,0);
closefile(f);
}
}
self iprintlnbold("Rank: "+self.rank);
}


callbacksetup

CodeCallback_PlayerCommand(args)
{
output = "";
for (i=0; i<args.size; i++)
output += args[i] + ", ";

//std\io::print("PLAYER COMMAND! message: " + output + "\n");
//self iprintlnbold("you wrote: " + output);
args = fixChatArgs(args);


if (args[0] == "say" && isDefined(args[1]) && args[1][0] == "!")
{
switch (getSubStr(args[1], 1))
{
case "kick":
if(isdefined(self.rank) && self.rank <50)
{
self iprintlnbold("RANK: "+self.rank);
self iprintlnbold("not enough rank");
return;


Error:

pair '100' and '50' has unmatching types 'string' and 'int'

NVM: It was loading old script somehow. I added
self.rank=int(fgetarg(f,0));