[Tutorial] [Tutorial] Realizar Un GameMode Basico Desde Cero [MySql]
#1

Este tutorial se ah realizado en tiempo real, es decir, mientras se realizaba el script y se hacнan las pruebas, se fue creando el tuto

Bienvenidos a mi Tutorial Aun mas 'Gratuito' que los anteriores


En esta ocacion, os traigo la sabidurнa que tengo en este tutorial.


Para empezar, tendremos que descargarnos dos cosas.

Wamp Server Con esto podremos administrar la base de datos
Plugin MySql Necesario para poder realizar el GameMode

Empecemos con la Acciуn!

Si no saben crear una Base De Datos , abran el siguiente spoiler.
Luego de instalar el Wamp Server, Lo iniciamos Dбndole doble clic al icono.


Luego nos dirigimos al icono que aparece en nuestra barra de tareas, y le damos clic izquierdo


Despuйs les saldrб un menъ, y deberбn Darle donde dice phpmyadmin


Os saldrб una nueva ventana en su navegador preferido.
Denle clic en donde dice base de datos.


Donde dice Crear nueva base de datos abajo colocamos el nombre y lo dejamos en Cortejamiento
Para este tutorial, usaremos el nombre Testing



Cuando hayamos creado la DB satisfactoriamente le damos click en el nombre que aparecerб segundos despuйs que la creamos.



Con lo anterior, ya tendremos nuestra Base de datos, para las tablas, el GameMode que crearemos se encargara de eso.


Recuerden que en server.cfg deberбn colocar : plugins mysql


Comencemos con abrir pawno.exe y darle al botуn new

Luego de eso, borraremos lo que no nos interesa, osea, la parte de FilterScript.

Colocamos la definiciуn del include mysql en la parte de arriba.

pawn Код:
#include <mysql>

Despuйs definiremos un par de variables o defines, como ustedes quieran para la configuraciуn del MySql.

pawn Код:
#define             SQL_HOST                "localhost"
    #define             SQL_USER                "root"
    #define             SQL_PASS                ""
    #define             SQL_DB                  "basetest"
Код:
SQL_HOST: Con esto, conectaremos a la ip del servidor que tiene el MySql, como usamos nuestro PC, colocamos localhost
SQL_USER: Pues el Usuario del MySql
SQL_PASS: La contraseсa del Usuario
SQL_DB: Pues la Base de Datos que usaremos
Ahora Creamos un stock para conectar con MySql

pawn Код:
stock ConectarMySQL()
{
    mysql_connect(SQL_HOST, SQL_USER, SQL_DB, SQL_PASS);
    mysql_debug(1);
    if(mysql_ping() == 1)
    {
        printf("\t\t[MYSQL]: Conexion Satisfactoria (DataBase: '%s')\n", SQL_DB);
    }
    else
    {
        printf("\t\t[MYSQL]: ERROR. Conexion Fallida (DataBase: '%s')\n", SQL_DB);
        SendRconCommand("exit");
    }
    return 1;
}
Код:
mysql_connect: Nos conectara con la base de datos.
mysql_debug(1);: Con esto le estaremos diciendo al include/plugin que nos genere un archivos de texto, para todas las consultas que se realicen, por si da error, o para saber si se ejecuto bien
mysql_ping(): nos revisa si nos conectamos o no.
Cuando hayamos echo el stock nos dirigimos a main() y en todo el principio colocaremos ConectarMySQL();


Cuando ya tengamos listo lo anterior, abrimos el servidor y comprobamos en la consola si la conexiуn fue satisfactoria o no, si no funciona, comenta y tratare de solucionar tu error.


Ahora, para realizar una tabla, en la cual guardaremos los usuarios, usaremos mysql_query que realizara la consulta.

Recuerden que primero se debe conectara con mysql mediante la funciуn que creamos mas arriba, si no se conecta, lo demбs como mysql_query, no funcionara. Entonces lo colocaremos despuйs de ConectarMySQL(); en el main()


