Ir al contenido principal

[RELEASE] Swift Emulator - Fixes / Edits

Hice algunos arreglos para que este cambio de nombre BCStorm utilizable. Sin embargo, para que este emulador estable que sería necesaria una reescritura completa en 2 sistemas principales: Grupos y regalos. Ambos son bien mal codificados o con fugas. Sin embargo, mi objetivo era codificar algo nuevo sólo para knowledgement. Si tengo suficientes recursos en algún servidor minorista podría codificar un nuevo sistema de grupos a partir de cero, ya que no vale la pena ir a un mayor desarrollo en cualquier cosa basada en BCStorm

En primer lugar, usted debe querer reemplazar sus Incoming.cs y Outgoing.cs para el siguiente. Esto debería solucionar: Comercio, Mount, Jukebox, RoomAds (Sitio web), GiveRights, Borrar amigos.

Ambos Incoming.cs y Outgoing.cs se unen al hilo.

Ahora, la pieza de escribir por mí de stratch. Este fue también mi primera muestra de servidor de emulación de C #. Espero que ustedes analizarlo y yo si que mejorar mi código contar.

Relaciones perfil:
MySql Query:


Code:
 SET FOREIGN_KEY_CHECKS=0;-- ----------------------------
-- Table structure for `user_relationships`
-- ----------------------------
DROP TABLE IF EXISTS `user_relationships`;
CREATE TABLE `user_relationships` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `requester_id` int(10) unsigned NOT NULL,
  `target_id` int(10) unsigned NOT NULL,
  `relationshipstatus` int(1) NOT NULL DEFAULT '0',
  PRIMARY KEY (`id`),
  KEY `requester_id` (`requester_id`) USING BTREE,
  KEY `target_id` (`target_id`) USING BTREE,
  KEY `rstatus` (`relationshipstatus`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=latin1;

SWFs: Descargar Archivo Aqui Actualizado
@htdocs/swfs 
Recommend you to use the vars released with revision 3 as I changed some stuff.


[SQL Injection exploit fix. Must apply if you are using any of following releases]
Code:
Search for:
Code:
dbClient.runFastQuery("UPDATE user_bots SET name = '" + Data + "' WHERE id = '" + BotId + "'");

and Replace with

dbClient.setQuery("UPDATE user_bots SET name = '@data' WHERE id = '" + BotId + "'");
dbClient.addParameter("data",Data);
dbClient.runQuery();


Current Revision Download [REVISION 4]

REVISION 4 Notes
Spoiler

REVISION 4:

Download: Descargar Archivo Aqui Revisión 4
(Clean database and english gamedata included)

  1. Corregido posible exploit de inyección MySQL;
  2. Fija calificación ambiente;
  3. Misiones están trabajando;
  4. Es posible fijar para la gestión de bases de datos mascotas causando algunos errores críticos desde la mariposa;
  5. Añadido sistema de cierre adecuado para el cierre forzado;
  6. Freeze está trabajando;
  7. Ahora usted tiene la opción de dar a un usuario de una tarjeta de identificación cuando se compra un muebles. Coloque el código de la tarjeta en la columna insignia catalog_pages_copy;
  8. Furni-o-matic está trabajando ahora (gracias a = dj.matias =). Asegúrese de editar la tabla ecotron_rewards;
  9. Bots fijo cambio de nombre;
  10. Otras cosas de estabilidad que no me importa.


MySQL Querys for old databases:

Code:
ALTER TABLE catalog_items_copy ADD badge VARCHAR(20) NOT NULL DEFAULT '';

INSERT INTO catalog_pages VALUES ('1060', '9999', 'Rewards', '3', '983', '1', '1', '1', '0', '0', '2', 'recycler_prizes', 'catalog_header_furnimatic', '', '', '', '', '', '', '', '', '', '0', '', '');
Tenga en cuenta que las siguientes características sólo funcionan con Inglés furnidata por ahora (si está usando mi items_base)
Jukebox
Battle Banzai Furni

Ellos están completamente codificados y funcional para Inglés furnidata solamente Identificación sprites.


Images:
Spoiler













Déjame saber si usted encuentra algún error. No he movido el registrador de paquetes para esta versión porque estaba muy cansada. Lo haré en la próxima.


REVISION 3 Notes
Spoiler
Revision 3:

Descargar Archivo Aqui Actualizado Revisión 3

Query: 
SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Table structure for `user_bots`
-- ----------------------------
DROP TABLE IF EXISTS `user_bots`;
CREATE TABLE `user_bots` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`room_id` int(10) unsigned NOT NULL DEFAULT '0',
`ai_type` enum('generic','guide','pet') NOT NULL DEFAULT 'generic',
`name` varchar(100) NOT NULL,
`motto` varchar(120) NOT NULL,
`look` text NOT NULL,
`x` int(11) NOT NULL DEFAULT '0',
`y` int(11) NOT NULL DEFAULT '0',
`z` int(11) NOT NULL DEFAULT '0',
`rotation` int(11) NOT NULL DEFAULT '0',
`walk_mode` enum('stand','freeroam','specified_range') NOT NULL DEFAULT 'stand',
`min_x` int(11) NOT NULL DEFAULT '0',
`min_y` int(11) NOT NULL DEFAULT '0',
`max_x` int(11) NOT NULL DEFAULT '0',
`max_y` int(11) NOT NULL DEFAULT '0',
`user_id` int(11) NOT NULL DEFAULT '0',
`template_id` int(11) NOT NULL DEFAULT '0',
`automatic_chat` enum('false','true') NOT NULL DEFAULT 'false',
`speaking_interval` int(11) NOT NULL DEFAULT '7',
PRIMARY KEY (`id`),
KEY `room_id` (`room_id`) USING BTREE
) ENGINE=MyISAM AUTO_INCREMENT=11 DEFAULT CHARSET=latin1;


  • Añadido empuñadura auxiliar para artículos no maneja la base de datos. Debe arreglar eso falla aleatoria de BCStorm donde ha colocado un elemento de la habitación y no podía entrar más;
  • Mensajes de alerta fijos;
  • Se ha corregido un error por el que los muebles no se envía al propietario currect al recogerlo. Ahora es 100% seguro para colocar su muebles en otras habitaciones. Si la habitación se elimina o si el dueño recoger su muebles, vendrá de nuevo a usted;
  • Bots fijos y mascotas serializar. Ahora bien, no se hace un lío más porque entre iguales ID virtual;
  • Completo gestor de bot. Ahora la función de chat y automática las acciones de bots son 100% funcionales. Además, los robots no deben quedar arrinconado en los rincones más.
  • Mejora un poco pequeña perfomance de grupos compositor. Más que hacer sobre esto;
  • Enviar ticket de soporte ahora está trabajando de nuevo.


