21.12.2012, 10:17
Hey. Recently I changed my file writing include from Double o' Files 2 to y_ini as I read its faster and more reliable. The problem is that when I come back from school and check new account, some random people have their admin level set to 3 and helper status set to 1 (1 is true/0 is false). I cant see where I made a mistake as only rcon admin can make people admins and testers and I am the only one having this password.
Case Register:
Case Login:
my load stats stock
OnPlayerDisconnect
my stock
SetAdmin CMD
Thank you for any effort.
Case Register:
Код:
new INI:File = INI_Open(UserPath(playerid)); INI_SetTag(File,"Player Info Save"); INI_WriteInt(File,"Password",udb_hash(inputtext)); INI_WriteInt(File,"Escapes",0); INI_WriteInt(File,"Kills",0); INI_WriteInt(File,"Deaths",0); INI_WriteInt(File,"TKills",0); INI_WriteInt(File,"Admin",0); INI_WriteInt(File,"Helper",0); INI_WriteInt(File,"Kicks",0); INI_WriteInt(File,"Bans",0); INI_WriteInt(File,"Banned",0); INI_WriteInt(File,"Points",0); INI_WriteInt(File,"Shotgun",0); INI_WriteInt(File,"Uzi",0); INI_WriteInt(File,"MP5",0); INI_WriteInt(File,"M4",0); INI_WriteInt(File,"DriveBy",0); INI_WriteInt(File,"Armour",0); INI_Close(File);
Код:
if(udb_hash(inputtext) == PlayerInfo[playerid][pPass]) { if( PlayerInfo[ playerid ][ pBanned ] == 1) { SendClientMessage(playerid,COLOR_RED,"You were banned due to logging in to a banned account."); new banname[25]; new banstring[100]; GetPlayerName(playerid,banname,sizeof(banname)); format(banstring,sizeof(banstring),"%s was banned for logging in into banned account.",banname); banlog(banstring); Ban(playerid); } SendClientMessage(playerid,COLOR_GREEN,"You logged in successfully."); INI_ParseFile(UserPath(playerid), "LoadUser_%s", .bExtra = true, .extra = playerid); ForceClassSelection(playerid); if(PlayerInfo[playerid][pAdmin]>0) { SendClientMessage(playerid,COLOR_BLUE,"You logged in as an admin. Use /ahelp for commands."); } if(PlayerInfo[playerid][pHelper]==1) { SendClientMessage(playerid,COLOR_ORANGE,"You logged in as a helper. (/helperinfo)"); } OnPlayerPointsChange(playerid); }
Код:
INI_Int("Password",PlayerInfo[playerid][pPass]); INI_Int("Escapes",PlayerInfo[playerid][pEscapes]); INI_Int("Kills",PlayerInfo[playerid][pKills]); INI_Int("Deaths",PlayerInfo[playerid][pDeaths]); INI_Int("TKills",PlayerInfo[playerid][pTKills]); INI_Int("Admin",PlayerInfo[playerid][pAdmin]); INI_Int("Helper",PlayerInfo[playerid][pHelper]); INI_Int("Kicks",PlayerInfo[playerid][pKicks]); INI_Int("Bans",PlayerInfo[playerid][pBans]); INI_Int("Banned",PlayerInfo[playerid][pBanned]); INI_Int("Points",PlayerInfo[playerid][pPoints]); INI_Int("Shotgun",PlayerInfo[playerid][pShotgun]); INI_Int("Uzi",PlayerInfo[playerid][pUzi]); INI_Int("MP5",PlayerInfo[playerid][pMP5]); INI_Int("M4",PlayerInfo[playerid][pM4]); INI_Int("DriveBy",PlayerInfo[playerid][pDriveBy]); INI_Int("Armour",PlayerInfo[playerid][pArmour]);
Код:
new INI:File = INI_Open(UserPath(playerid)); INI_SetTag(File,"Player Info Save"); INI_WriteInt(File,"Escapes",PlayerInfo[playerid][pEscapes]); INI_WriteInt(File,"Kills",PlayerInfo[playerid][pKills]); INI_WriteInt(File,"Deaths",PlayerInfo[playerid][pDeaths]); INI_WriteInt(File,"TKills",PlayerInfo[playerid][pTKills]); INI_WriteInt(File,"Admin",PlayerInfo[playerid][pAdmin]); INI_WriteInt(File,"Helper",PlayerInfo[playerid][pHelper]); INI_WriteInt(File,"Kicks",PlayerInfo[playerid][pKicks]); INI_WriteInt(File,"Bans",PlayerInfo[playerid][pBans]); INI_WriteInt(File,"Banned",PlayerInfo[playerid][pBanned]); INI_WriteInt(File,"Points",PlayerInfo[playerid][pPoints]); INI_WriteInt(File,"Shotgun",PlayerInfo[playerid][pShotgun]); INI_WriteInt(File,"Uzi",PlayerInfo[playerid][pUzi]); INI_WriteInt(File,"MP5",PlayerInfo[playerid][pMP5]); INI_WriteInt(File,"M4",PlayerInfo[playerid][pM4]); INI_WriteInt(File,"DriveBy",PlayerInfo[playerid][pDriveBy]); INI_WriteInt(File,"Armour",PlayerInfo[playerid][pArmour]); INI_Close(File);
Код:
stock UserPath(playerid) { new string[128],playername[MAX_PLAYER_NAME]; GetPlayerName(playerid,playername,sizeof(playername)); format(string,sizeof(string),PATH,playername); return string; }
Код:
CMD:setadmin(playerid,params[]) // rcon { new targetid,level; if(!IsPlayerAdmin(playerid)) { return SendClientMessage(playerid,COLOR_RED,"Access denied!"); } if(sscanf(params,"ui",targetid,level)) { return SendClientMessage(playerid,COLOR_RED,"Usage: /setadmin [playerid] [level(1/3)]"); } if(!IsPlayerConnected(targetid)) { return SendClientMessage(playerid,COLOR_RED,"Invalid ID."); } if(level<0||level>3) { return SendClientMessage(playerid,COLOR_RED,"Invalid level. Choose 0-3"); } if(PlayerInfo[targetid][pAdmin]==level) return SendClientMessage(playerid,COLOR_RED,"That player already has given level."); PlayerInfo[ targetid ][ pAdmin ] = level; new sendername[25]; new recievername[25]; GetPlayerName(playerid,sendername,sizeof(sendername)); GetPlayerName(targetid,recievername,sizeof(recievername)); new senderstring[50]; new recieverstring[50]; if(level>0) { format(senderstring,sizeof(senderstring),"%s has been set to admin level: %i",recievername,level); format(recieverstring,sizeof(recieverstring),"Admin %s has set you as admin level: %i",sendername,level); SendClientMessage(playerid,COLOR_GREEN,senderstring); SendClientMessage(targetid,COLOR_ORANGE,recieverstring); } else // level is 0 { format(senderstring,sizeof(senderstring),"%s has been removed from the admin team.",recievername); format(recieverstring,sizeof(recieverstring),"Admin %s has removed you from the admin team.",sendername); SendClientMessage(playerid,COLOR_GREEN,senderstring); SendClientMessage(targetid,COLOR_RED,recieverstring); } return 1; }