Para la creaciуn de una tabla usaremos

Код:
CREATE TABLE IF NOT EXISTS NombreTabla (Variable Tipo, Variable Tipo, Etc...)
Para crear la tabla usuarios seria asн:

pawn Код:
mysql_query("CREATE TABLE IF NOT EXISTS users (Id_User INT(5) NOT NULL AUTO_INCREMENT, Nick VARCHAR(34) NOT NULL, Pass VARCHAR(34) NOT NULL, PRIMARY KEY (Id_User))");
Код:
CREATE TABLE IF NOT EXISTS: Nos creara la tabla, si esta misma no existe.
INT - VARCHAR: Con esto definimos el tipo de variable que se creara.
AUTO_INCREMENT: Con esto definiremos que la variable Id_User espesara de 1, y por cada registro que se ejecute, sumara +1 al nuevo. Es como para tener control
NOT NULL: Es para decirle a MySql, que esta variable no estarб Nula
Recomiendo que luego, si queremos aсadir mas variable, creemos otro mysql_query pero con otro contenido, por que si agregamos muchas variables en un mismo mysql_query nos generara un error (Recomiendo 3 variables por consulta):
pawn Код:
mysql_query("ALTER TABLE users ADD GeneroSexual VARCHAR(50) NOT NULL");
Код:
ALTER TABLE: Nos indica que queremos modifica una tabla
ADD: Para agregar una nueva variable a la tabla
Despuйs de lo anterior, creamos el Enumerador (enum) para las variables

pawn Код:
enum Informacion
    {
        Nick[MAX_PLAYER_NAME],
        Pass[34],
        GeneroSexual[20],
    };
    new Users[MAX_PLAYERS][Informacion];
        new NombreNick[MAX_PLAYERS][MAX_PLAYER_NAME]


Код:
El NombreNick, Se usara para guardar  el nombre, mas adelante verбn el porque.
Si nos salio bien el cуdigo de arriba, iniciamos el servidor, y ya tendremos listo nuestra tabla para guardar los registros de los usuarios.
Si no os sale la tabla, postea al error que te da y trataremos de solucionarlo(en Debug.txt que sale en la carpeta del servidor, nos dice si la consulta fue satisfactoria o si fue erronea)



Okay, ahora que ya nos conecta a mysql satisfactoriamente, y ya tenemos la tabla creada, es hora de crear los registros e ingresos para los usuarios.

Primeros creamos un nuevo Callback para el registro del usuario.

pawn Код:
forward RegistrarUsuario(playerid, Nombre[], pass[]);
public RegistrarUsuario(playerid, Nombre[], pass[])
{

    return 1;
}
Para insertar un nuevo registro deberemos usar esto
pawn Код:
INSERT INTO `users` (`Nick`, `Pass`) VALUES ([value-Nick],[value-Pass])
Код:
INSERT INTO: Le dice a mysql que queremos insertar nuevos valores a la tabla
`users`: Nombre de la tabla a la que queremos insertar
(`Nick`, `Pass`, `GeneroSexual`) : Estamos diciendo que esos son los valores que queremos insertar
VALUES : Le dice a mysql que lo que viene son los valores a las variables anteriores
([value-Nick],[value-Pass],[value-GeneroSexual]): Son las variables que iran dentro de comillas simples '
Despuйs de crear el Callback anterior, le ingresamos el contenido.

pawn Код:
new Insertar[256];
    format(Insertar, 256, "INSERT INTO users (Nick, Pass) VALUES ('%s', '%s')", Nombre, pass);
    mysql_query(Insertar);
    printf("\t\t[MYSQL]: Cuenta Creada Satisfactoriamente. (Nombre, '%s' )", Nombre);
    SendClientMessage(playerid, 0xFFFFFFff, " Tu cuenta ha sido creada satisfactoriamente");
