Heyho Towner,
Da mein erstes Tutorial nicht so geklappt hat, habe ich es neu & besser erklärt.
Probleme ect. sofort mir melden!
Ich erkläre euch heute wie ihr ein r63B Hotel erstellt.
Was müsst ihr besitzen?
- Freien Arbeitsplatz
- Geduld
- Ein Gehirn [!]
- reCMS [Egal ob edit oder Sonstiges!]
Downloadlinks:
Alles was mit einem * makiert ist, MUSS man downloaden.
reCMS [Lemon]: File-Upload.net - reCMS--Lemon-.rar [Virus/Shell gelöscht!] [Du kannst auch ein anderes reCMS nehmen!]
Virustotal: Zu Groß!
*Datenbank: File-Upload.net - laly.sql
Virustotal: In einer Datenbank?
*BcStorm [fixxed]: File-Upload.net - Emulator.rar
Virustotal: Antivirus scan for 95e614016e68a5dea59b2bd8fa7478b3 at 2013-01-15 14:43:42 UTC - VirusTotal
*SWF: working swfs+banner+imager - Download - 4shared - Adam R
Virustotal: Zu Groß!
*MySQL 6.5.4: mysql-connector-net-6.5.4 - Download - 4shared
Zu 4shared, wer keine Lust hat sich zu registrieren, hier ist mein Account:
E-Mail: isso_00@hotmail.de Passwort: isso00
Sonstiges:
Features von dem Emulator könnt ihr hier sehen:
[Release] [SOURCE] BcStorm - The whole caboodle. - RaGEZONE forums
Tutorial:
Spoiler anzeigen
1. Importieren
1.1: Datenbank
Als erstes geht ihr auf localhost/phpmyadmin/Navicat.
Danach geht ihr auf importieren und wählt die Datenbank ''laly'' aus zum importieren.
2. Entpacken
2.1: CMS
Nun wählt ihr das ganze CMS aus und entpackt es in euer htdocs/wwwroot.
2.2: SWF
Nun öffnet euren SWF Ordner was dauern könnte. Ihr wählt ''swfs'' und ''habbo-imaging''.
Dies entpackt ihr auch in eurem htdocs/wwwroot.
3. Einstellung
3.1: CMS
Nun klickt ihr auf eurem htdocs/wwwroot.
Danach klickt ihr auf ''data_classes'' danach auf ''server-data.php_data_classes-config.php.php''.
Da steht:
Spoiler anzeigen
<?php
$MySQLhostname = "localhost";
$MySQLusername = "root";
$MySQLpassword = "123";
$MySQLdb = "lemon2";
$cms_version = "1.0";
$avatar = "http://www.habbo.de/habbo-imaging/avatarimage?figure=";
?>
Nun ersetzt ihr ''123'' durch euer Datenbank Passwort.
Ihr ersetzt auch noch ''lemon2'' durch euer Datenbankname.
3.2: SWF
Nun geht ihr auf htdocs/wwwroot -> swfs -> external_variables.
Ihr ersetzt überall wo ''5.135.179.52/storm'' steht durch ''EURE IP ODER DOMAIN/swfs''.
3.3: Emulator
Ihr klickt auf ''BcStorm [fixxed]'' danach auf bin -> Debug -> settings -> configuration.ini.
Da steht:
Spoiler anzeigen
## uberEmulator System Configuration File
## Must be edited for the server to work
## MySQL Configuration
db.hostname=localhost
db.port=3306
db.username=root
db.password=lol
db.name=bc
## MySQL pooling setup (controls amount of connections)
db.pool.minsize=1
db.pool.maxsize=5
## Game TCP/IP Configuration
game.tcp.bindip=127.0.0.1
game.tcp.port=300
game.tcp.conlimit=11000
game.tcp.conperip=100
game.tcp.enablenagles=False
## MUS TCP/IP Configuration
mus.tcp.bindip=127.0.0.1
mus.tcp.port=301
mus.tcp.allowedaddr=localhost;127.0.0.1;localhost
## Stream Message; Si lo dejas sin texto no aparecerá
hotel.stream.message=ButterStorm Edicion especial para Spain. By Carlos D and Nestear.
## License
internal.license=
## Hotel Link; To Stream Images
guilds.link=http://habbospain.com/habbo-imaging/badge/
stream.link=http://habbospain.com/habbo-imaging/head?look=
## Client configuration
client.ping.enabled=1
client.ping.interval=200000
client.maxrequests=500
client.maxpossiblefriends=700
client.maxitemsininventary=3400
#IRC
irc.enabled=false
irc.server=irc.website-service.org
irc.port=6667
irc.user=USER CSharpBot 8 * :I'm a C# irc bot
irc.nick=[VG]Mordi
irc.channel=#habbovg_servermod
irc.password=rofl123
group.enabled=true
auth.ssodisabled=false
#Says wether the users should receive pixels each X seconds, how much and when (When in seconds)
game.pixel.enabled=true
game.pixel.amount=100
game.pixel.time=600
#Says wether the users should receive pixels each X seconds, how much and when (When in seconds)
game.credits.enabled=true
game.credits.amount=1000
game.credits.time=600
game.login.credits.receiveamount=100
game.login.pixel.receiveamount=100
#Threading Main Loops.
#Esta opcion separa del MainGameLoop cada tarea a ejecutar en un proceso distinto.
SeparatedTasksInMainLoops.enabled=true
#Threading GameClientManager Loops.
#Esta opcion separa del GameClientManager.OnCycle las tareas de forma lógica para aumentar rendimiento.
SeparatedTasksInGameClientManager.enabled=false
#Baneo por spam
#Esta opción banea a los usuarios tras sucesivos intentos de flood.
spambans.enabled=true
spambans.limit=5
Ihr ersetzt wie folgt, ersetzt ihr ''127.0.0.1/habbospain.com'' durch eure IP oder Domain.
Und wo ''300'' steht ersetzt ihr durch ''30000'' und wo ''301'' steht ersetzt ihr durch ''30001''.
Alles was Rot ist lässt ihr stehen.
3.4: Datenbank
Ihr geht auf cms_settings. Überall wo ''127.0.0.1'' steht, ersetzt ihr durch eure Domain oder IP.
3.5: Client.php
Ihr klickt auf htdocs/wwwroot -> client.php.
Da drin steht:
Spoiler anzeigen
<?php
$is_maintenance = false;
require_once('./data_classes/server-data.php_data_classes-core.php.php');
require_once('./data_classes/server-data.php_data_classes-session.php.php');
mysql_query("UPDATE users SET auth_ticket = '', auth_ticket = '".GenerateTicket()."', ip_last = '', ip_last = '".$remote_ip."' WHERE id = '".$my_id."'") or die(mysql_error());
if(isset($_POST['client'])){
if($_POST['client']){
$enter = "1";
} else {
$enter = "0";
}
} else {
$enter = "0";
}
$pageid = "client";
$pagename = "Client - Login: ".$date_full." Uhr";
if(isset($_POST['homepage'])){
if($_POST['homepage']){
header("location: $path"); exit;
}
}
$ticketsql = mysql_query("SELECT * FROM users WHERE id = '".$my_id."'") or die(mysql_error());
$ticketrow = mysql_fetch_assoc($ticketsql);
$client_port = mysql_fetch_assoc($client_port = mysql_query("SELECT * FROM cms_settings WHERE variable = 'client_port'"));
$client_mus = mysql_fetch_assoc($client_mus = mysql_query("SELECT * FROM cms_settings WHERE variable = 'client_mus'"));
$client_ip = mysql_fetch_assoc($client_ip = mysql_query("SELECT * FROM cms_settings WHERE variable = 'client_ip'"));
$client_variables = mysql_fetch_assoc($client_variables = mysql_query("SELECT * FROM cms_settings WHERE variable = 'client_variables'"));
$client_variables_night = mysql_fetch_assoc($client_variables_night = mysql_query("SELECT * FROM cms_settings WHERE variable = 'client_variables_night'"));
$client_texts = mysql_fetch_assoc($client_texts = mysql_query("SELECT * FROM cms_settings WHERE variable = 'client_texts'"));
$client_swf_path = mysql_fetch_assoc($client_swf_path = mysql_query("SELECT * FROM cms_settings WHERE variable = 'client_swf_path'"));
$client_habbo_swf = mysql_fetch_assoc($client_habbo_swf = mysql_query("SELECT * FROM cms_settings WHERE variable = 'client_habbo_swf'"));
$client_limit = mysql_fetch_assoc($client_limit = mysql_query("SELECT * FROM cms_settings WHERE variable = 'cms_clientlimit'"));
if($user_rank < 2 && $online_count >= $client_limit['value']){
$pagename = "Clientlimit";
$body_id = "logout";
require_once('./templates/login_subheader.php');
require_once('./templates/login_header.php');
?>
<br>
<div id="intermediate">
<h2><center>Clientlimit</center></h2>
<div id="enter-hotel">
<div class="open enter-btn">
<a href="http://nebbu.de/client" target="client" onclick="return onClientOpen(this)">Einchecken<i></i></a><b></b>
</div>
</div>
<div id="info">
Zurzeit sind <b><?php echo $online_count; ?></b> Online!<br>Clientlimit: <b><?php echo $client_limit['value']; ?></b><br><br>Sobald <b><?php echo $online_count + 1 - $client_limit['value']; ?></b> Mitglieder Offline gegangen sind, kannst du Einchecken!
</div>
<div id="enter-mypage">
<a href="http://nebbu.de/client" class="new-button green-button" style="left: -250px;"><b>Aktualsieren »</b><i></i></a>
<a href="http://nebbu.de" class="new-button red-button" style="left: -250px;"><b>« Zurück</b><i></i></a>
</div>
<?php require_once('./templates/login_footer.php'); }else{ require_once('./templates/client_subheader.php'); ?>
<script type="text/javascript">
FlashExternalInterface.loginLogEnabled = true;
FlashExternalInterface.logLoginStep("web.view.start");
if (top == self) {
FlashHabboClient.cacheCheck();
}
var flashvars = {
"client.allow.cross.domain" : "1",
"client.notify.cross.domain" : "0",
"connection.info.host" : "127.0.0.1",
"connection.info.port" : "30000",
"site.url" : "http://127.0.0.1",
"url.prefix" : "http://127.0.0.1",
"client.reload.url" : "http://127.0.0.1/client",
"client.fatal.error.url" : "http://127.0.0.1/clientutils",
"client.connection.failed.url" : "http://127.0.0.1/clientutils",
"external.variables.txt" : "http://127.0.0.1/swfs/external_variables.txt",
"external.texts.txt" : "http://127.0.0.1/swfs/external_flash_texts.txt",
"productdata.load.url" : "http://127.0.0.1/swfs/productdata.txt",
"furnidata.load.url" : "http://127.0.0.1/swfs/furnidata.txt",
"use.sso.ticket" : "1",
"sso.ticket" : "<?php echo $ticketrow['auth_ticket']; ?>",
"processlog.enabled" : "1",
"account_id" : "1",
"client.starting" : "Hallo <?php echo $name; ?> Willkommen im Name!",
"flash.client.url" : "http://127.0.0.1/swfs/",
"user.hash" : "31385693ae558a03d28fc720be6b41cb1ccfec02",
"has.identity" : "1",
"flash.client.origin" : "popup"
};
var params = {
"base" : "http://127.0.0.1/swfs/",
"allowScriptAccess" : "always",
"menu" : "false",
};
if (!(HabbletLoader.needsFlashKbWorkaround())) {
params["wmode"] = "opaque";
}
FlashExternalInterface.signoutUrl = "http://127.0.0.1/account/logout?token=<?php echo sha1($myrow['password']); ?>";
var clientUrl = "http://127.0.0.1/swfs/habbo.swf";
swfobject.embedSWF(clientUrl, "flash-container", "100%", "100%", "10.0.0", "http://images.habbo.com/habboweb/61_c0…ressInstall.swf", flashvars, params);
window.onbeforeunload = unloading;
function unloading() {
var clientObject;
if (navigator.appName.indexOf("Microsoft") != -1) {
clientObject = window["flash-container"];
} else {
clientObject = document["flash-container"];
}
try {
clientObject.unloading();
} catch (e) {}
}
</script>
<!--[if IE 8]>
<link rel="stylesheet" href="http://127.0.0.1/web-gallery/static/styles/ie8.css" type="text/css" />
<![endif]-->
<!--[if lt IE 8]>
<link rel="stylesheet" href="http://127.0.0.1/web-gallery/static/styles/ie.css" type="text/css" />
<![endif]-->
<!--[if lt IE 7]>
<link rel="stylesheet" href="http://127.0.0.1/web-gallery/static/styles/ie6.css" type="text/css" />
<script src="http://nebbu.de/web-gallery/static/js/pngfix.js" type="text/javascript"></script>
<script type="text/javascript">
try { document.execCommand('BackgroundImageCache', false, true); } catch(e) {}
</script>
<style type="text/css">
body { behavior: url(/js/csshover.htc); }
</style>
<![endif]-->
<link rel="stylesheet" href="embedtopbar.css" type="text/css" />
<link rel="stylesheet" href="buttons.css" type="text/css" />
<meta name="build" content="63-BUILD500 - 09.08.2011 23:00 - de" />
</head>
<body id="client" class="flashclient">
<script type="text/javascript">
jjLoader.init('client', 6, 'http://127.0.0.1/web-gallery/v2/images/habbo.png', 'http://habbo.hs.llnwd.net/c_images/hotel…_xmas10_000.png');
</script>
</div>
</div>
<script type="text/javascript">
Embed.decorateNaviLinks();
Embed.decorateLogoLink();
</script>
<div id="overlay"></div>
<div id="client-ui" class="embed">
<div id="flash-wrapper">
<div id="flash-container">
<div id="content" style="width: 400px; margin: 20px auto 0 auto; display: none">
<div class="cbb clearfix">
</div>
</div>
<img src="http://127.0.0.1/web-gallery/v2/images/page_loader.gif" style="position:absolute; margin: -1500px;" />
<div id="overlay"></div>
<div id="client-ui" >
<div id="flash-wrapper">
<div id="flash-container">
<div id="content" style="width: 400px; margin: 20px auto 0 auto; display: none">
<div class="cbb clearfix">
<h2 class="title">Bitte besorg dir die neueste Adobe Flash Player Version.</h2>
<div class="box-content">
<p>Hier kannst Du den Adobe Flashplayer herunterladen und installieren: <a href="http://get.adobe.com/flashplayer/">Install flash player</a>. Mehr Informationen und Anweisungen zur Installation sind hier zu finden: <a href="http://www.adobe.com/products/flash…o/instructions/">Mehr Informationen</a></p>
<p><a href="http://www.adobe.com/go/getflashplayer"><img src="http://images.habbo.com/habboweb/63_1d…lash_player.gif" alt="Get Adobe Flash player" /></a></p>
</div>
</div>
</div>
<script type="text/javascript">
$('content').show();
</script>
<noscript>
<div style="width: 400px; margin: 20px auto 0 auto; text-align: center">
<p>If you are not automatically redirected, please <a href="/client">click here</a></p>
</div>
</noscript>
</div>
</div>
<div id="content" class="client-content"></div>
</div>
<div style="display: none">
<div id="habboCountUpdateTarget">
</div>
<script language="JavaScript" type="text/javascript">
setTimeout(function() {
HabboCounter.init(600);
}, 20000);
</script>
</div>
<script type="text/javascript">
RightClick.init("flash-wrapper", "flash-container");
if (window.opener && window.opener != window && window.opener.location.href == "/") {
window.opener.location.replace("/me");
}
$(document.body).addClassName("js");
HabboClient.startPingListener();
</script>
<div id="fb-root"></div>
<script type="text/javascript">
(function() {
var e = document.createElement('script');
e.async = true;
e.src = 'https://connect.facebook.net/de_DE/all.js';
document.getElementById('fb-root').appendChild(e);
}());
</script>
</body>
</html>
<?php } ?>
Ihr ersetzt überall wo ''127.0.0.1'' steht durch eure IP oder Domain.
3.6: Banner.php
Nun geht ihr auf swfs -> banner.php.
Da steht:
Spoiler anzeigen
<?php
/*
*****************
* @author capos *
*****************
*/
$width = 100;
$height = 114;
function buildimg($bytes, $width, $height)
{
$img=imagecreatetruecolor($width, $height);imagealphablending($img, false);imagesavealpha($img, true);$x=0;$y=0;
$colors=unpack("N*", $bytes);
foreach($colors as $color)
{
imagesetpixel($img, $x, $y, (0x7f-($color>>25)<<24)|($color&0xffffff));
if(++$x==$width)
{$x=0;$y++;}
}
header('Content-Type: image/png');
imagepng($img);
}
$pixels = file_get_contents('banner.txt'); // the banner pixels
if($_GET)
{
$token = trim($_GET["token"]);
if(strlen($token) >= 20)
{
@$fp = @fsockopen("127.0.0.1", 300, $i,$l,1);
@fwrite($fp, chr(strlen("banner")) . "banner");
@fwrite($fp, chr(strlen($token)));
@fwrite($fp, $token);
@fflush($fp);
@stream_set_timeout($fp, 1);
$data = @fgets($fp, 100);
$resp = explode(' ', $data);
$prime = $resp[0];
$generator = @$resp[1];
if($prime == "" && $generator == "")
{
$prime = "17";
$generator = "3";
}
$insert = chr(strlen($prime)).$prime.chr(strlen($generator)).$generator;
$Length = strlen($token);$Length2 = strlen($insert);
$p = 0;$bitsnum = "";
for($i=0;$i<$Length2;$i++)
{
$bits = base_convert(ord($insert[$i]) ^ ord($token[$p]),10,2);
$need = 8 - strlen($bits);
for($o=0;$o<$need;$o++)$bits = "0".$bits;
$bitsnum .= $bits;
if (++$p == $Length) $p = 0;
}
$insertpos = 0;$Length = strlen($bitsnum);
for ($y = 39; $y < 69; $y++)
{
$a = 0;
for ($r = 4; $r < 84; $r++)
{
$pos = (($y + $a) * $width + $r) * 4;
$b = 1;
while ($b < 4)
{
if($insertpos < $Length)
{
$binaryData = base_convert(ord($pixels[$pos + $b]),10,2);
$need = 8 - strlen($binaryData);
for($o=0;$o<$need;$o++) $binaryData = "0".$binaryData;
$binaryData[7] = $bitsnum[$insertpos];
$pixels[$pos + $b] = chr(base_convert($binaryData,2,10));
$insertpos++;$b++;
continue;
}
break 3;
}
if ($r % 2 == 0) $a++;
}
}
}
}
buildimg($pixels, $width, $height);
?>
Ihr ersetzt überall wo ''127.0.0.1'' steht durch eure IP oder Domain.
Und ihr ersetzt wo ''300'' steht durch ''30000''.
Nun sind wir soweit!
4. Starten!
So ich bin auch nun alles durchgegangen.
Alles funktionierte!
Also, startet euren Emulator und habt Spaß!
Häufige Probleme + Lösung:
Spoiler anzeigen
[Err] --
-- Datenbank: `laly`
--
--
-- Prozeduren
--
CREATE DEFINER=`root`@`localhost` PROCEDURE `getroomitems`(IN `roomid` INT(10) UNSIGNED)
BEGIN
SELECT items_rooms.item_id, items_rooms.x, items_rooms.y, items_rooms.n, items.base_id, items_extradata.data, items.rareid, items.group_data
FROM items_rooms
JOIN items ON (items.item_id = items_rooms.item_id)
LEFT JOIN items_extradata ON (items_extradata.item_id = items.item_id)
WHERE items_rooms.room_id = roomid;
END;
[Msg] Finished - Unsuccessfully
Lösung: Ihr müsst eine neue Datenbank erstellen und neu importieren!
Support via PN oder Skype[Addy: SchaasGharibYoo]!!!!!!!