[Ajuda] Tem como limitar um valor de uma variavel
#1

Tipo

crio uma var aqui:

new var[MAX_PLAYERS];

dai venho e:

CMD:mudarvalor(playerid)
{
var[playerid] = 9999999;
}

entenderam eu queria que o valor da variavel nгo podesse passar de 4, dai se eu coloca-se mais de 4 ali daria um erro.

alguйm sabe se dar?
Reply
#2

Tenta Fazer Com O "sscanf".
Reply
#3

Vocк quer definir um valor mбximo a ser setado na variбvel em um comando, й isso?
PHP Code:
new var[MAX_PLAYERS];
CMD:mudarvalor(playeridparams[])
{
    if(
isnull(params)) return SendClientMessage(playerid, -1"Digite algum valor: /mudarvalor <valor>");
    new 
value strval(params);
    if(
value 4) return SendClientMessage(playerid, -1"O valor nгo pode ser maior que 4!");
    var[
playerid] = value;
    return 
1;

Reply
#4

Quote:
Originally Posted by Bruno13
View Post
Vocк quer definir um valor mбximo a ser setado na variбvel em um comando, й isso?
PHP Code:
new var[MAX_PLAYERS];
CMD:mudarvalor(playeridparams[])
{
    if(
isnull(params)) return SendClientMessage(playerid, -1"Digite algum valor: /mudarvalor <valor>");
    new 
value strval(params);
    if(
value 4) return SendClientMessage(playerid, -1"O valor nгo pode ser maior que 4!");
    var[
playerid] = value;
    return 
1;

Nгo man isto eu sei fazer, kkkk. quero queo seguinte nгo venha acontecer como essa print aqui > http://imgur.com/a/XLOpx

estar vendo quando vou deslogando do servidor o valor da variбvel "Administrador" vai dobrando e no meu gm os seguintes valores sгo:

Administrador = 1 ) Ajudante

Administrador = 2 ) Moderador

Administrador 3 ) Administrador

Administrador 4) Dono

entendeu, nгo quero que o valor dessa variбvel passe de 4 de geito algum, por que:

Administrador = 20) seria oque?
Reply
#5

й sу botar no OnPlayerDisconnect ou OnPlayerConnect,

PHP Code:
admin[playerid] = 0
caso nгo funcionar, refaзa seu cуdigo.
Reply
#6

Posta o cуdigo de salvamento porque sу assim da pra ver qual й o problema, ou faзa oque o zSuYaNw disse acima.
Reply
#7

Quote:

// Criado Por Thiago_PS
// Editado Por JFS.
// Motivo do Post : Muitos Pedidos.
// >> Sem BUG << || Assesem : homehots.net || MSN : john_feat@hotmail.com
// Й Nois ! */
#include <a_samp>
#include <Dini>
#include ZCMD
#include sscanf2

#define FILTERSCRIPT

#define REGISTRO 1
#define LOGIN 2
#define Admins 98382


#define verdec 0x0C845EAA
#define azulc 0x28D2A7AA
#define amareloq 0xFFFA87AA
#define rosinha 0xFA7EFEAA
#define verde 0x11B82AAA
#define vermelho 0xFA333300
#define verdemarinho 0x0BC666AA
#define coradmin 0x007AB7AA

#define ajudante 0xD14444AA
#define moderador 0xEFC300AA
#define administrador 0x096880AA
#define dono 0x00F3DFAA


#define CONTAS "Players/%s.ini"

new msg[260];

new Matou[MAX_PLAYERS];
new Morreu[MAX_PLAYERS];
new Logou[MAX_PLAYERS];

enum Dados
{
Administrador,
}
new PlayerInfo[MAX_PLAYERS][Dados];


public OnFilterScriptInit()
{
return 1;
}

public OnFilterScriptExit()
{
for(new i=0; i<MAX_PLAYERS; i++)
SalvarPlayer(i);
return 1;
}

public OnPlayerRequestClass(playerid, classid)
{
return 1;
}
public OnPlayerConnect(playerid)
{
new String[100];
format(String, sizeof(String), CONTAS, Nome(playerid));
if(!dini_Exists(String))
{
format(String, sizeof(String), "{7FFFD4}Nick: {1E90FF}%s {1E90FF}Nгo Registrado\n\n{FFFFFF} Digite Uma Senha Para Continuar", Nome(playerid));
ShowPlayerDialog(playerid, REGISTRO, DIALOG_STYLE_INPUT, "Registro", String, "Registrar", "Cancelar");
}
else
{
format(String, sizeof(String), "{7FFFD4}Nick: {1E90FF}%s {1E90FF}Registrado\n\n{FFFFFF} Digite Sua Senha Para Logar", Nome(playerid));
ShowPlayerDialog(playerid, LOGIN, DIALOG_STYLE_INPUT, "Registro", String, "Logar", "Cancelar");
}
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
SalvarPlayer(playerid);
return 1;
}
public OnPlayerDeath(playerid, killerid, reason)
{
if(IsPlayerConnected(killerid))
{
Matou[killerid]++;
}
Morreu[playerid]++;
return 1;
}

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == REGISTRO)
{
if(response)
{
if(!strlen(inputtext))
{
new String[100];
format(String, sizeof(String), "{7FFFD4}Nick: {1E90FF}%s {1E90FF}Nгo Registrado\n\n{FFFFFF} Digite Uma Senha Para Continuar", Nome(playerid));
ShowPlayerDialog(playerid, REGISTRO, DIALOG_STYLE_INPUT, "Registro", String, "Registrar", "Cancelar");
SendClientMessage(playerid,0x1E90FFAA,"Senha invalida, digite uma senha vбlida");
return 1;
}
new String[100];
format(String, sizeof(String), CONTAS, Nome(playerid));
dini_Create(String);
dini_Set(String,"Senha",inputtext);
dini_IntSet(String,"Dinheiro",0);
dini_IntSet(String,"Matou",0);
dini_IntSet(String,"Morreu",0);
dini_IntSet(String,"Logou",0);
dini_IntSet(String,"Administrador",0);
ShowPlayerDialog(playerid, LOGIN, DIALOG_STYLE_INPUT, "Login", "{1E90FF}Pronto vocк se registrou agora digite Sua Senha Para Logar-Se", "Logar", "Cancelar");
return 1;
}
else
{
SendClientMessage(playerid, 0xFF0000AA, "Vocк Foi Kickado Porque Nгo Quis Se Registrar!!");
Kick(playerid);
return 1;
}
}
if(dialogid == LOGIN)
{
if(response)
{
if(!strlen(inputtext))
{
new String[100];
format(String, sizeof(String), "{7FFFD4}Nick: {1E90FF}%s {1E90FF}Registrado\n\n{FFFFFF} Digite Sua Senha Para Logar", Nome(playerid));
ShowPlayerDialog(playerid, LOGIN, DIALOG_STYLE_INPUT, "Registro", String, "Logar", "Cancelar");
SendClientMessage(playerid,0x1E90FFAA,"Senha Incorreta !");
return 1;
}
new String[100];
format(String, sizeof(String), CONTAS, Nome(playerid));
if(!strcmp(inputtext,dini_Get(String,"Senha"),fals e))
{
SpawnPlayer(playerid);
SetarPlayer(playerid);
Logou[playerid]++;
return 1;
}
else
{
SendClientMessage(playerid,0x00FF00AA,"Senha incorreta digite-a novamente");
format(String, sizeof(String), "{7FFFD4}Nick: {1E90FF}%s {1E90FF}Registrado\n\n{FFFFFF} Digite Sua Senha Para Logar", Nome(playerid));
ShowPlayerDialog(playerid, LOGIN, DIALOG_STYLE_INPUT, "Registro", String, "Logar", "Cancelar");
}
return 1;
}
else
{
SendClientMessage(playerid, 0xFF0000AA, "Vocк nгo quis se logar, por este motivo serб Kickado");
Kick(playerid);
return 1;
}
}
return 1;
}

Й um filter que baixei na net, tem atй os crйditos do mano que fez.
Reply
#8

Bom, em algum lugar a variбvel estб recebendo este valor, vocк deve fazer debug para encontrar este valor.

Olhando para o cуdigo o ъnico local que a variбvel Administrador recebe um valor й no registro...
Reply
#9

pelo que eu entendi, vocк quer limitar o valor que pode ser definido no comando como por exemplo o dar admin...

Exemplo:

pawn Code:
CMD:daradmin(playerid, params[])
{
    new pLevel, pID;
    if(sscanf(params, "ui", pID, pLevel))return SendClientMessage(playerid, -1, "USO: /daradmin [ID/NICK] [LEVEL]");
    if(pLevel < 0 || pLevel > 4) return SendClientMessage(playerid, -1, "[ERROR] Vocк deve definir um nivel entre 0 e 4!");
    PlayerInfo[pID][Administrador] = pLevel;
    return 1;
}
Acredito que seja isso....

Sobre o seu salvamento que acabei de reler o tуpico, o problema estб na stock SetarPlayer poste ela para vermos...
Reply
#10

SetarPlayer(playerid)
{
new String[50];
format(String, sizeof(String), CONTAS, Nome(playerid));
GivePlayerMoney(playerid, dini_Int(String,"Dinheiro"));
SetPlayerHealth(playerid, dini_Int(String,"Vida"));
SetPlayerArmour(playerid, dini_Int(String,"Colete"));
Matou[playerid] = dini_Int(String, "Matou");
Morreu[playerid] = dini_Int(String, "Morreu");
Logou[playerid] = dini_Int(String, "Logou");
PlayerInfo[playerid][Administrador] = dini_Int(String, "Administrador");
return 1;
}
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)