Set admin level in game
#1

Hey guys it's me JustinB again...lol anyways I'm trying to make it so I can set player's admin level ingame because right now I can only do it out of game.

this is my admin format:
Код:
(adminlevel[playerid] >= 1);
And I Make commands using: if(strcmp(cmdtext

I want the admin setlevel to be /setlevel like so:

if(strcmp(cmdtext, "/setlevel", true) == 0)

My Max admin level is 4

But I have no idea how to do it
I hope you can help all

Peace.

Reply
#2

Here?
Create By Me! rs

In GM:
pawn Код:
public OnPlayerCommandText(playerid, cmdtext[])
{
new cmd[128], idx;
cmd = strtok(cmdtext, idx);

if(strcmp(cmd, "/setadmin", true) == 0)
{
if(adminlevel[playerid] == 0); return SendClientMessage(playerid, 0xFFFFFFFF, "You Not's Admin!");
new tmp[128];
tmp = strtok(cmdtext, idx);
new giveplayer;
tmp = strtok(cmdtext, idx);
giveplayer = strlen(tmp);

if(strlen(tmp) == 0) return SendClientMessage(playerid, 0xFFFFFFFF, "Uso do Comando: /setadmin [id]");
 
adminlevel[giveplayer]++;//VARIAVEL ADMIN
return 1;
}
return 0;
}

strtok(const string[], &index)
{
new length = strlen(string);
while ((index < length) && (string[index] <= ' '))
{
index++;
}

new offset = index;
new result[20];
while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
{
result[index - offset] = string[index];
index++;
}
result[index - offset] = EOS;
return result;
}
Crйdits The Creator Of STRTOK
Reply
#3

"You Not's Admin!");

Omfg learn english.
Reply
#4

Quote:
Originally Posted by DraKoNeoN
Here?
Create By Me! rs

In GM:
pawn Код:
public OnPlayerCommandText(playerid, cmdtext[])
{
new cmd[128], idx;
cmd = strtok(cmdtext, idx);

if(strcmp(cmd, "/setadmin", true) == 0)
{
if(adminlevel[playerid] == 0); return SendClientMessage(playerid, 0xFFFFFFFF, "You Not's Admin!");
new tmp[128];
tmp = strtok(cmdtext, idx);
new giveplayer;
tmp = strtok(cmdtext, idx);
giveplayer = strlen(tmp);

if(strlen(tmp) == 0) return SendClientMessage(playerid, 0xFFFFFFFF, "Uso do Comando: /setadmin [id]");
 
adminlevel[giveplayer]++;//VARIAVEL ADMIN
return 1;
}
return 0;
}

strtok(const string[], &index)
{
new length = strlen(string);
while ((index < length) && (string[index] <= ' '))
{
index++;
}

new offset = index;
new result[20];
while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
{
result[index - offset] = string[index];
index++;
}
result[index - offset] = EOS;
return result;
}
Crйdits The Creator Of STRTOK
Didnt work....
Reply
#5

It's because he doesn't know english and thats the worst command i've ever seen.

I would make you a command, but 1. That isnt my job 2. Your name is JustinB and 3. I need to go to sleep
Reply
#6

does your mode use strtok? ignore i guess not from what you said b4 ill give it a crack hold on
top of script
pawn Код:
#define SETADMINLEVEL 4 // min level to set admin
command
pawn Код:
new tmp, giveplayerid,level;
    new giveplayer[MAX_PLAYER_NAME],sendername[MAX_PLAYER_NAME];
    if(strcmp(cmd, "/setadmin", true) == 0) {
      tmp = strtok(cmdtext, idx);

        if(!strlen(tmp)) {
            SendClientMessage(playerid, COLOUR_WHITE, "USAGE: /setadmin [playerid] [level]");
            return 1;
        }
        giveplayerid = strval(tmp);

        tmp = strtok(cmdtext, idx);
        if(!strlen(tmp)) {
            SendClientMessage(playerid, COLOUR_WHITE, "USAGE: /setadmin [playerid] [level]");
            return 1;
        }
        level = strval(tmp);

      if(adminlevel[playerid] < SETADMINLEVEL) {
            SendClientMessage(playerid, COLOUR_BAD, "you are not allowed to do this");
            return 1;
      }
      if(!IsPlayerConnected(giveplayerid)) {
            SendClientMessage(playerid, COLOUR_BAD, "No such player exists.");
            return 1;
        }
        new gcstr[64];
        adminlevel[giveplayerid] = level;
        GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
        GetPlayerName(playerid, sendername, sizeof(sendername));
        format(gcstr, sizeof(gcstr), "you have set %s's admin level to %d", giveplayer, adminlevel[giveplayerid]);
        SendClientMessage(playerid,COLOUR_YELLOW, gcstr);
        format(gcstr, sizeof(gcstr), "%s has set your admin level to %d", sendername,adminlevel[giveplayerid]);
        SendClientMessage(giveplayerid, COLOUR_YELLOW, gcstr);
        return 1;
    }
and you will need at the bottom of the script
pawn Код:
strtok(const string[], &index)
{
new length = strlen(string);
while ((index < length) && (string[index] <= ' '))
{
index++;
}

new offset = index;
new result[20];
while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
{
result[index - offset] = string[index];
index++;
}
result[index - offset] = EOS;
return result;
}
hope that helps
Reply
#7

Код:
if(strcmp(cmd, "/setadmin", true) == 0) 
{
new tmp[24],tmp2[24], giveplayerid,level; new Index;
new giveplayer[MAX_PLAYER_NAME],sendername[MAX_PLAYER_NAME];

tmp = strtok(cmdtext, Index);
tmp2=strtok(cmdtext, Index);

if(!strlen(tmp)) return SendClientMessage(playerid, COLOUR_WHITE, "USAGE: /setadmin [playerid] [level]");
giveplayerid = strval(tmp);

if(!strlen(tmp2)) return SendClientMessage(playerid, COLOUR_WHITE, "USAGE: /setadmin [playerid] [level]");
level=strval(tmp2); 

  if(adminlevel[playerid] < SETADMINLEVEL) return SendClientMessage(playerid, COLOUR_BAD, "You are not an Admin.");

  if(!IsPlayerConnected(giveplayerid)) return SendClientMessage(playerid, COLOUR_BAD, "Player is not connected");

new gcstr[64];
adminlevel[giveplayerid] = level;
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
format(gcstr, sizeof(gcstr), "you have set %s's admin level to %d", giveplayer, level);
SendClientMessage(playerid,COLOUR_YELLOW, gcstr);
format(gcstr, sizeof(gcstr), "%s has set your admin level to %d", sendername,level);
SendClientMessage(giveplayerid, COLOUR_YELLOW, gcstr);
return 1;
}
There you go.
Reply
#8

Quote:
Originally Posted by DJDhan
Код:
if(strcmp(cmd, "/setadmin", true) == 0) 
{
new tmp[24],tmp2[24], giveplayerid,level; new Index;
new giveplayer[MAX_PLAYER_NAME],sendername[MAX_PLAYER_NAME];

tmp = strtok(cmdtext, Index);
tmp2=strtok(cmdtext, Index);

if(!strlen(tmp)) return SendClientMessage(playerid, COLOUR_WHITE, "USAGE: /setadmin [playerid] [level]");
giveplayerid = strval(tmp);

if(!strlen(tmp2)) return SendClientMessage(playerid, COLOUR_WHITE, "USAGE: /setadmin [playerid] [level]");
level=strval(tmp2); 

  if(adminlevel[playerid] < SETADMINLEVEL) return SendClientMessage(playerid, COLOUR_BAD, "You are not an Admin.");

  if(!IsPlayerConnected(giveplayerid)) return SendClientMessage(playerid, COLOUR_BAD, "Player is not connected");

new gcstr[64];
adminlevel[giveplayerid] = level;
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
format(gcstr, sizeof(gcstr), "you have set %s's admin level to %d", giveplayer, level);
SendClientMessage(playerid,COLOUR_YELLOW, gcstr);
format(gcstr, sizeof(gcstr), "%s has set your admin level to %d", sendername,level);
SendClientMessage(giveplayerid, COLOUR_YELLOW, gcstr);
return 1;
}
There you go.
Everytime I add if(strcmp(cmd, "/setadmin", true) == 0)

it gives me this error....

Код:
invalid function or declaration
Reply
#9

hey , i sent u a pm with my email , i can help u
Reply
#10

ANtonio. Why so negative? If you can't help this person or if you only can complain. Just don't say aynthing^^

And BTW: And your thread:
SendClientMessage(playerid, COLOR_RED, "You cannot deposit more money that you atcually have!");

Lol. I don't think that sentence is alright. But hey, do we complain?
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)