Anyone happen to know how map effects are removed from a screen? For example squama's etc? Any info would be helpful. Thanks a lot.
It's not using the item packet. It's using the "Drop item packet" or the map object packet (again, which is 1101). Using offset 10, you can spawn effects by the effect id. The floor effect ids can be found in the client. The effect is given an identity as an entity, the effect id as the parameter for the packet, and the coordinates of the effect.Quote:
Cant seem to spawn an effect using that packet. Just opened my solution to check how I implemented it, and I use 1015, i cant spawn anything using the Item Packet.
Sorry, I meant the client. I've edited my post. Look in "MapMagicItem.ini". It contains all of the ids/types for map objects. You can do quite a lot with them , like make fake portals (though, why would you do that when you can make real portals), put balloons everywhere, etc. It's what I use in Burning Skies for festivals and some quests. I like them a lot.Quote:
" The floor effect ids can be found in the source "
Not in mine, i got a few effects spawned. I cant despawn them and how can I add new effects? I found like 10 different ones in a loop from 0 to 10000
Haha, didnt even think about that. Thanks a lot.Quote:
Well, they are entities, so you can also remove them with the entity removal packet (the general data one). That will definitely do the job without fail - it deletes any entity with a global screen identifier. I don't remember the general action type off the top of my head, but it might be something like 135.
public enum MapEffects : ushort
{
attackfast30 = 5,
attackfast35 = 6,
attackfast40 = 7,
attackfast20 = 8,
attackfast25 = 9,
rain01 = 10,
star2_y = 11,
star2_b = 12,
star2_g = 13,
star2_r = 14,
star2_r = 15,
hearts = 16,
zf2_e248 = 17,
foot08_6 = 18,
attackup01 = 20,
attackup20 = 21,
attackup30 = 22,
fire_bomb_1 = 23,
Exit = 24,
energy1 = 25,
Disapear2_999 = 26,
e_2000 = 27,
foot08_6 = 28,
bianshenquan = 29,
test = 30,
zf_rlsz_trap = 31,
music_blue = 615,
music_red = 616,
music_yellow = 617,
music_cyan = 618,
music_purple = 619,
music_orange = 620,
music_blue = 621,
music_purple = 622,
music_red = 623,
music_yellow = 624,
baozhang = 716,
water = 746,
tj_long = 759,
bagua_hong = 782,
bagua_huang = 783,
bagua_lan = 784,
bagua_cheng = 785,
bagua_hong = 786,
bagua_huang = 787,
bagua_lan = 788,
bagua_lv = 789,
bagua_hong = 760,
bagua_huang = 761,
bagua_lan = 762,
bagua_qing = 763,
bagua_hong = 764,
bagua_huang = 765,
bagua_lan = 766,
bagua_zi = 767,
bagua_hong = 768,
bagua_huang = 769,
bagua_cheng = 770,
bagua_lv = 771,
bagua_qing = 772,
bagua_lan = 773,
bagua_zi = 774,
music_red1 = 731,
music_orange1 = 732,
music_yellow1 = 733,
music_green1 = 734,
music_cyan1 = 735,
music_blue1 = 736,
music_purple1 = 737,
music_red1 = 738,
music_orange1 = 739,
music_yellow1 = 740,
music_green1 = 741,
music_cyan1 = 742,
music_blue1 = 743,
moveback_1 = 790,
role_select7_1 = 791,
FF09_1 = 792,
FF14_1 = 793,
FF18B_1 = 794,
FF20_1 = 795,
magicfull = 796,
music_hei = 797,
e_460079 = 798,
e_460089 = 799,
number01 = 800,
number02 = 801,
number03 = 802,
number04 = 803,
number05 = 804,
number06 = 805,
number07 = 806,
number08 = 807,
number09 = 808,
balloon6 = 809,
music_fen = 810,
music_green1 = 723,
qianxing60 = 811,
equipment_upg = 812
}
Quote:
Same here. Tried forever to find a way to make it work.
I just checked with the map object packet's removal subtype (using 1101 subtype 12) in Kibou and it removed the effect successfully. The guess I made about the entity removal packet wasn't correct - map objects must be stored differently in the client (which is why it requires that special removal packet). All you want to do is send the identity and the subtype. You don't need to send any other information. Also, identities for map objects range from 900000 to 999999 (though you don't need to follow this).Quote:
Haha, didnt even think about that. Thanks a lot.
#edit Didn't work unfortunately. (Used subtype 132 for remove entity as well as tried 135)
Quote:
public static byte[] MapEffect(Character Hero)
{
using (PacketWriter PWR = new PacketWriter(20))
{
PWR.Fill((ushort)20, 0);
PWR.Fill((ushort)1101, 2);
PWR.Fill((uint)900001, 4); //effect unique id
PWR.Fill((uint)12, 8); //map effect id
PWR.Fill((ushort)Hero.Location.MapX, 12);
PWR.Fill((ushort)Hero.Location.MapY, 14);
PWR.Fill((byte)10, 16); //spawn effect id
return PWR.Bytes;
}
}
public static byte[] RemoveMapEffect(Character Hero)
{
using (PacketWriter PWR = new PacketWriter(20))
{
PWR.Fill((ushort)20, 0);
PWR.Fill((ushort)1101, 2);
PWR.Fill((uint)900001, 4); //effect unique id
PWR.Fill((byte)12, 16); //remove effect id
return PWR.Bytes;
}
}