20.12.2012, 15:02
No shown the second dialog window. Any suggestions?
No work in ubuntu server, in windows server work. Help me pls, thx ^^
No work in ubuntu server, in windows server work. Help me pls, thx ^^
#include <a_samp> #include <rBits> //---------------------------------------------------------- // FORWARD: //---------------------------------------------------------- //---------------------------------------------------------- // DEFINE: //---------------------------------------------------------- // Informacion del servidor: #define INFO_NOMBRE_SERVIDOR "Server" #define INFO_VERSION_SERVIDOR "1.0" //---------------------------------------------------------- // NEW: //---------------------------------------------------------- // Sistema Mysql: new Bit1: g_PlayerLogged <MAX_PLAYERS>; new Bit16: g_AdminLevel <MAX_PLAYERS>; new DB: Database; //---------------------------------------------------------- // CODIGO INTERNO DEL SCRIPT: //---------------------------------------------------------- public OnFilterScriptInit() { //-------------------------------------------------------- // Sistema Mysql: //-------------------------------------------------------- // Conexion con la base de datos del servidor: Database = db_open("ServerDatabase.db"); // Creacion de tablas en la base de datos, si no existiese: db_query(Database, "CREATE TABLE IF NOT EXISTS `USERS` (`NAME`, `PASSWORD`, `IP`, `SCORE`, `CASH`, `ADMINLEVEL`)"); // Mensaje de la ejecucion del script: print("Scripts del Gamemode habilitados correctamente."); return 1; } public OnFilterScriptExit() { //-------------------------------------------------------- // Sistema Mysql: //-------------------------------------------------------- // Desconexion con la base de datos del servidor: for (new i; i != MAX_PLAYERS; i++) OnPlayerDisconnect(i, 1); db_close(Database); //Mensaje de detencion de la ejecucion del script: print("Scripts del Gamemode deshabilitados correctamente."); return 1; } main() { // Mensaje que se mostrara en la consola del servidor: print("Gamemode cargado correctamente."); } //---------------------------------------------------------- // CODIGO EXTERNO DEL SCRIPT: //---------------------------------------------------------- public OnGameModeInit() { // Informacion del Servidor: SetGameModeText("Server Test"); // Impide que se vean en el mapa los usuarios conectados: ShowPlayerMarkers(0); // Las ruedas de los vehiculos pueden ser pinchadas: EnableTirePopping(0); // Todos los coches apagados: // ManualVehicleEngineAndLights(); // Skins disponibles a elegir: AddPlayerClass(101,1653.5210,-2329.4944,13.5469,1.2957,-1,-1,-1,-1,-1,-1); AddPlayerClass(10,1653.5210,-2329.4944,13.5469,1.2957,-1,-1,-1,-1,-1,-1); AddPlayerClass(12,1653.5210,-2329.4944,13.5469,1.2957,-1,-1,-1,-1,-1,-1); return 1; } public OnGameModeExit() { return 1; } public OnPlayerRequestClass(playerid, classid) { SetPlayerColor(playerid, COLOR_BLANCO); SetPlayerPos(playerid, 2370.5166,2165.1321,26.9844); SetPlayerCameraPos(playerid, 2374.5188,2169.5798,26.9844); SetPlayerCameraLookAt(playerid, 2370.5166,2165.1321,26.9844); SetPlayerFacingAngle(playerid,315.9228); ApplyAnimation(playerid,"DANCING","dnce_M_b",4.1,7,5,1,1,1); return 1; } public OnPlayerConnect(playerid) { //-------------------------------------------------------- // Sistema Mysql: //-------------------------------------------------------- // Nuevas variables: new Query[ 150 ]; new DBResult: Result; new name[ MAX_PLAYER_NAME ]; GetPlayerName(playerid, name, sizeof(name)); Bit1_Set(g_PlayerLogged, playerid, false); // Lectura del usuario en la base de datos: format(Query, sizeof(Query), "SELECT `NAME` FROM `USERS` WHERE `NAME` = '%s'", DB_Escape(name)); Result = db_query(Database, Query); // Si el nombre introducido esta registrado: if (db_num_rows(Result)) { // Mensaje de logueo para el usuario: format(Query, sizeof(Query), "Bienvenido al servidor Infernus %s(%d)! Por favor, introduzque la contraseсa de vuestra cuenta para poder loguear.", name, playerid); ShowPlayerDialog(playerid, 1, DIALOG_STYLE_INPUT, "SISTEMA DE LOGUEO", Query, "Conectar", "Salir"); } // Si el nombre introducido no esta registrado: else { // Mensaje de registro para el nuevo usuario: format(Query, sizeof(Query), "Bienvenido al servidor Infernus %s(%d)! Para registraros, introduzca la contraseсa para vuestra cuenta.", name, playerid); ShowPlayerDialog(playerid, 0, DIALOG_STYLE_INPUT, "SISTEMA DE LOGUEO", Query, "Registrarse", "Salir"); } db_free_result(Result); return 1; } public OnPlayerDisconnect(playerid, reason) { //-------------------------------------------------------- // Sistema Mysql: //-------------------------------------------------------- // Nuevas variables: new Query[ 200 ]; new name[ MAX_PLAYER_NAME ]; GetPlayerName(playerid, name, sizeof(name)); // Almacenamiento de datos cuando se desconecta el jugador: if (Bit1_Get(g_PlayerLogged, playerid) == 1) { // Tablas en las que se almacenara la informacion del jugador: format(Query,sizeof(Query),"UPDATE `USERS` SET SCORE = '%d', CASH = '%d', ADMINLEVEL = '%d' WHERE `NAME` = '%s'", GetPlayerScore(playerid), // Puntos del jugador. GetPlayerMoney(playerid), // Dinero del jugador. Bit16_Get(g_AdminLevel, playerid), // Accesslevel del jugador. DB_Escape(name)); // Desconexion del jugador. // Lectura de la desconexion: db_query(Database, Query); Bit1_Set(g_PlayerLogged, playerid, false); } return 1; } public OnPlayerSpawn(playerid) { return 1; } public OnPlayerDeath(playerid, killerid, reason) { return 1; } public OnVehicleSpawn(vehicleid) { return 1; } public OnVehicleDeath(vehicleid, killerid) { return 1; } public OnPlayerText(playerid, text[]) { return 1; } public OnPlayerCommandText(playerid, cmdtext[]) { return 1; } public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger) { return 1; } public OnPlayerExitVehicle(playerid, vehicleid) { return 1; } public OnPlayerStateChange(playerid, newstate, oldstate) { return 1; } public OnPlayerEnterCheckpoint(playerid) { return 1; } public OnPlayerLeaveCheckpoint(playerid) { return 1; } public OnPlayerEnterRaceCheckpoint(playerid) { return 1; } public OnPlayerLeaveRaceCheckpoint(playerid) { return 1; } public OnRconCommand(cmd[]) { return 1; } public OnPlayerRequestSpawn(playerid) { return 1; } public OnObjectMoved(objectid) { return 1; } public OnPlayerObjectMoved(playerid, objectid) { return 1; } public OnPlayerPickUpPickup(playerid, pickupid) { return 1; } public OnVehicleMod(playerid, vehicleid, componentid) { return 1; } public OnVehiclePaintjob(playerid, vehicleid, paintjobid) { return 1; } public OnVehicleRespray(playerid, vehicleid, color1, color2) { return 1; } public OnPlayerSelectedMenuRow(playerid, row) { return 1; } public OnPlayerExitedMenu(playerid) { return 1; } public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid) { return 1; } public OnPlayerKeyStateChange(playerid, newkeys, oldkeys) { return 1; } public OnRconLoginAttempt(ip[], password[], success) { return 1; } public OnPlayerUpdate(playerid) { return 1; } public OnPlayerStreamIn(playerid, forplayerid) { return 1; } public OnPlayerStreamOut(playerid, forplayerid) { return 1; } public OnVehicleStreamIn(vehicleid, forplayerid) { return 1; } public OnVehicleStreamOut(vehicleid, forplayerid) { return 1; } public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) { //-------------------------------------------------------- // Sistema Mysql: //-------------------------------------------------------- // Nuevas variables: new Query[ 256 ]; new DBResult: Result; new name[ MAX_PLAYER_NAME ]; new ip[ 16 ]; GetPlayerName(playerid, name, sizeof(name)); GetPlayerIp(playerid, ip, sizeof(ip)); // Codigo de los dialogos (Usuario Registrado): if (dialogid == 1) { // El jugador esta registrado: if (response) { // Lectura del usuario en la base de datos: format(Query, sizeof(Query), "SELECT * FROM `USERS` WHERE `NAME` = '%s' AND `PASSWORD` = '%s'", DB_Escape(name), DB_Escape(inputtext)); Result = db_query(Database, Query); // Conexion realizada correctamente: if (db_num_rows(Result)) { // Nueva variable: new Field[ 20 ]; // Carga el score del jugador: db_get_field_assoc(Result, "SCORE", Field, 30); SetPlayerScore(playerid, strval(Field)); // Carga el dinero del jugador: db_get_field_assoc(Result, "CASH", Field, 30); GivePlayerMoney(playerid, strval(Field)); // Carga el accesslevel del jugador: db_get_field_assoc(Result, "ADMINLEVEL", Field, 30); Bit16_Set(g_AdminLevel, playerid, strval(Field)); // El jugador loguea al servidor: Bit1_Set(g_PlayerLogged, playerid, true); // Mensaje de logueo en la consola del servidor: SendClientMessage(playerid, -1, "Conexion realizada correctamente, disfrute! "); } // La contraseсa indicada es incorrecta: else { // Mensaje de aviso de la contraseсa incorrecta: format(Query, sizeof(Query), "Actualmente ya os encontrais registrado, por favor indiquenos su contraseсa para loguear.", name, playerid); ShowPlayerDialog(playerid, 1, DIALOG_STYLE_INPUT, "SISTEMA DE LOGUEO", Query, "Conectar", "Salir"); // Show the player the wrong password message. SendClientMessage(playerid, -1, "Contraseсa incorrecta , intentelo de nuevo."); } // Actualizando base de datos: db_free_result(Result); } else { return Kick(playerid); } // Codigo de los dialogos (Usuario No Registrado): if (dialogid == 0) { // El jugador no esta registrado: if (response) { // Sistema de seguridad del nombre: if (strlen(inputtext) > 24 || strlen(inputtext) < 3) { // Mensaje de aviso por el uso de un nombre no valido: format(Query, sizeof(Query), "Actualmente ya os encontrais registrado, por favor indiquenos su contraseсa para loguear.", name, playerid); ShowPlayerDialog(playerid, 1, DIALOG_STYLE_INPUT, "SISTEMA DE LOGUEO", Query, "Conectar", "Salir"); // Send a message about the length of characters used for their password. SendClientMessage(playerid, -1, "ERROR: Vuestra contraseсa ha de tener entre 3 - 24 caracteres!"); } else { // Creando en la base de datos al nuevo usuario: format(Query, sizeof(Query), "INSERT INTO `USERS` (`NAME`, `PASSWORD`, `IP`, `SCORE`, `CASH`, `ADMINLEVEL`) VALUES('%s','%s','%s', '0', '0', '0')", DB_Escape(name), DB_Escape(inputtext), DB_Escape(ip)); db_query(Database, Query); // El jugador loguea al servidor: Bit1_Set(g_PlayerLogged, playerid, true); // Valores iniciales del jugador: GivePlayerMoney(playerid, 500); // Dinero inicial. SetPlayerScore(playerid, 0); // Score "0" // Mensaje de conexion con el servidor: SendClientMessage(playerid, -1, "Felicidades! Habeis creado una cuenta en nuestro servidor, que comienze vuestra aventura!"); } } else { return Kick(playerid); } } } return 1; } public OnPlayerClickPlayer(playerid, clickedplayerid, source) { return 1; } //---------------------------------------------------------- // CODIGO ADICIONAL DEL SCRIPT: //---------------------------------------------------------- // Sistema Mysql: stock DB_Escape(text[]) { new ret[80 * 2], ch, i, j; while ((ch = text[i++]) && j < sizeof (ret)) { if (ch == '\'') { if (j < sizeof (ret) - 2) { ret[j++] = '\''; ret[j++] = '\''; } } else if (j < sizeof (ret)) { ret[j++] = ch; } else { j++; } } ret[sizeof (ret) - 1] = '\0'; return ret; }