public void droprandomstuff(entity killername) { //demha||rider if (killername == null) return; if (pkpoints >= 30 && killer != null && killer.owner != null && mapid != 1038) { for (int i = 0; i < 9; i++) { var rnd = kernel.random.next(19); if (owner.alternateequipment) rnd = kernel.random.next(10, 29); var item = owner.equipment.trygetitem((byte)rnd); var item = item; if (item != null) { byte dwp = 20; if (!owner.alternateequipment) { dwp = 0; if (item.position >= 20) continue; } if (item.position == 4 + dwp) { if (!owner.equipment.free((byte)(5 + dwp))) { item = owner.equipment.trygetitem((byte)(5 + dwp)); } } if (item.position == 9 + dwp || item.position == 12) continue; if (item.position == 5 + dwp) if (item.id.tostring().startswith("105")) continue; if (kernel.rate(25 + (int)(pkpoints > 30 ? 75 : 0))) { ushort x = x, y = y; game.map map = kernel.maps[mapid]; if (map.selectcoordonates(ref x, ref y)) { owner.equipment.removetoground(item.position); var infos = database.conqueriteminformation.baseinformations[(uint)item.id]; network.gamepackets.flooritem flooritem = new network.gamepackets.flooritem(true); flooritem.item = item; flooritem.valuetype = network.gamepackets.flooritem.floorvaluetype.item; flooritem.itemid = (uint)item.id; flooritem.mapid = mapid; flooritem.mapobjtype = game.mapobjecttype.item; flooritem.x = x; flooritem.y = y; flooritem.type = network.gamepackets.flooritem.dropdetain; flooritem.onfloor = time32.now; flooritem.itemcolor = flooritem.item.color; flooritem.uid = network.gamepackets.flooritem.flooruid.next; while (map.npcs.containskey(flooritem.uid)) flooritem.uid = network.gamepackets.flooritem.flooruid.next; owner.sendscreenspawn(flooritem, true); database.detaineditemtable.detainitem(item, owner, killer.owner); owner.equipment.updateentitypacket(); clientequip eq = new clientequip(owner); eq.doequips(owner); owner.send(eq); owner.loaditemstats(); break; } } } } } if (pkpoints > 99) { if (killername.entityflag == entityflag.entity) { kernel.sendworldmessage(new network.gamepackets.message(name + " has been captured by " + killername.name + " and sent in jail! The world is now safer!", system.drawing.color.red, message.talk), program.values); teleport(6000, 50, 50); } else { kernel.sendworldmessage(new network.gamepackets.message(name + " has been captured and sent in jail! The world is now safer!", system.drawing.color.red, message.talk), program.values); teleport(6000, 50, 50); } } }
public void die(entity killer)
network.packethandler.addenemy(this.owner, killer.owner);
if (killer.pkmode != blackblock.game.enums.pkmode.jiang) { if (killer.entityflag == blackblock.game.entityflag.entity) { if (kernel.rate(50)) { droprandomstuff(killer); } } }
over:
public static bool canattack(game.entity attacker, game.entity attacked, database.spellinformation spell, bool melee)
if (attacker.pkmode == blackblock.game.enums.pkmode.jiang && attacked.mapid != 1036) { if (attacked.containsflag(update.flags.flashingname) || attacked.pkpoints > 99) { return true; } }