Problemmo
#1

I'm learning SQLite and been trying constantly to retrieve `ADMINLEVEL` from my data. I've tried many ways but failed.

I need advise on how to do it because.. no matter every way i've tried I allways failed.

Код:
COMMAND:setlevel(playerid, params[])
{
	new id,lvl,string[128];
	new pName[24], pTame[24];
	new targetid;
	GetPlayerName(playerid,pName,24);
	GetPlayerName(targetid,pTame,24);
	new
  	DBResult: Result,
   	name[ MAX_PLAYER_NAME ];
	new Field[ 20 ];
	GetPlayerName(playerid, name, sizeof(name));
	format(db_query, 128, "SELECT `ADMINLEVEL` FROM `USERS` WHERE `NAME` = '%s'", name);
	db_get_field_assoc(Result, "ADMINLEVEL", Field, 30);
	Bit16_Set(g_AdminLevel, playerid, strval(Field));
	if(g_AdminLevel[playerid] < 0) return SendClientMessage(playerid,COLOR_RED,"You Are Not Allowed Access To This Command!");
	if(sscanf(params,"ui",id,lvl)) return SendClientMessage(playerid,COLOR_GREEN,""COL_GREY"/setlevel [PlayerID] [Level]");
	if(!IsPlayerConnected(targetid)) return SendClientMessage(playerid, COLOR_WHITE, ""COL_RED"[ERROR]"COL_CMD" Player Not Connected!");
	format(string,sizeof(string),"%s Has Been Promoted To Admin Level:(%d) By Administrator: %s",pTame,lvl,pName);
	SendClientMessage(id,COLOR_GREEN,string);
	if(PlayerInfo[id][AdminLevel] < lvl)
	{
	    GameTextForPlayer(id,"~g~~h~~h~Promoted!",4000,3);
	}
	if(PlayerInfo[id][AdminLevel] > lvl)
	{
	    GameTextForPlayer(id,"~r~~h~Demoted!",4000,3);
	}
	format(string,sizeof(string),"%s(%d) Has Been Set To Level %d",pTame,id,lvl);
	SendClientMessage(playerid,COLOR_GREEN,string);
	PlayerInfo[id][AdminLevel] = lvl;
	return 0;
}
This code is just 1 of my other codes!

Don't treat me like a retard if it's not right... I've tried.. That's all that counts!
Reply
#2

pawn Код:
COMMAND:setlevel(playerid, params[])
{
    new id,lvl,string[128];
    new pName[24], pTame[24],targetid;
    GetPlayerName(playerid,pName,24);
    GetPlayerName(targetid,pTame,24);
    new DBResult: Result,name[ MAX_PLAYER_NAME ], Field[ 20 ],PlayerLevel;
    GetPlayerName(playerid, name, sizeof(name));
    format(db_query, 128, "SELECT `ADMINLEVEL` FROM `USERS` WHERE `NAME` = '%s'", name);
    db_get_field_assoc(Result, "ADMINLEVEL", Field, 30);
    PlayerLevel = strval(Field);
    if(PlayerLevel < 0) return SendClientMessage(playerid,COLOR_RED,"You Are Not Allowed Access To This Command!");
    if(sscanf(params,"ui",id,lvl)) return SendClientMessage(playerid,COLOR_GREEN,""COL_GREY"/setlevel [PlayerID] [Level]");
    if(!IsPlayerConnected(targetid)) return SendClientMessage(playerid, COLOR_WHITE, ""COL_RED"[ERROR]"COL_CMD" Player Not Connected!");
    format(string,sizeof(string),"%s Has Been Promoted To Admin Level:(%d) By Administrator: %s",pTame,lvl,pName);
    SendClientMessage(id,COLOR_GREEN,string);
    if(PlayerInfo[id][AdminLevel] < lvl)
    {
        GameTextForPlayer(id,"~g~~h~~h~Promoted!",4000,3);
    }
    if(PlayerInfo[id][AdminLevel] > lvl)
    {
        GameTextForPlayer(id,"~r~~h~Demoted!",4000,3);
    }
    format(string,sizeof(string),"%s(%d) Has Been Set To Level %d",pTame,id,lvl);
    SendClientMessage(playerid,COLOR_GREEN,string);
    PlayerInfo[id][AdminLevel] = lvl;
    Db_free_result(ServerDatabase,db_query);
    return 0;
}
Reply
#3

READ ON!
Reply
#4

pawn Код:
new query[128];
CostumFormat(query,"SELECT ADMINLEVEL FROM `USERS` WHERE `NAME` = '%s'",name);
db_query("ServerDatabase.db",query);
Reply
#5

Problem Fixed...

