1 [Tutorial] - Fixando Tarefas São Valentim no seu Habbo 21.12.11 9:06
EduardoWenes ツ
Fundador
Olá galera! Hoje vou estar ensinando como colocar as tarefas de São Valentim no seu Habbo privado. Para fazer este tutorial é necessário alguns requisitos.
~# Requisitos #~
-> Emulador R63 OpenSource
-> SWF própria
-> Conhecimento em edição do emulador
Se você possui todos esses requisitos, vamos começar o tutorial!
1- Para colocar as tarefas de Valentim no seu Habbo, vá no seu emulador em \Messages\Requests\Users.cs e procure pelo seguinte código:
Adicione isto ACIMA do anterior:
2- Agora (no mesmo arquivo) procure por:
Adicione isto ABAIXO do código anterior:
3- Agora vá em \Messages\Requests\Rooms.cs e procure por:
Adicione isto ACIMA do código anterior:
Pronto, você acabou de editar seu emulador para as Tarefas de São Valentim! Agora vamos editar a db do seu Habbo.
4- Vá na db do seu Habbo e execute os códigos SQL (um por um e na ordem):
Observação IMPORTANTE: Onde estiver ***** nos códigos da db, coloque T A B L E (sem os espaços)
Pronto, db editada! Agora vamos à SWF!
5- Coloque essas imagens na pasta c_images da sua SWF:
http://images.habbo.com/c_images/Quests/icon_val11_reward_5.png
http://images.habbo.com/c_images/Quests/icon_val11_reward_1.png
http://images.habbo.com/c_images/Quests/header_val11.png
http://images.habbo.com/c_images/Quests/icon_val11_active.png
http://images.habbo.com/c_images/Quests/icon_val11_pixeltype.png
Coloque isto nas suas externais_variables:
6- Agora para as Tarefas funcionarem, você deve baixar a SWF compatível de São Valentim.
Link da SWF: Clique aqui
Scan: Clique aqui
Coloque o Habbo.swf na pasta da sua SWF, e pronto! Você tem as Tarefas de São Valentim no seu Habbo! Aqui vai um print do resultado final:
Se bugar: Clique aqui
~# Requisitos #~
-> Emulador R63 OpenSource
-> SWF própria
-> Conhecimento em edição do emulador
Se você possui todos esses requisitos, vamos começar o tutorial!
1- Para colocar as tarefas de Valentim no seu Habbo, vá no seu emulador em \Messages\Requests\Users.cs e procure pelo seguinte código:
- Código:
public void RegisterUsers()
Adicione isto ACIMA do anterior:
- Código:
private void OpenQuests()
{
//L`val11{{2}}JPASjJFIND_STUFF{{2}}bling_chair_c{{2}}QA1296543600000{{2}}EXTRA01{{2}}{{2}}PkHFIND_STUFF{{2}}val_table1{{2}}QA1296630000000{{2}}EXTRA02{{2}}{{2}}P]HFIND_STUFF{{2}}bling_bed{{2}}QA1296802800000{{2}}DAY02{{2}}{{2}}S\HFIND_STUFF{{2}}bath{{2}}QA1296716400000{{2}}DAY01{{2}}{{2}}
DataTable Data = null;
DataRow QuestCount = null;
using (DatabaseClient dbClient = UberEnvironment.GetDatabase().GetClient())
{
Data = dbClient.ReadDataTable("SELECT * FROM quests");
QuestCount = dbClient.ReadDataRow("SELECT COUNT(*) AS total FROM quests");
}
if (Data == null)
{
return;
}
string Count = QuestCount["total"].ToString();
int TotalQuestCount = int.Parse(Count);
ServerMessage OpenQuest = new ServerMessage(800);
OpenQuest.AppendStringWithBreak("val11"); // val11 / xmas10
OpenQuest.AppendInt32(2);
OpenQuest.AppendInt32(TotalQuestCount);
foreach (DataRow Row in Data.Rows)
{
int QuestProcess = 0;
DataTable Data2 = null;
using (DatabaseClient dbClient = UberEnvironment.GetDatabase().GetClient())
{
Data2 = dbClient.ReadDataTable("SELECT process FROM user_quests WHERE quest = '" + (int)Row["id"] + "' AND user = '" + Session.GetHabbo().Id + "'");
}
if (Data != null)
{
foreach (DataRow Row2 in Data2.Rows)
{
QuestProcess = (int)Row2["process"];
}
}
OpenQuest.AppendInt32((int)Row["id"]);
OpenQuest.AppendInt32(QuestProcess);
OpenQuest.AppendStringWithBreak("FIND_STUFF");
OpenQuest.AppendStringWithBreak((string)Row["item"]);
OpenQuest.AppendInt32((int)Row["hearts"]);
OpenQuest.AppendStringWithBreak((string)Row["time"]);
OpenQuest.AppendStringWithBreak((string)Row["data"]);
OpenQuest.AppendStringWithBreak("");
}
Session.SendMessage(OpenQuest);
}
private void AcceptQuest()
{
//Laval11{{2}}S\KFIND_STUFF{{2}}bath{{2}}QA1296716400000{{2}}DAY01{{2}}{{2}}{{1}}
DataTable Data = null;
using (DatabaseClient dbClient = UberEnvironment.GetDatabase().GetClient())
{
Data = dbClient.ReadDataTable("SELECT * FROM quests WHERE id = '" + Request.PopWiredInt32() + "' LIMIT 1");
}
if (Data == null)
{
return;
}
foreach (DataRow Row in Data.Rows)
{
ServerMessage AcceptQuest = new ServerMessage(801);
AcceptQuest.AppendStringWithBreak("val11");
AcceptQuest.AppendInt32((int)Row["id"]);
AcceptQuest.AppendInt32(3);
AcceptQuest.AppendStringWithBreak("FIND_STUFF");
AcceptQuest.AppendStringWithBreak((string)Row["item"]);
AcceptQuest.AppendInt32((int)Row["hearts"]);
AcceptQuest.AppendStringWithBreak((string)Row["time"]);
AcceptQuest.AppendStringWithBreak((string)Row["data"]);
AcceptQuest.AppendStringWithBreak("");
Session.SendMessage(AcceptQuest);
using (DatabaseClient dbClient = UberEnvironment.GetDatabase().GetClient())
{
dbClient.ExecuteQuery("INSERT INTO user_quests (`id`, `user`, `quest`, `process`) VALUES (NULL, '" + Session.GetHabbo().Id + "', '" + (int)Row["id"] + "', '3')");
}
}
}
2- Agora (no mesmo arquivo) procure por:
- Código:
RequestHandlers[3000] = new RequestHandler(GetPetsInventory);
Adicione isto ABAIXO do código anterior:
- Código:
RequestHandlers[3102] = new RequestHandler(OpenQuests);
RequestHandlers[3101] = new RequestHandler(AcceptQuest);
3- Agora vá em \Messages\Requests\Rooms.cs e procure por:
- Código:
Item.Interactor.OnTrigger(Session, Item, Request.PopWiredInt32(), hasRights);
Adicione isto ACIMA do código anterior:
- Código:
/Lbval11{{2}}P]IFIND_STUFF{{2}}bling_bed{{2}}QA1296802800000{{2}}DAY02{{2}}{{2}}{{1}}
DataTable Data = null;
using (DatabaseClient dbClient = UberEnvironment.GetDatabase().GetClient())
{
Data = dbClient.ReadDataTable("SELECT * FROM user_quests WHERE user = '" + Session.GetHabbo().Id + "'");
}
if (Data == null)
{
return;
}
foreach (DataRow Row in Data.Rows)
{
if ((int)Row["process"] == 3)
{
DataTable Data2 = null;
using (DatabaseClient dbClient = UberEnvironment.GetDatabase().GetClient())
{
Data2 = dbClient.ReadDataTable("SELECT * FROM quests WHERE id = '" + (int)Row["quest"] + "'");
}
if (Data2 == null)
{
return;
}
foreach (DataRow Row2 in Data2.Rows)
{
if ((string)Row2["item"] == Item.GetBaseItem().Name)
{
ServerMessage DoneQuest = new ServerMessage(802);
DoneQuest.AppendStringWithBreak("val11");
DoneQuest.AppendInt32((int)Row2["id"]);
DoneQuest.AppendInt32(1);
DoneQuest.AppendStringWithBreak("FIND_STUFF");
DoneQuest.AppendStringWithBreak((string)Row2["item"]);
DoneQuest.AppendInt32((int)Row2["hearts"]);
DoneQuest.AppendStringWithBreak((string)Row2["time"]);
DoneQuest.AppendStringWithBreak((string)Row2["data"]);
DoneQuest.AppendStringWithBreak("");
Session.SendMessage(DoneQuest);
using (DatabaseClient dbClient = UberEnvironment.GetDatabase().GetClient())
{
dbClient.ExecuteQuery("UPDATE user_quests SET process = '1' WHERE quest = '" + (int)Row2["id"] + "' AND user = '" + Session.GetHabbo().Id + "'");
dbClient.ExecuteQuery("UPDATE users SET hearts = hearts + " + (int)Row2["hearts"] + " WHERE id = '" + Session.GetHabbo().Id + "'");
}
return;
}
}
}
}
Pronto, você acabou de editar seu emulador para as Tarefas de São Valentim! Agora vamos editar a db do seu Habbo.
4- Vá na db do seu Habbo e execute os códigos SQL (um por um e na ordem):
- Código:
`data` varchar(255) NOT NULL,
`hearts` int(11) NOT NULL DEFAULT '5',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=173 ;
INSERT INTO `quests` (`id`, `item`, `time`, `data`, `hearts`) VALUES
(115, 'bath', '1296716400000', 'DAY01', 5),
(116, 'bling_bed', '1296802800000', 'DAY02', 5),
(172, 'val_table1', '1296630000000', 'EXTRA02', 5),
(171, 'bling_chair_c', '1296543600000', 'EXTRA01', 5),
(117, 'bling_toilet', '1296889200000', 'DAY03', 5);
- Código:
CREATE ***** IF NOT EXISTS `user_quests` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`user` int(11) NOT NULL,
`quest` int(11) NOT NULL,
`process` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 ;
- Código:
ALTER ***** `users` ADD `hearts` INT( 11 ) NOT NULL DEFAULT '0';
- Código:
ALTER ***** `users` ADD `quests_passed` INT( 11 ) NOT NULL
Observação IMPORTANTE: Onde estiver ***** nos códigos da db, coloque T A B L E (sem os espaços)
Pronto, db editada! Agora vamos à SWF!
5- Coloque essas imagens na pasta c_images da sua SWF:
http://images.habbo.com/c_images/Quests/icon_val11_reward_5.png
http://images.habbo.com/c_images/Quests/icon_val11_reward_1.png
http://images.habbo.com/c_images/Quests/header_val11.png
http://images.habbo.com/c_images/Quests/icon_val11_active.png
http://images.habbo.com/c_images/Quests/icon_val11_pixeltype.png
Coloque isto nas suas externais_variables:
- Código:
questing.defaultCampaign=val11
6- Agora para as Tarefas funcionarem, você deve baixar a SWF compatível de São Valentim.
Link da SWF: Clique aqui
Scan: Clique aqui
Coloque o Habbo.swf na pasta da sua SWF, e pronto! Você tem as Tarefas de São Valentim no seu Habbo! Aqui vai um print do resultado final:
Se bugar: Clique aqui