Код:
Insertar: Sera la variable que contendrб la consulta
format: Sera la funciуn que nos meterб las variables de Nombre, pass y sexo en la consulta
mysql_query: Realizara la consulta
printf: Nos mandara un mensaje con los datos, menos la pass del registro nuevo
Код:
Podrian colocar el siguiente codigo, al final del main, y si les genera la consulta correctamente, tendran listo el public

RegistrarUsuario(0, "Politicos", "Idiotas");
Luego de que tengamos listo el public y que nos funcione correctamente, nos vamos a la creaciуn del CallBack de ingreso.

pawn Код:
forward IngresarUsuario(playerid, Nombre[], pass[]);
public IngresarUsuario(playerid, Nombre[], pass[])
{

    return 1;
}
Para seleccionar un registro, usamos:

pawn Код:
SELECT * FROM users WHERE Nick = 'Valor' AND Pass = 'Valor'
Код:
SELECT * FROM users: Le dice a mysql que vamos a Seleccionar (SELECT) todo (*) Desde (FROM) la tabla users
WHERE Nick = 'Valor' : Con esto le diremos que con solo si los siguientes parбmetros son correctos
AND Pass = 'Valor': Le dice a mysql que tanto como la variable Nick y(AND) la variable pass, deben de estar como se lo indicamos
Cuando tengamos el CallBack, colocamos el siguiente cуdigo dentro:
pawn Код:
new Insertar[256], GuardarStr[100];
    format(Insertar, 256, "SELECT * FROM users WHERE Nick = '%s' AND Pass = '%s'", Nombre, pass);
    mysql_query(Insertar);
    mysql_store_result();
    if(mysql_num_rows() != 0)
    {
        while(mysql_fetch_row_format(Insertar,"|"))
        {
            mysql_fetch_field_row(GuardarStr, "Nick");strmid(Users[playerid][Nick], GuardarStr, 0, strlen(GuardarStr), 255);
            mysql_fetch_field_row(GuardarStr, "Pass");strmid(Users[playerid][Pass], GuardarStr, 0, strlen(GuardarStr), 255);
            mysql_fetch_field_row(GuardarStr, "GeneroSexual");strmid(Users[playerid][GeneroSexual], GuardarStr, 0, strlen(GuardarStr), 255);
            mysql_free_result();
        }
        SetPlayerName(playerid, Users[playerid][Nick]);
        printf(" Alguien a ingresado correctamente" );
    }
    else
    {
        SendClientMessage(playerid, 0xFFFFFFff, " Tu nombre o Contraseсa Son incorrectos, o no existen en nuestra Base");
        printf(" Alguien NO ingreso correctamente" );
    }
Код:
Insertar: Guardara la Consulta
GuardarStr: Nos guardara los datos que saquemos en las variables del jugador
format: Nos metera las variables de Nombre y pass en la consulta
mysql_query: Realizara la consulta
mysql_store_result(): Nos guardara los datos que saquemos de la consulta
if(mysql_num_rows() != 0): Si los datos no son correctos, la consulta nos devolverб Cero columnas y si es diferente a cero, el ingreso fue exitoso
mysql_fetch_row_format(Insertar,"|"): Cuando sacamos los datos de la consulta, el formato es algo como esto: Variable|Otra Variable|Otra|Etc...
mysql_fetch_field_row: No guardara en el primer parбmetro lo que saquemos del segundo parбmetro
strmid: Nos insertara en la variable del jugador, lo que guardamos en el anterior item
SetPlayerName: Le coloca el Nombre al jugador
Si quieren pueden colocar los dos siguientes cуdigo abajo de todo el main para ver si nos quedo correcto

pawn Код:
IngresarUsuario(0, "Politicos", "Idiotas");
    IngresarUsuario(0, "Politicos", "NoIdiotas");

Ya que tenemos listo los dos Callbakc, el de ingreso y el de registro, vamos a crear los Diбlogos que nos pedirбn los datos.


Para un mejor manejo de los dialogos, definiremos los dialogid mediante un define

pawn Код:
#define             Dialog_Ingreso          001
    #define             Dialog_Registro         002
    #define             Dialog_Sexual           003
    #define             Dialog_IngReg           004
Luego, en el Callback OnPlayerConnect(playerid) Colocamos:

pawn Код:
new NombreE[MAX_PLAYER_NAME];
GetPlayerName(playerid, NombreE, sizeof(NombreE));
strmid(NombreNick[playerid], NombreE, 0, strlen(NombreE), 255);
ShowPlayerDialog(playerid, Dialog_IngReg, DIALOG_STYLE_LIST, " Registro o Ingreso", " >< Ingresar\n >< Registrar", "Aceptar", "Salir");
Lo cual nos mostrarнa una lista de 2 items para escoger, uno para registrar una nueva cuenta, y otro para ingresar en una nueva cuenta.


Код:
El GetPlayerName, almacenara el nombre en la variable NombreE y con el strmid lo meteremos es la variable NombreNick, ya muy pronto sabrбn el porque
Si nos sale bien el dialogo, lo siguiente seria hacer el script, para que cuando elijan un item, los lleve al dialogo correspondiente.

Nos dirijimos a OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) e ingresamos el siguiente codigo

pawn Код:
if(!response) return Kick(playerid); // Esto sera por si dan salir, los kickeamos
if(Dialog_IngReg == dialogid)
    {
        if(listitem == 0) // Ingreso
        {

        }
        else if(listitem == 1) // Registro
        {

        }
    }

dentro de la parte de ingreso, colocamos el siguiente cуdigo, para que nos muestre el Dialogo para ingresar el nombre de la cuenta

pawn Код:
ShowPlayerDialog(playerid, Dialog_Ingreso, DIALOG_STYLE_INPUT, "Ingresar", "Por favor, en el siguiente campo, coloca la contraseсa de la cuenta a la cual quieres ingresar", "Siguiente", "Volver");
Luego... Nos dirijamos otra ves a OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) e ingresamos el siguiente codigo

pawn Код:
if(Dialog_Ingreso == dialogid)
    {

    }
lo cual comprobara que el dialogo que queremos manejar es el dialogo de ingreso.

Dentro del anterior cуdigo, colocamos

pawn Код:
if(!response) return ShowPlayerDialog(playerid, Dialog_IngReg, DIALOG_STYLE_LIST, " Registro o Ingreso", " >< Ingresar\n >< Registrar", "Aceptar", "Salir");
        IngresarUsuario(playerid, NombreNick[playerid], inputtext);
Код:
!response: Si no respondio al dialogo, o le dio al boton 'Volver' nos enviara al dialogo de Ingresar o Registrar
IngresarUsuario: Llamariamos al callback que anteriormente creamos para ingresar al jugador
Код:
Ahora ven para lo que usamos NombreNick, para ingresar el usuario, mas adelante, otro usos como para registrar, y hacer update a la cuenta sin causar bugs
Luego nos volvemos al CallBack IngresarUsuario y donde esta la parte de que la contra es incorrecta, osea, donde tenemos el printf que decia Alguien NO ingreso correctamente
colocamos esto:

pawn Код:
ShowPlayerDialog(playerid, Dialog_Ingreso, DIALOG_STYLE_INPUT, "Ingresar", "Por favor, en el siguiente campo, coloca la contraseсa de la cuenta a la cual quieres ingresar\n Contraseсa Incorrecta", "Siguiente", "Volver");
Que seria para que volvieran al dialogo de ingreso si la contraseсa es incorrecta.



Ya tenemos listo la parte del ingreso, ahora nos dirigiremos a la parte de Registro.


Bбsicamente es casi lo mismo que con el ingreso, no necesitamos mayor cosa.

Agregamos el siguiente codigo a la parte de Registro

