Experienced Elementalist
- Joined
- Jan 24, 2009
- Messages
- 226
- Reaction score
- 166
Here is my FULL fireworks system for uberemu,
(I'm not gonna explain how to add this time,.. just explore yourself)
No sql needed! this code automaticly add the table/rows!!!
The item interation:
The item interactor:
Video:
Credits:
TopErwin - making whole code
(I'm not gonna explain how to add this time,.. just explore yourself)
No sql needed! this code automaticly add the table/rows!!!
The item interation:
Code:
firework
PHP:
#region InteractorFireWork
class InteractorFireWork : FurniInteractor
{
#region OnPlace
public override void OnPlace(GameClient Session, RoomItem Item)
{
try
{
DataTable Data = null;
using (DatabaseClient dbClient = UberEnvironment.GetDatabase().GetClient())
{
Data = dbClient.ReadDataTable("SELECT * FROM firework WHERE furni = '" + Item.Id + "' LIMIT 1");
}
if (Data == null)
{
using (DatabaseClient dbClient = UberEnvironment.GetDatabase().GetClient())
{
dbClient.ExecuteQuery("INSERT INTO firework (`id`, `furni`, `loaded`) VALUES (NULL, '" + Item.Id + "', '0')");
}
}
foreach (DataRow Row in Data.Rows)
{
if ((int)Row["loaded"] >= 1)
{
Item.ExtraData = "1";
Item.UpdateState();
}
else
{
Item.ExtraData = "0";
Item.UpdateState();
}
}
}
catch (MySqlException)
{
using (DatabaseClient dbClient = UberEnvironment.GetDatabase().GetClient())
{
dbClient.ExecuteQuery("CREATE TABLE IF NOT EXISTS firework (`id` int(11) NOT NULL AUTO_INCREMENT, `furni` int(11) NOT NULL, `loaded` int(11) NOT NULL DEFAULT '0', PRIMARY KEY (`id`))");
}
}
}
#endregion
#region OnRemove
public override void OnRemove(GameClient Session, RoomItem Item) { }
#endregion
#region OnTrigger
public override void OnTrigger(GameClient Session, RoomItem Item, int Request, bool UserHasRights)
{
RoomUser User = Item.GetRoom().GetRoomUserByHabbo(Session.GetHabbo().Id);
if (User == null)
{
return;
}
#region ItemCoord poop!
Coord ItemCoord1 = new Coord(Item.Coordinate.x + 1, Item.Coordinate.y);
Coord ItemCoord2 = new Coord(Item.Coordinate.x + 1, Item.Coordinate.y + 1);
Coord ItemCoord3 = new Coord(Item.Coordinate.x + 1, Item.Coordinate.y - 1);
Coord ItemCoord4 = new Coord(Item.Coordinate.x - 1, Item.Coordinate.y);
Coord ItemCoord5 = new Coord(Item.Coordinate.x - 1, Item.Coordinate.y + 1);
Coord ItemCoord6 = new Coord(Item.Coordinate.x - 1, Item.Coordinate.y - 1);
Coord ItemCoord7 = new Coord(Item.Coordinate.x, Item.Coordinate.y + 1);
Coord ItemCoord8 = new Coord(Item.Coordinate.x, Item.Coordinate.y - 1);
#endregion
if (User.Coordinate == ItemCoord1 || User.Coordinate == ItemCoord2 || User.Coordinate == ItemCoord3 || User.Coordinate == ItemCoord4 || User.Coordinate == ItemCoord5 || User.Coordinate == ItemCoord6 || User.Coordinate == ItemCoord7 || User.Coordinate == ItemCoord8)
{
try
{
DataTable Data = null;
int Type = Request;
if (Type == 0)
{
#region Type 0
using (DatabaseClient dbClient = UberEnvironment.GetDatabase().GetClient())
{
Data = dbClient.ReadDataTable("SELECT * FROM firework WHERE furni = '" + Item.Id + "' LIMIT 1");
if (Data == null)
{
dbClient.ExecuteQuery("INSERT INTO firework (`id`, `furni`, `loaded`) VALUES (NULL, '" + Item.Id + "', '0')");
}
foreach (DataRow Row in Data.Rows)
{
int currentMode = 0;
int newMode = 0;
try
{
currentMode = int.Parse(Item.ExtraData);
}
catch (Exception) { }
if (currentMode <= 0)
{
if ((int)Row["loaded"] >= 1)
{
newMode = 1;
}
else
{
DataTable Data2 = null;
Data2 = dbClient.ReadDataTable("SELECT * FROM firework WHERE furni = '" + Item.Id + "' LIMIT 1");
foreach (DataRow Row2 in Data2.Rows)
{
ServerMessage Message = new ServerMessage(629);
Message.AppendUInt(Item.Id);
Message.AppendInt32((int)Row2["loaded"]);
Message.AppendInt32(0);
Message.AppendInt32(100);
Message.AppendInt32(0);
Message.AppendInt32(10);
Session.SendMessage(Message);
}
}
}
else if (currentMode == 1)
{
newMode = 2;
dbClient.ExecuteQuery("UPDATE firework SET loaded = loaded - 1 WHERE furni = '" + Item.Id + "'");
ThreadPool.QueueUserWorkItem(o =>
{
Thread.Sleep(7000); // crappy timer ;3
if ((int)Row["loaded"] >= 1)
{
newMode = 1;
}
else
{
newMode = 0;
}
Item.ExtraData = newMode.ToString();
Item.UpdateState();
});
}
else if (currentMode >= 2)
{
// wait for the crappy timer,..
}
if (currentMode < 2)
{
Item.ExtraData = newMode.ToString();
Item.UpdateState();
}
}
}
#endregion
}
else if (Type == 1)
{
#region Type 1
using (DatabaseClient dbClient = UberEnvironment.GetDatabase().GetClient())
{
Data = dbClient.ReadDataTable("SELECT * FROM firework WHERE furni = '" + Item.Id + "' LIMIT 1");
}
foreach (DataRow Row in Data.Rows)
{
ServerMessage Message = new ServerMessage(629);
Message.AppendUInt(Item.Id);
Message.AppendInt32((int)Row["loaded"]);
Message.AppendInt32(0);
Message.AppendInt32(100);
Message.AppendInt32(0);
Message.AppendInt32(10);
Session.SendMessage(Message);
}
#endregion
}
else if (Type == 2)
{
#region Type 2
using (DatabaseClient dbClient = UberEnvironment.GetDatabase().GetClient())
{
if (Session.GetHabbo().ActivityPoints >= 100)
{
int NewPixels = Session.GetHabbo().ActivityPoints - 100;
dbClient.ExecuteQuery("UPDATE firework SET loaded = loaded + 10 WHERE furni = '" + Item.Id + "'");
Session.GetHabbo().ActivityPoints = NewPixels;
dbClient.ExecuteQuery("UPDATE users SET activity_points = '" + NewPixels + "' WHERE id = '" + Session.GetHabbo().Id + "' LIMIT 1");
Data = dbClient.ReadDataTable("SELECT * FROM firework WHERE furni = '" + Item.Id + "' LIMIT 1");
foreach (DataRow Row in Data.Rows)
{
ServerMessage Message = new ServerMessage(629);
Message.AppendUInt(Item.Id);
Message.AppendInt32((int)Row["loaded"]);
Message.AppendInt32(0);
Message.AppendInt32(100);
Message.AppendInt32(0);
Message.AppendInt32(10);
Session.SendMessage(Message);
}
}
else
{
//ADHIH{{1}}
ServerMessage Message = new ServerMessage(86);
Message.AppendInt32(0);
Message.AppendInt32(1);
Message.AppendInt32(0);
Session.SendMessage(Message);
}
}
#endregion
}
}
catch (MySqlException)
{
using (DatabaseClient dbClient = UberEnvironment.GetDatabase().GetClient())
{
dbClient.ExecuteQuery("CREATE TABLE IF NOT EXISTS firework (`id` int(11) NOT NULL AUTO_INCREMENT, `furni` int(11) NOT NULL, `loaded` int(11) NOT NULL DEFAULT '0', PRIMARY KEY (`id`))");
}
}
}
else if (User.CanWalk)
{
User.MoveTo(Item.SquareInFront);
}
}
#endregion
}
#endregion
You must be registered to see links
Credits:
TopErwin - making whole code
Last edited: