ayuda con creando un sistema de darnivel
#1

hola primero que nada y saludos a la comunidad gracias de antemano

osea me explico porq el titulo no dice mucho jejeje bueno en fin

mi problema es que estoy intentando crear un sistema de admins sencillo asi voy aprendiendo por mi cuenta pero tengo una duda.. con una parte de esto el sistema de darnivel a un admins..

osea la cuestion es que no se como decirle a dini que me guarde el tmp2 (que es el level del adminstrador)

aqui tengo el sistema si lo me lo pueden acomodar se lo agradeceria..

pawn Код:
if(strcmp(cmd, "/nivel", true) == 0)
     {
     new tmp1[256];
     new tmp2[256];

     new jugador;
    new accion;
     
     
     tmp1 = strtok(cmdtext, idx);
     tmp2 = strtok(cmdtext, idx);

     jugador = strval(tmp1);
    accion = strval (tmp2);

     if(!strlen(tmp1) || !strlen(tmp2)) return SendClientMessage(playerid, 0xFFFFFFFF, "Uso Correcto /nivel [ID] [nivel]");
     if(strval(tmp2) < 0 || strval(tmp2) > 5) return SendClientMessage(playerid, 0xFFFFFFFF, "[ERROR] Debes elegir entre 0 y 5");

     if (IsPlayerConnected(jugador))
    {

    //dini_IntSet(file, "Nivel", strlen(tmp2));
    dini_IntSet(file, "Nivel", (accion));
    //PlayerInfo[playerid][Nivel] = dini_IntSet(file, "Nivel", cmdtext[13+strval(tmp2)]);
    }
    else return SendClientMessage(playerid, 0xFFFFFFFF, "El jugador no se encuentra conectado.");

       return 1;
    }



otra cosita el string sirve solo para sacar el nombre solamente o letra por asi decirlo..

y el strok es para asignarle una variable o me equivoco solo son dudas que tengo

PD: ese dar nivel lo hice yo.. fijandome de en un sistema de admins que no me copilaba por errores con los tmp este me copila bien pero no me guarda el level cuando reviso el .ini espero que me ayuden. porfavor..
Reply
#2

Te aconsejo usar sscanf, simplifica mucho mбs el trabajo.
Reply
#3

Quote:
Originally Posted by MaRcOsWeB
Посмотреть сообщение
Te aconsejo usar sscanf, simplifica mucho mбs el trabajo.
Y un procesador de comandos para velocidad.

El mejor es y_cmds, pero como al parecer todos se limitan en cuanto a caracterнsticas de script usa ZCMD ...
Reply
#4

bueno men no creo.. estuve revisando un esos codigos y son demasiado complicado para lo que yo estoy empezando a hacer.. si soy noob scripter jejejeje.. osea se cosas sencillas orita que me puse reto usando tmp string y strtok... que ya le agarre un poco.. por eso creo que no debo de correr antes de gatear.. jejeje.. es lo que pienso.. voy poco a poco..

pero en fin sin deviarme mucho del tema espero que me ayudes men no entiendo como hacer que me guarde la variable tmp2
Reply
#5

Quote:
Originally Posted by pavon19
Посмотреть сообщение
bueno men no creo.. estuve revisando un esos codigos y son demasiado complicado para lo que yo estoy empezando a hacer.. si soy noob scripter jejejeje.. osea se cosas sencillas orita que me puse reto usando tmp string y strtok... que ya le agarre un poco.. por eso creo que no debo de correr antes de gatear.. jejeje.. es lo que pienso.. voy poco a poco..

pero en fin sin deviarme mucho del tema espero que me ayudes men no entiendo como hacer que me guarde la variable tmp2
Error. Es mбs difнcil usar strcmp y strtok que un procesador de comandos como ZCMD y sscanf.
Reply
#6

ahmmm y yo lo veo mas facil.. porque todo lo he hecho por ahi.. yo veo el sscanf. mas dificil.. pero veo que he aprendido lo mas dificil.. aunque no lo creo jajaja bueno me me pasas algun tutorial sobre zcmd...

y mrdeath537.. me podes ayudar que el dini me guarde el nivel del sistema de adminstrador. no logro que me guarde.. y no se como hacer.. me ayudarias amigo te lo agradeceria..
Reply
#7

Ufff, el tutorial ese es obsoleto, ni siquiera puede llamarse tutorial, es solo copiar el cуdigo de ahн, pegarlo en tu script, y editarlo :/
Reply
#8

pues el zcmd es el que me dices es obsoleto.. he visto que usan mas el dcmd pero para mi es un 8.. jejejeje

usando ese zcmd que me recomiendas.. me enseсas como hacer un sistema de admins mas sencillo me harias un tuto por filescript estuve revisando unos tuto por otra web. y lo veo como mas dificil porque si no usas strtok tienes que quitarlo o no.. esq la verdad quiero intentar por zcmd pero hay muy pocos tutoriales sobre eso bueno porq como todo empiezan por strcmp me gustaria charlar contigo por chat de msn para tener un profesor y aprender mas.. claro no te voy a decir que me pases todo hecho solo me expliques

me gustaria ojala puedas ayudarme amigo
Reply
#9

Ahн tenes, suerte.

pawn Код:
/* Creado por MaRcOsWeB para pavon19 en SA-MP.com | Se prohibe la distrubiciуn sin autorizaciуn del autor. */
/////////////////////////////////
#include <sscanf2>
/////////////////////////////////
#define dcmd(%1,%2,%3) if ((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, "")))||(((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1
/////////////////////////////////
public OnPlayerCommandText(playerid, cmdtext[])
{
    // Lo demбs que tengas en el Gamemode
    //=======================[CMDS]==================
    dcmd(darnivel,8,cmdtext);
    return 0;
}
//==============================[COMANDO DAR NIVEL]=====================================
dcmd_darnivel(playerid,params[])
{
    if(IsPlayerConnected(playerid))
    {
        new id, nivel;
        if(sscanf(params, "ui", id,nivel))
            {
                // Mensaje, Dialog u otra cosa que avise al usuario que no introduce el comando adecuadamente
                // Aconsejo: "USO: /darnivel [ID] [Nivel]"
            }
        else if(!IsPlayerConnected(id))
            {
                // Mensaje, Dialog u otra cosa que avise al usuario que introduce el comando, que el jugador al que desea setear nivel no estб conectado.
            }
        else
            {
                PlayerInfo[id][Nivel] = nivel;
                // Opcional: Agregar un mensaje que indique que los cambios se realizaron.
            }
    }
    return 1;
}
/////////////////////////////////
Reply
#10

Tu cуdigo para guardar en dini esta bien, lo que debe estar mal es como tienes definido "file",


pawn Код:
dini_IntSet(file, "Nivel", accion); // "file" lo debes de tener definido antes
Te dejo un ejemplo de como deberias definirlo
pawn Код:
new file[128];
           new name[MAX_PLAYER_NAME];
           GetPlayerName(playerid,name,sizeof(name));
           format(file,sizeof(file),"/GameMode/Usuarios/%s.ini",name); //Cambia el directorio por el que tu usas
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)