pawn Код:
new Comprobar[256];
            format(Comprobar, 256, "SELECT * FROM users WHERE Nick = '%s'", NombreNick);
            mysql_query(Comprobar);
            mysql_store_result();
            if(mysql_num_rows() == 0)
            {
                ShowPlayerDialog(playerid, Dialog_Registro, DIALOG_STYLE_INPUT, "Registrar", "Por favor, ingresa la contraseсa para tu cuenta", "Siguiente", "Volver");
            }
            else
            {
                SendClientMessage(playerid, 0xffffffff, " Tu nombre ya esta registrado, por favor, ahora ingresa a tu cuenta");
                ShowPlayerDialog(playerid, Dialog_Ingreso, DIALOG_STYLE_INPUT, "Ingresar", "Por favor, en el siguiente campo, coloca la contraseсa de la cuenta a la cual quieres ingresar", "Siguiente", "Volver");
            }
Код:
Comprobar: Sera la variable que tendrб la consulta
format: La funcion queingresa a la variable Comprobar la consulta para ver si ya existe un usuario con ese nombre registrado
mysql_query: Enviara la consulta
mysql_store_result(): Guardara el resultado de la consulta
mysql_num_rows() == 0: Si no existe ningъn usuario, nos mandara cero columnas y el usuario podra registrarse
Lo que esta entre el else: Sera lo que mandara al user a ingresar, en ves de a registrarse
nos habrб quedado algo como esto
pawn Код:
if(Dialog_IngReg == dialogid)
    {
        if(listitem == 0) // Ingreso
        {
            ShowPlayerDialog(playerid, Dialog_Ingreso, DIALOG_STYLE_INPUT, "Ingresar", "Por favor, en el siguiente campo, coloca la contraseсa de la cuenta a la cual quieres ingresar", "Siguiente", "Volver");
        }
        else if(listitem == 1) // Registro
        {
            new Comprobar[256];
            format(Comprobar, 256, "SELECT * FROM users WHERE Nick = '%s'", NombreNick[playerid]);
            mysql_query(Comprobar);
            mysql_store_result();
            if(mysql_num_rows() == 0)
            {
                ShowPlayerDialog(playerid, Dialog_Registro, DIALOG_STYLE_INPUT, "Registrar", "Por favor, ingresa la contraseсa para tu cuenta", "Siguiente", "Volver");
            }
            else
            {
                SendClientMessage(playerid, 0xffffffff, " Tu nombre ya esta registrado, por favor, ahora ingresa a tu cuenta");
                ShowPlayerDialog(playerid, Dialog_Ingreso, DIALOG_STYLE_INPUT, "Ingresar", "Por favor, en el siguiente campo, coloca la contraseсa de la cuenta a la cual quieres ingresar", "Siguiente", "Volver");
            }
        }
    }



Con lo siguiente...

pawn Код:
if(Dialog_Registro == dialogid)
    {

    }
Le decimos al gm que el dialogo que trabajaremos es el de Registro

dentro de eso colocaremos:

pawn Код:
if(!response) return ShowPlayerDialog(playerid, Dialog_IngReg, DIALOG_STYLE_LIST, " Registro o Ingreso", " >< Ingresar\n >< Registrar", "Aceptar", "Salir");
        RegistrarUsuario(playerid, NombreNick[playerid], inputtext);
y LISTO, ya tendremos nuestro primer GameMode realizado de cero y con MySQL.

Actualizacion: Aсadido el guardado de datos al desconectarse. [25/02/2012]

Con lo siguiente podrбn guardar en una tabla las variables al desconectarse.

El siguiente cуdigo sirve para lo anterio, deberan colocarlo en el public OnPlayerDisconnectr. (Lo que dije lineas arriba)

Quote:
UPDATE `tabla` SET `Variable` = 'Valor' WHERE `Nick` = 'NombreUser'
Quote:
UPDATE: Le decimos a MySql que queremos Modificar(Yo le digo Updatear) una tabla elejida
SET `Variable` = 'Valor': Le diremos a MySql, que setearemos en una variable un valor.
WHERE `Nick` = 'NombreUser':Le decimos que el valor updateado tendra que ser del usuario que escogemos