Код:
COMMAND:setlevel(playerid, params[])
{
    new id,lvl,string[128];
    new Query[250];
    new pName[24], pTame[24],targetid;
    GetPlayerName(playerid,pName,24);
    GetPlayerName(targetid,pTame,24);
    new DBResult: Result,name[ MAX_PLAYER_NAME ], Field[ 20 ],PlayerLevel;
    GetPlayerName(playerid, name, sizeof(name));
    format(Query, sizeof(Query), "SELECT `ADMINLEVEL` FROM `USERS` WHERE `NAME` = '%s'", name);
    db_get_field_assoc(Result, "ADMINLEVEL", Field, 30);
    PlayerLevel = strval(Field);
    if(PlayerLevel < 0) return SendClientMessage(playerid,COLOR_RED,"You Are Not Allowed Access To This Command!");
    if(sscanf(params,"ui",id,lvl)) return SendClientMessage(playerid,COLOR_GREEN,""COL_GREY"/setlevel [PlayerID] [Level]");
    if(!IsPlayerConnected(targetid)) return SendClientMessage(playerid, COLOR_WHITE, ""COL_RED"[ERROR]"COL_CMD" Player Not Connected!");
    format(string,sizeof(string),""COL_RED"[ADMIN ACTION]"COL_CMD" %s Has Been Promoted To Admin Level:(%d) By Administrator: %s",pTame,lvl,pName);
    SendClientMessage(id,COLOR_GREEN,string);
    if(PlayerInfo[id][AdminLevel] < lvl)
    {
        GameTextForPlayer(id,"~g~~h~~h~Promoted!",4000,3);
    }
    if(PlayerInfo[id][AdminLevel] > lvl)
    {
        GameTextForPlayer(id,"~r~~h~Demoted!",4000,3);
    }
    format(string,sizeof(string),""COL_RED"[ADMIN ACTION]"COL_CMD" %s(%d) Has Been Set To Level %d",pTame,id,lvl);
    SendClientMessage(playerid,COLOR_GREEN,string);
    PlayerInfo[id][AdminLevel] = lvl;
    db_free_result(Result);
    return 0;
}
I Want Admin Level To Be Set Into An Enum So I Can Choose From Admin Levels.

Instead Of Having All This SQLite Code In Each Command.

Enum Called: PlayerInfo
Reply
#6

Quote:
Originally Posted by MadSkillz
Посмотреть сообщение
Problem Fixed...

Код:
COMMAND:setlevel(playerid, params[])
{
    new id,lvl,string[128];
    new Query[250];
    new pName[24], pTame[24],targetid;
    GetPlayerName(playerid,pName,24);
    GetPlayerName(targetid,pTame,24);
    new DBResult: Result,name[ MAX_PLAYER_NAME ], Field[ 20 ],PlayerLevel;
    GetPlayerName(playerid, name, sizeof(name));
    format(Query, sizeof(Query), "SELECT `ADMINLEVEL` FROM `USERS` WHERE `NAME` = '%s'", name);
    db_get_field_assoc(Result, "ADMINLEVEL", Field, 30);
    PlayerLevel = strval(Field);
    if(PlayerLevel < 0) return SendClientMessage(playerid,COLOR_RED,"You Are Not Allowed Access To This Command!");
    if(sscanf(params,"ui",id,lvl)) return SendClientMessage(playerid,COLOR_GREEN,""COL_GREY"/setlevel [PlayerID] [Level]");
    if(!IsPlayerConnected(targetid)) return SendClientMessage(playerid, COLOR_WHITE, ""COL_RED"[ERROR]"COL_CMD" Player Not Connected!");
    format(string,sizeof(string),""COL_RED"[ADMIN ACTION]"COL_CMD" %s Has Been Promoted To Admin Level:(%d) By Administrator: %s",pTame,lvl,pName);
    SendClientMessage(id,COLOR_GREEN,string);
    if(PlayerInfo[id][AdminLevel] < lvl)
    {
        GameTextForPlayer(id,"~g~~h~~h~Promoted!",4000,3);
    }
    if(PlayerInfo[id][AdminLevel] > lvl)
    {
        GameTextForPlayer(id,"~r~~h~Demoted!",4000,3);
    }
    format(string,sizeof(string),""COL_RED"[ADMIN ACTION]"COL_CMD" %s(%d) Has Been Set To Level %d",pTame,id,lvl);
    SendClientMessage(playerid,COLOR_GREEN,string);
    PlayerInfo[id][AdminLevel] = lvl;
    db_free_result(Result);
    return 0;
}
I Want Admin Level To Be Set Into An Enum So I Can Choose From Admin Levels.

Instead Of Having All This SQLite Code In Each Command.

Enum Called: PlayerInfo
PHP код:
enum pInfo
{
pAdmin,
}; 
You mean this ?
Reply
#7

Yeahh But I Want To Load AdminLevel With The Enum.. So The SQL Isn't In Every Code.

Hopefully you'll understand :P
Reply
#8

Quote:
Originally Posted by MadSkillz
Посмотреть сообщение
Yeahh But I Want To Load AdminLevel With The Enum.. So The SQL Isn't In Every Code.

Hopefully you'll understand :P
https://sampwiki.blast.hk/wiki/Scripting_Basics

Scroll down to Variables.
Reply
#9

I know how to do that bit... I just don't know how to get ADMINLEVEL from my ServerDatabase.db and put it into a variable.
Reply
#10

BUMP!
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)