Ok Any one can tell my how realy works revive/revivehere 12talis (5369) I am using
GeneralData
Attack type?????????GeneralData
GeneralDataQuote:
public enum GeneralDataTypes : int
{
StatueScroll = 1066,
FriendOffMsg = 1058,
ReviveButton = 1052,
ReviveButtonRemove = 1051,
ShowShopMall = 1100,
ShopMallRemove = 1101,
ClaimCPButton = 1197,
CpsClaimedMsg = 1198,
DetainedEquips = 1231,
InvRedemShowing = 1235,
RemoveFlowerUp = 1247,
AddFlowerUp = 1244,
VipButtonRemove = 1281
PacketHandlerQuote:
public const ushort
SetLocation = 74,
SpawnEffect = 0x86,
ItemRequest = 75,
ConfirmAssociates = 76,
ConfirmProficiencies = 77,
ConfirmSpells = 78,
ChangeDirection = 79,
ChangeAction = 81,
UsePortal = 85,
Teleport = 86,
Leveled = 92,
EndXp = 93,
Revive = 94,
DeleteCharacter = 95,
ChangePKMode = 96,
ConfirmGuild = 97,
InvisibleEntity = 102,
NewCoordonates = 108,
StartVending = 111,
GetSurroundings = 114,
OpenCustom = 116,
ObserveEquipment = 117,
EndTransformation = 118,
EndFly = 120,
EnemyInfo = 123,
OpenWindow = 126,
CompleteLogin = 132,
RemoveEntity = 135,
Jump = 137,
EndTeleport = 146,
FriendInfo = 148,
ChangeAvatar = 0x97,
ChangeFace = 151,
TradePartner = 152,
Confiscator = 153,
ObvserveFriendEq = 310,
FlashStep = 156,
Away = 161,
PathFinding = 162;
Quote:
static void Revive(GeneralData generalData, Receivers.ClientState client)
{
if (NulledClient(client))
client.Send(new MapStatus() { ID = client.Entity.MapID, Status = 0 });
return;
if (Time32.Now >= client.Entity.DeathStamp.AddSeconds(20))
{
if (client.Entity.Buffers.Values.ContainsKey((ushort) Game.Enums.SkillIDs.SoulShackle))
{ client.Send(new Message("You can't revive while you're at soul shackle effect!", Color.Red, Message.TopLeft)); return; }
bool ReviveHere = generalData.dwParam == 1;
client.Send(new MapStatus() { ID = client.Entity.MapID, Status = 0 });
client.Entity.TransformationID = 0;
client.Entity.Update(true, false, true, Game.Enums.StatusFlag.Dead);
client.Entity.Update(true, false, true, Game.Enums.StatusFlag.Ghost);
client.Entity.Hitpoints = client.Entity.MaxHitpoints;
if (client.Entity.MapID == 1038 && Game.Features.GuildWar.Handle.Running)
{
client.Entity.Teleport(6001, 035, 076);
goto Jump;
}
if (client.Entity.PKPoints >= 100)
{
client.Entity.Teleport(6000, 035, 076);
}
if (ReviveHere)
client.Entity.Teleport(client.Entity.MapID, client.Entity.X, client.Entity.Y);
else
{
foreach (ushort[] Point in Database.DataHolder.RevivePoints)
{
if (Point[0] == client.Entity.MapID)
{
client.Entity.Teleport(Point[1], Point[2], Point[3]);
UpdateprevXY(client);
return;
}
}
client.Entity.Teleport(1002, 430, 380);
}
Jump:
client.Screen.FullWipe();
client.Screen.Reload(null);
}
}
Quote:
#region Revive
if (Attacker.Owner.Screen.TryGetValue(TargetUID, out Attacked))
{
if (Attacked.Buffers.Contains(Enums.SkillIDs.SoulShac kle))
{ Attacker.Owner.Send(new Message("You can't revive that player while it is at soul shackle effect!", System.Drawing.Color.Red, Message.TopLeft)); return; }
if (Attacked.EntityFlag == EntityFlag.Player)
{
Attacked.Update(true, false, true, Enums.StatusFlag.Dead);
Attacked.TransformationID = 0;
Attacked.Hitpoints = Attacked.MaxHitpoints;
Attacked.Teleport(Attacked.MapID, Attacked.X, Attacked.Y);
Packet.Targets.SafeAdd(Attacked.UID, new SpellUse.DamageClass { Damage = Damage, Hit = 0 });
}
else
Packet.Targets.SafeAdd(Attacked.UID, new SpellUse.DamageClass { Damage = Damage, Hit = 0 });
}
#endregion