~ Para fijada todavía:
Todos pueden montar a caballo;
Apertura pestaña Misiones;
Manejador Jukebox veces dejan de funcionar. No sé lo que todavía es. Yo podría ir a una reescritura completa de máquinas tocadiscos. (Podría ser algo relacionado con variables como caballo teñido también, pero yo no sé lo que es ahora)
Actualización de cabeceras Mannequin? Supongo que me olvidé de que para esta revisión. Podría hacer para el siguiente;
Cambiador mirada Fútbol;
Puertas de una vía;
Aplicar soluciones para Ecotron / Furni-o-matic y conseguir un emblema en la compra de un mueble. Ya a la venta aquí. Sólo requiere actualizar los encabezados supongo.


Después de todo esto se termine, voy a actualizar este emulador a la misma versión que PlusEmulator o para la que yo tengo agrietado de mayo.

Si usted tiene algún problema relacionado con el teñido o montar su caballo debe utilizar las variables dentro de esta revisión. Rar

Nota: Los perfiles en el juego no funciona para las cuentas creadas con Illumina CMS. Es una mala CMS todos modos por lo que no se debe utilizar. Yo no sé casi nada de php, así que no voy a tratar de arreglar eso. Pero sería genial si alguien pudiera arreglarlo. (Perfiles dentro del juego funcionan bien para UberCMS2)


En este punto hay que decir que esta revisión es más estable que cualquier otra edición BCStorm. Además, estoy interesado en cualquier error que puede iniciar para que podamos solucionar este problema y hacerlo mejor.


REVISION 2 Database: Descargar Archivo Aqui Actualizado Database FIX
REVISION 2 Notes
Spoiler
Gracias por los comentarios, que realmente disfrutan deving Habbo para knowledment. Tengo algo de tiempo hoy, así que terminé otra actualización de la base que estaba molestando mucho. Desde su lanzamiento el sistema de grupos BCStorm estaba rota. Fue permeable, no es óptima y, como llegué a conocer más tarde, muy ambiguo. Por ejemplo, cada vez que solicite algún grupo para cargar desde la memoria, el programa utiliza para que desempeñasen tareas dos veces. Eso no es eficaz y puede ser tomado como un error. Sin embargo, creo que me di cuenta de todo el consumo de memoria y baja el rendimiento dilema para esta versión e hice lo bueno y el sistema óptimo para disponer y manejar grupos objetcs. Después de horas de pruebas, te puedo mostrar estos datos:

Para cada grupo en caché, hay un consumo de 13,1 ~ 13,3 K + GroupMemberNumber * 0,07 K de memoria. Esto significa que si usted tiene 5,000 grupos con una media de 100 miembros cargados, usted debe tener un consumo de memoria de 100MBytes ~. Como no tengo acesso a cualquier hotel de alta poblada de probarlo, yo creer que debe haber 5000groups cargados para todos los usuarios 500online. Eso parecía una buena actuación. Pero no fue suficiente. Así que también creó un sistema para eliminar los grupos no utilizados (las que se cargan por la carga de un perfil, por ejemplo). Este sistema dispone a punto de 95% de los gremios cargados sobre everyLowPriorityWork.Process ciclo (30s). Esto significa que el 95% de este 100MBytes utilizados por 5000 grupos cargados es libre de ser utilizado de nuevo después de 30 segundos.

Con ese resultado, me creer que yo era capaz de solucionar este problema con respecto BCStorm de Edita / upgrates inestabilidad de rendimiento respecto a los grupos, por lo que es posible utilizar para alta poblada servers.However vivo, esto es sólo una suposición basada en los datos que recogí. Se requiere que las pruebas aspecto.

Como lo hice demasiado ediciones, no me arranco el código de salida como yo lo hice para Relaciones (zzzzz '). Pero no dudes en usarlo en su propio build. Eso también solucionar el problema con respecto a no poder editar su grupo después de la compra, en el que tuve que volver a cargar el emulador para tener acesso a esta función.
Download AKllX's Swift Emulator Revision 2:Descargar Archivo Aqui Actualizado


Para ser aún fijado:


Serializar colocar bots / mascotas en la habitación (que habla del lado del cliente que son los mismos);
Maneje derechos de propietario de muebles para el público: pickall y sala de borrar. Como lo es ahora, todo muebles coloca en una sala por algún usuario que no posee la sala puede ser recogido por el propietario de la sala;
Maneje algunos de estos bichos raros que al azar (no realmente) suceden. Estoy interesado en cualquier error que pueda encontrar. Sólo publicaremos aquí.


Catalogar herramienta de reparación. Esto debería solucionar el 99,9% de sus problemas de catálogo.
Spoiler
Code:
<?php

$db_host = "localhost";    // MySQL Host
$db_user = "root";        // MySQL User
$db_pass = "akllxistheebest";        // MySQL Passwort
$db_database = "adma1";    // MySQL Datenbank


$connect = mysql_connect($db_host, $db_user, $db_pass) or die("Konnte keine Verbindung zum MySQL-Server aufbauen, Fehler: ".mysql_error());
$db = mysql_select_db($db_database, $connect) or die("Konnte keine Verbindung mit der MySQL-Datenbank aufbauen, Fehler: ".mysql_error());


$data = file_get_contents("http://localhost/swfs/furnidata.txt");
$data = str_replace("\n", "", $data);
$data = str_replace("[[", "[", $data);
$data = str_replace("]]", "]", $data);
$data = str_replace("][", "],[", $data);




foreach (explode('],[', $data) as $val)
{
    $val = str_replace('[', '', $val);
    $val = str_replace(']', '', $val);


    $bits = explode(',', $val);
    $name = str_replace('"', '', $bits[2]);


    $stufftoupdate[] = '[' . $val . ']';
}


foreach ($stufftoupdate as $stuff)
    {


        #Start main stuff
        $stuff = str_replace('"s",', '', $stuff);
        $stuff = str_replace('"i",', '', $stuff);
        $furni = explode('[', $stuff);
        $furni = explode(']', $furni[1]);
        #End main stuff


        #Start select item_name
        $nome = explode('","', $furni[0]);
        $nome = explode('","', $nome[1]);
        $nome = $nome[0];
        #End select item_name


        #Start select sprite_id
        $id = explode('"', $furni[0]);
        $id = explode('","', $id[1]);
        $id = $id[0];
        #End select sprite_id


        #Start select width
        $width = explode('","', $furni[0]);
        $width = explode('","', $width[4]);
        $width = $width[0];
        #End select width


        #Start select length
        $length = explode('","', $furni[0]);
        $length = explode('","', $length[5]);
        $length = $length[0];
        #End select length


        #Start select name
        $name = explode('","', $furni[0]);
        $name = explode('","', $name[7]);
        $name = $name[0];
        #End select name


        $idfurni = mysql_query("SELECT * FROM items_base WHERE item_name = '$nome'");
        $furni = mysql_fetch_array($idfurni);
        $furniid = $furni['item_id'];
        $update = mysql_query("UPDATE items_base SET sprite_id='$id', public_name='$name', width='$width', length='$length' WHERE item_id='$furniid' LIMIT 1");
        if ($update==FALSE) echo("MySQL error in item ".$nome."<br/><br/>");
        else echo("Item ".$nome." updated<br/><br/>");
    }
?>


/ / Eliminar referencias individuales de actualización. El texto fue demasiado maldito tiempo.
Descargar Archivo Aqui Code










Comentarios

Entradas populares de este blog

[CMS]Deck CMS V1| Buena index |Based Lavvos| es para xamp y iss [Habbo] ACTUALIZADO 20/04/2013

Emulador HabboLatino New Crypto ACTUALIZADO 19/04/2013

New Habbo Room Layout (Working on any server)