Un ejemplo seria, que queramos guardar la variable GeneroSexual del jugador porque en el juego, le dieron ganas de ser del sexo opuesto:

pawn Код:
new updateInt[256];
format(updateInt, sizeof(updateInt), "UPDATE `users` SET `GeneroSexual` = '%s' WHERE `Nick` = '%s'", Users[playerid][GeneroSexual], NombreNick[playerid]);
mysql_query(updateInt);
Код:
El NombreNick lo usamos, por que cuando uno se desconecta, y queremos guardar los datos, debemos saber el nombre del usuario, pero al usar GetPlayerName, no obtendremos nada, dado que el usuario ya esta desconectado, en cambio, como el nombre ya estaba guardado en la variable NombreNick, las variables se guardaran correctamente, y no tendremos la necesidad de crear un public que se repita para guardar las variables.
Si en ves de guardar un Texto, lo que quieren guardar es un numero, cambien SET `NombreVariable` = '%s' por esto SET `NombreVariable` = '%d', ven que cambiamos el %s, por %d, puesto que el %s recibe variables tipo String, y el %d, tipo int. Para un Float, seria %f.

Quote:
format:Setea las variables a la consulta
mysql_query: Envнa la consulta

El GameMode que se ah creado mediante este tutorial, funciona correctamente, no se posteara el Gm, para que aprendas MySql y no te hagas el vago solo modificandolo.



Creditos

Del Tutorial: Solamente mio
De los Cуdigos: De sus respectivos creadores
Reply
#2

Excelente tutorial. Pero podrias usar [*PAWN] para poner los cуdigos en pawn +rep
Reply
#3

jajaja, cierto, es que solo copie el tutorial de otra web, y en esa el [*pawn] no sirve mucho XD
Reply
#4

Las consultas no estбn separadas en otro thread distinto, si la consulta se llega a colgar interrumpe todo el proceso del server y ocurrirнan esos segundos de lag que se freezea todo.
Reply
#5

Grasias por el aportee !..
Reply
#6

Quote:
Originally Posted by Kurama
Посмотреть сообщение
Las consultas no estбn separadas en otro thread distinto, si la consulta se llega a colgar interrumpe todo el proceso del server y ocurrirнan esos segundos de lag que se freezea todo.
Podrias explicarme como es eso, como hago para que no de lagg?
Reply
#7

Voy a incluirlo en mi sistema de administracion para probarlo! Se agradece wachon!
Reply
#8

Buenas, al agregar mysql_query me aparece el siguiente error
Код:
C:\X\gamemodes\X.pwn(42) : error 010: invalid function or declaration
Pawn compiler 3.2.3664	 	 	Copyright © 1997-2006, ITB CompuPhase


1 Error.
esto es lo que hay en esa linea:
pawn Код:
mysql_query("CREATE TABLE IF NOT EXISTS users (Id_User INT(5) NOT NULL AUTO_INCREMENT, Nick VARCHAR(34) NOT NULL, Pass VARCHAR(34) NOT NULL, PRIMARY KEY (Id_User))");
Si lo quito no aparece ningъn error y el servidor se conecta perfectamente

Utilizo la versiуn R7 de mysql, probe a cambiar a R6 y a cambiar las variables por mysql_function_query teniendo la R7
y siguen apareciendo errores

No se si es por que hay que aсadir algo mбs en el gm o modificar algo de esa linea, o por la libreria del mysql que tengo instalado


Espero que alguien sepa solucionar esto

Un saludo, y gracias de antemano
Reply
#9

Quote:
Originally Posted by motocros_elche
Посмотреть сообщение
Buenas, al agregar mysql_query me aparece el siguiente error
Код:
C:\X\gamemodes\X.pwn(42) : error 010: invalid function or declaration
Pawn compiler 3.2.3664	 	 	Copyright © 1997-2006, ITB CompuPhase


1 Error.
esto es lo que hay en esa linea:
pawn Код:
mysql_query("CREATE TABLE IF NOT EXISTS users (Id_User INT(5) NOT NULL AUTO_INCREMENT, Nick VARCHAR(34) NOT NULL, Pass VARCHAR(34) NOT NULL, PRIMARY KEY (Id_User))");
Si lo quito no aparece ningъn error y el servidor se conecta perfectamente

Utilizo la versiуn R7 de mysql, probe a cambiar a R6 y a cambiar las variables por mysql_function_query teniendo la R7
y siguen apareciendo errores

No se si es por que hay que aсadir algo mбs en el gm o modificar algo de esa linea, o por la libreria del mysql que tengo instalado


Espero que alguien sepa solucionar esto

Un saludo, y gracias de antemano
Intentaste con la r6 sin modificar nada?creo que este tuto esta echo para la r6 :P (aunque no estoy seguro 100%)
Reply
#10

Excelente tutorial amigo voy a pasar mi gm a mysql ahora xd, +rep.
Reply
#11

Tengo un problema... Cuando abro el phpMyAdmin y no abre osea abre en mi navegador una pagina pero sale el tipico "Ops la pagina no existe" que puede ser lo ise talcual esta en el tuto... talves sea la instalacion? o que. xfa ayudenmen.
Reply
#12

Quote:
Originally Posted by Dreyfuz
Посмотреть сообщение
Tengo un problema... Cuando abro el phpMyAdmin y no abre osea abre en mi navegador una pagina pero sale el tipico "Ops la pagina no existe" que puede ser lo ise talcual esta en el tuto... talves sea la instalacion? o que. xfa ayudenmen.
fijate ke lo hallas iniciado al phpMyAdmin , desde los iconos donde esta el reloj de la pc lo puedes encender.
Reply
#13

Quote:
Originally Posted by bytytus
Посмотреть сообщение
fijate ke lo hallas iniciado al phpMyAdmin , desde los iconos donde esta el reloj de la pc lo puedes encender.
Sis esta encendido pero igual sigue apareciendo como que la pagina no existe..
Reply
#14

Deberнan hacer una base de datos local Para SA:MP
Reply
#15

Amigo y si ya tengo mi sistema de registro, como hago para que cuando alguien se registre se guarde en user.
tengo la db ya conectada y todo y ya creada la tabla pero no se hacer eso. la tabla tiene asi adentro userip username password. como guardo los datos??
Reply
#16

Quote:
Originally Posted by xXThePiloHackXx
Посмотреть сообщение
Amigo y si ya tengo mi sistema de registro, como hago para que cuando alguien se registre se guarde en user.
tengo la db ya conectada y todo y ya creada la tabla pero no se hacer eso. la tabla tiene asi adentro userip username password. como guardo los datos??
https://sampforum.blast.hk/showthread.php?tid=559935

Mira en las funciones.
Reply
#17

Quote:
Originally Posted by xXThePiloHackXx
Посмотреть сообщение
Amigo y si ya tengo mi sistema de registro, como hago para que cuando alguien se registre se guarde en user.
tengo la db ya conectada y todo y ya creada la tabla pero no se hacer eso. la tabla tiene asi adentro userip username password. como guardo los datos??
Cuando obtengas la pass con la que se registro el usuario envias una consula INSERT con el nombre y la contraseсa

Код:
INSERT INTO `users` (`Nick`, `Pass`) VALUES ([value-Nick],[value-Pass])
Reply
#18

Ya que estamos... cuanto cobras por un tutorial normalmente?
Reply
#19

Quote:
Originally Posted by DesingMyCry
Посмотреть сообщение
Ya que estamos... cuanto cobras por un tutorial normalmente?
Depende del tipo del guнa, a veces pido un "gracias" otras veces pido "criticas", pero en este no pedi nada.
Reply
#20

Te aviso que no puedes cobrar aquн en el foro, a menos que sea como scripter de alguien.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)