Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - fissban

Páginas: [1] 2 3 4 5 6 ... 11
1
Issues / Re:Error Casteos y Demas
« en: Septiembre 10, 2018, 09:23:06 am »
tienes razon, ahora mi duda es si simplemente deberia prohibir cambiar el item o bien generar una tarea para que el arma se equipe/desequipe luego de terminar el cast

2
Issues / Re:[PROBLEMA] Diferentes "errores"
« en: Septiembre 10, 2018, 09:20:33 am »
lo correcto seria crear un post por tema pero esta ves lo dejaremos asi.

Cubis: Acabo de probarlos y se sumonean correctamente.
Enchants: acabo de probarlo y se puede encantar un arma estando equipada o no.
NPC's: cuales son los npc que no te estan funcionando?

3
Issues / Re:admin_createRndFake
« en: Septiembre 10, 2018, 08:35:39 am »
el sistema de fakes fue desabilitado hasta q se repare un bug que tiene

4
General / Re:instalacion L2jAdmins_EngineMods/c4
« en: Agosto 27, 2018, 12:36:51 pm »
el problema es que el engine noe sta reconociendo el source del c4....debes ajustar el classpatch para q detecte la direccion correcta del c4_gameserver

5
Issues / Re:[Problema] SkillDurationList
« en: Agosto 09, 2018, 03:34:04 pm »
mostrame el config

6
General / Re:[Duda - Skills SA]
« en: Julio 30, 2018, 11:54:15 pm »
es simple...algo asi

Código
	    <add order="0x40" stat="PHYSICAL_ATTACK" val="#final">
      <player hp="30"/>
    </add>

7
Issues / Re:[SA & Efectos adicionales - Armas] - Error Parte 1
« en: Julio 28, 2018, 12:39:07 pm »
igual esto que arme fue con miras a un futuro.

Mi idea es comenzar a trasladar muchos skillhandlers a effectos, es decir que el skill quedaria para definir la accion del lanzamiento del mismo y las acciones luego de ser lanzado que quede dependiente de los efectos pero si intento hacer todo hoy no terminaba en navidad :P

8
Issues / Re:[SA & Efectos adicionales - Armas] - Error Parte 1
« en: Julio 28, 2018, 02:23:23 am »
disculpa que no te avise, aca te dejo el diff de lo que hice estos dias

https://sourceforge.net/p/l2jadminsc4/code/1130/

9
Issues / Re:[Error Crítico] Quest Fate's Whisper
« en: Julio 28, 2018, 01:53:10 am »
disculpa la demora pero esta con otro tema del pack, aqui te dejo un diff y confirmame si te va bien

Código
Index: data/html/quests/Q234_FatesWhisper/7833-01a.htm
===================================================================
--- data/html/quests/Q234_FatesWhisper/7833-01a.htm (revision 1125)
+++ data/html/quests/Q234_FatesWhisper/7833-01a.htm (working copy)
@@ -1,4 +1,6 @@
-<html><body>Magister Kaspar:<br>
+<html><body>
+Magister Kaspar:<br>
 Oh! You're the one who explored the Tower of Insolence on behalf of Reorin! Hardin's Academy is not your ordinary place of learning. It constantly monitors world affairs.<br>
 Recently there have been interesting developments around the Tower of Insolence. Even now, forces are gathering to fight over ancient relics that are supposedly hidden in the tower. Of course, our interests are different from theirs...<br>
-<a action="bypass -h Quest Q234_FatesWhisper 7833-01b.htm">"What are your interests?"</a>
\ No newline at end of file
+<a action="bypass -h Quest Q234_FatesWhisper 7833-01b.htm">"What are your interests?"</a>
+</body></html>
\ No newline at end of file

10
Issues / Re:[SA & Efectos adicionales - Armas] - Error Parte 1
« en: Julio 20, 2018, 10:41:56 pm »
hice varios ajustes, probalo y me contas

Código
Index: java/net/sf/l2j/gameserver/handler/skill/SkillHeal.java
===================================================================
--- java/net/sf/l2j/gameserver/handler/skill/SkillHeal.java (revision 1128)
+++ java/net/sf/l2j/gameserver/handler/skill/SkillHeal.java (working copy)
@@ -13,7 +13,6 @@
 import net.sf.l2j.gameserver.model.actor.instance.enums.ShotType;
 import net.sf.l2j.gameserver.model.skills.Skill;
 import net.sf.l2j.gameserver.model.skills.enums.SkillType;
-import net.sf.l2j.gameserver.model.skills.stats.enums.StatsType;
 import net.sf.l2j.gameserver.network.serverpackets.StatusUpdate;
 import net.sf.l2j.gameserver.network.serverpackets.StatusUpdate.StatusUpdateType;
 import net.sf.l2j.gameserver.network.serverpackets.SystemMessage;
@@ -37,7 +36,7 @@
  // check for other effects
  try
  {
- ISkillHandler handler = SkillHandler.getHandler(SkillType.BUFF);
+ var handler = SkillHandler.getHandler(SkillType.BUFF);
 
  if (handler != null)
  {
@@ -49,9 +48,9 @@
  //
  }
 
- for (L2Object target2 : targets)
+ for (var target2 : targets)
  {
- L2Character target = (L2Character) target2;
+ var target = (L2Character) target2;
 
  // We should not heal if char is dead
  if ((target == null) || target.isDead())
@@ -65,34 +64,35 @@
  continue;
  }
 
- boolean sps = activeChar.isChargedShot(ShotType.SPIRITSHOTS);
- boolean bss = activeChar.isChargedShot(ShotType.BLESSED_SPIRITSHOTS);
+ var sps = activeChar.isChargedShot(ShotType.SPIRITSHOTS);
+ var bss = activeChar.isChargedShot(ShotType.BLESSED_SPIRITSHOTS);
 
- double hp = skill.getPower();
+ var hp = skill.getPower();
 
- if (skill.getSkillType() == SkillType.HEAL_PERCENT)
- {
- hp = (target.getStat().getMaxHp() * hp) / 100.0;
- }
- else
+ switch (skill.getSkillType())
  {
- if (bss)
+ case HEAL:
  {
- hp *= 1.5;
+ if (bss)
+ {
+ hp = skill.getPower() * 1.5;
+ }
+ else if (sps)
+ {
+ hp = skill.getPower() * 1.3;
+ }
+ break;
  }
- else if (sps)
+ case HEAL_PERCENT:
  {
- hp *= 1.3;
+ hp = (target.getStat().getMaxHp() * skill.getPower()) / 100.0;
+ break;
  }
- }
-
- if (skill.getSkillType() == SkillType.HEAL_STATIC)
- {
- hp = skill.getPower();
- }
- else if (skill.getSkillType() != SkillType.HEAL_PERCENT)
- {
- hp *= target.calcStat(StatsType.HEAL_HP_RATE, 100, null, null) / 100;
+ case HEAL_STATIC:
+ {
+ hp = skill.getPower();
+ break;
+ }
  }
 
  target.setCurrentHp(hp + target.getCurrentHp());

12
Issues / Re:[MOD - EventCooperative] - Error
« en: Julio 17, 2018, 01:31:08 pm »
Creo que tendre que sentarme a testearlo yo no? jeje

Aqui te dejo como lo tengo yo actualmente al ctf.

Código
package main.engine.events.cooperative.types;

import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Map.Entry;
import java.util.concurrent.ConcurrentHashMap;

import main.data.ConfigData;
import main.engine.events.cooperative.AbstractCooperative;
import main.holders.objects.CharacterHolder;
import main.holders.objects.NpcHolder;
import main.holders.objects.PlayerHolder;
import main.util.Util;
import main.util.UtilInventory;
import main.util.UtilMessage;
import main.util.builders.html.Html;
import net.sf.l2j.gameserver.ThreadPoolManager;
import net.sf.l2j.gameserver.data.ItemData;
import net.sf.l2j.gameserver.model.actor.L2Npc;
import net.sf.l2j.gameserver.model.actor.L2Playable;
import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;
import net.sf.l2j.gameserver.model.actor.instance.enums.TeamType;
import net.sf.l2j.gameserver.model.items.enums.ParpedollType;
import net.sf.l2j.gameserver.model.party.Party;
import net.sf.l2j.gameserver.network.serverpackets.InventoryUpdate;

/**
 * @author fissban
 */
public class CaptureTheFlag extends AbstractCooperative
{
/** FlagItem */
private static final int FLAG_ITEM = 6718;
/** Points of blue team */
private static volatile int pointsBlue = 0;
/** Points of red team */
private static volatile int pointsRed = 0;
/** Points of each player */
private static Map<String, Integer> playerPoints = new ConcurrentHashMap<>();
/** Flags and holders instances */
private static Map<Integer, NpcHolder> flagAndHolders = new HashMap<>();

public CaptureTheFlag()
{
super();
}

@Override
public boolean canAttack(CharacterHolder attacker, CharacterHolder victim)
{
if (Util.areObjectType(L2PcInstance.class, attacker, victim))
{
// Check if the 2 players are participating in the event.
if (playerInEvent(attacker, victim))
{
// Check the team of each character.
if (attacker.getTeam() != victim.getTeam())
{
return true;
}
}
}

return false;
}

@Override
public void createParty()
{
// Leader Party Blue
PlayerHolder lpb = null;
// Leader Party Red
PlayerHolder lpr = null;

if (getPlayersInEvent().size() <= 3)
{
return;
}

for (var ph : getPlayersInEvent())
{
if (ph == null)
{
continue;
}

// Remove from old party
if (ph.getInstance().getParty() != null)
{
ph.getInstance().getParty().removePartyMember(ph.getInstance(), true);
}

PlayerHolder leader = null;

switch (ph.getTeam())
{
case BLUE:
leader = lpb;
break;
case RED:
leader = lpr;
break;
}

// If there is no leader yet, we assign one
if (leader == null)
{
leader = ph;
continue;
}

// If the party exceeds the limit of members we start the creation of a new one
if (leader != null && leader.getInstance().getParty() != null && leader.getInstance().getParty().getMemberCount() >= 7)
{
switch (ph.getTeam())
{
case BLUE:
lpb = ph;
continue;
case RED:
lpr = ph;
continue;
}
}

// Created the party
if (leader.getInstance().getParty() == null)
{
Party party = new Party(leader.getInstance());
party.addPartyMember(ph.getInstance());
}
// Added a new party member
else
{
leader.getInstance().getParty().addPartyMember(ph.getInstance());
}
}
}

@Override
public void createTeams()
{
var lastTeam = TeamType.BLUE;

for (var ph : getPlayersInEvent())
{
// Save the character's location before being sent to the event.
ph.setLastLoc(ph.getInstance().getX(), ph.getInstance().getY(), ph.getInstance().getZ());

switch (lastTeam)
{
case RED:
// Teleport
ph.getInstance().teleToLocation(ConfigData.TVT_SPAWN_TEAM_BLUE, ConfigData.TVT_RADIUS_SPAWN);
// Set team
ph.setTeam(TeamType.BLUE);
// Set last team
lastTeam = TeamType.BLUE;
break;
case BLUE:
// Teleport
ph.getInstance().teleToLocation(ConfigData.TVT_SPAWN_TEAM_RED, ConfigData.TVT_RADIUS_SPAWN);
// Set el team
ph.setTeam(TeamType.RED);
// Set last team
lastTeam = TeamType.RED;
break;
default:
// Never happens!
break;
}
}
}

@Override
public void giveRewards()
{
// Check the winning team.
var teamWinner = TeamType.NONE;

// Tied teams
if (pointsBlue == pointsRed)
{
//
}
else if (pointsBlue > pointsRed)
{
teamWinner = TeamType.BLUE;
}
else
{
teamWinner = TeamType.RED;
}

if (teamWinner == TeamType.NONE)
{
UtilMessage.sendAnnounceMsg("The event ends in a draw!", getPlayersInEvent());
}
else
{
UtilMessage.sendAnnounceMsg("The team " + teamWinner.name() + " was the winner!", getPlayersInEvent());

for (var ph : getPlayersInEvent())
{
// Prizes are awarded to the winning team.
if (ph.getTeam() == teamWinner)
{
ConfigData.TVT_REWARDS.forEach(rh -> UtilInventory.giveItems(ph, rh.getRewardId(), rh.getRewardCount(), 0));
}
}
}
}

// LISTENERS -----------------------------------------------------------------------------------------

/**
* @param ph
* @return
*/
@Override
public boolean onExitWorld(PlayerHolder ph)
{
if (ph.hasFlag())
{
unequipFlag(ph, true);
}

return super.onExitWorld(ph);
}

@Override
public void onDeath(CharacterHolder character)
{
// Check if the character is inside the event
if (!playerInEvent(character))
{
return;
}

var ph = character.getActingPlayer();

if (ph.hasFlag())
{
unequipFlag(ph, true);
}

var death = ThreadPoolManager.getInstance().schedule(() ->
{
deathTasks.remove(character.getObjectId());

// Revive
revivePlayer(ph);
// Heal
healToMax(ph);
// Buff
giveBuff(ph);

}, 10 * 1000); // 10 sec

deathTasks.put(character.getObjectId(), death);
}

@Override
public void onKill(CharacterHolder killer, CharacterHolder victim, boolean isPet)
{
if (Util.areObjectType(L2Playable.class, killer, victim))
{
var killerPc = killer.getActingPlayer();
var victimPc = victim.getActingPlayer();

if (playerInEvent(killerPc, victimPc))
{
// Increase the points of each team
if (killerPc.getTeam() == TeamType.BLUE)
{
pointsBlue += ConfigData.CTF_POINT_KILL_PLAYER;
}
else
{
pointsRed += ConfigData.CTF_POINT_KILL_PLAYER;
}

// Send all the characters of the event the amount of points.
sendPointsToAllParticipant();
// Increase the points of each player
increasePlayerPoint(killerPc, ConfigData.CTF_POINT_KILL_PLAYER);
}
}
}

@Override
public boolean onInteract(PlayerHolder ph, CharacterHolder character)
{
if (!Util.areObjectType(L2Npc.class, character))
{
return false;
}

// Check if the player participates in the event.
if (!playerInEvent(ph))
{
return false;
}

var flag = (NpcHolder) character;

if (flag.getId() == ConfigData.CTF_FLAG_ID)
{
if (ph.hasFlag())
{
return false;
}
if (ph.getTeam() != flag.getTeam())
{
equipFlag(ph, flag);
return true;
}
return false;
}

if (flag.getId() == ConfigData.CTF_HOLDER_ID)
{
if (ph.hasFlag())
{
if (ph.getTeam() == flag.getTeam())
{
unequipFlag(ph, false);

increasePlayerPoint(ph, ConfigData.CTF_POINT_DELIVER_FLAG);

switch (ph.getTeam())
{
case BLUE:
pointsBlue += ConfigData.CTF_POINT_DELIVER_FLAG;
break;
case RED:
pointsRed += ConfigData.CTF_POINT_DELIVER_FLAG;
break;
}

sendPointsToAllParticipant();
return true;
}
}
return false;
}

return true;
}

@Override
public void onUnequip(CharacterHolder player)
{
if (player instanceof PlayerHolder)
{
var ph = (PlayerHolder) player;
var flag = ph.getInstance().getInventory().getPaperdollItem(ParpedollType.RHAND);

if (flag == null && ph.hasFlag())
{
// drop flag
unequipFlag(ph, true);
}
}
}

// XXX MISC ------------------------------------------------------------------------------------------------------------

@Override
public void onStart()
{
var xRed = ConfigData.CTF_FLAG_SPAWN_TEAM_RED.getX();
var yRed = ConfigData.CTF_FLAG_SPAWN_TEAM_RED.getY();
var zRed = ConfigData.CTF_FLAG_SPAWN_TEAM_RED.getZ();

var xBlue = ConfigData.CTF_FLAG_SPAWN_TEAM_RED.getX();
var yBlue = ConfigData.CTF_FLAG_SPAWN_TEAM_RED.getY();
var zBlue = ConfigData.CTF_FLAG_SPAWN_TEAM_RED.getZ();

// Flag spawn
addSpawnNpc(ConfigData.CTF_FLAG_ID, xBlue, yBlue, zBlue, 0, 0, 0, TeamType.BLUE);
addSpawnNpc(ConfigData.CTF_FLAG_ID, xRed, yRed, zRed, 0, 0, 0, TeamType.RED);
// Holder spawn
addSpawnNpc(ConfigData.CTF_HOLDER_ID, xBlue - 100, yBlue, zBlue, 0, 0, 0, TeamType.BLUE);// FIXME chequear el -100 si queda bien
addSpawnNpc(ConfigData.CTF_HOLDER_ID, xRed - 100, yRed, zRed, 0, 0, 0, TeamType.RED);// FIXME chequear el -100 si queda bien
}

@Override
public void onEnd()
{
// Cancel party
getPlayersInEvent().stream().filter(ph -> ph.getInstance().getParty() != null).forEach(ph -> ph.getInstance().getParty().removePartyMember(ph.getInstance(), true));

// Unspawn all flags and holders
flagAndHolders.values().stream().filter(npc -> npc.getInstance() != null).forEach(npc ->
{
// stop respawn
if (npc.getInstance().getSpawn() != null)
{
npc.getInstance().getSpawn().stopRespawn();
}
// remove from world
npc.getInstance().deleteMe();
});

// Generate ranking
var pointsOrdered = new LinkedHashMap<String, Integer>();

// Send html showing the points of each player
// order the list according to your scores
var LIMIT = 10;
playerPoints.entrySet().stream().sorted(Entry.<String, Integer> comparingByValue().reversed()).limit(LIMIT).forEach(e -> pointsOrdered.put(e.getKey(), e.getValue()));

// Generate the html of the ranking
var hb = Html.eventRanking(pointsOrdered);
// Send the html to each character in the event
sendHtml(null, hb, getPlayersInEvent());

// Clear
flagAndHolders.clear();
playerPoints.clear();
pointsBlue = 0;
pointsRed = 0;
}

/**
* Revive a character and send it to the spawn point according to his team
* @param ph
*/
private void revivePlayer(PlayerHolder ph)
{
if (!ph.getInstance().isDead())
{
return;
}

ph.getInstance().doRevive();

switch (ph.getTeam())
{
case BLUE:
ph.getInstance().teleToLocation(ConfigData.CTF_SPAWN_TEAM_BLUE, ConfigData.CTF_RADIUS_SPAWN);
break;
case RED:
ph.getInstance().teleToLocation(ConfigData.CTF_SPAWN_TEAM_RED, ConfigData.CTF_RADIUS_SPAWN);
break;
}
}

/**
* Increase by 1 the number of points of a character
* @param ph
*/
private static void increasePlayerPoint(PlayerHolder ph, int p)
{
if (!playerPoints.containsKey(ph.getName()))
{
playerPoints.put(ph.getName(), 0);
}

int points = playerPoints.get(ph.getName()) + p;
playerPoints.put(ph.getName(), points);
}

/**
* Equip a character with a flag.
* @param ph
* @param flagTeam
*/
private static void equipFlag(PlayerHolder ph, NpcHolder npc)
{
var teamType = ph.getTeam();

// get and remove flag from memory
var flag = flagAndHolders.remove(npc.getObjectId());
// stop flag respawn
if (flag.getInstance().getSpawn() != null)
{
flag.getInstance().getSpawn().stopRespawn();
}
// remove flag from world
flag.getInstance().deleteMe();

ph.setHasFlag(true);
// Equip flag
var flagItem = ItemData.getInstance().createItem("", FLAG_ITEM, 1, ph.getInstance(), null);
if (flagItem != null)
{
ph.getInstance().getInventory().equipItem(flagItem);
}
// Send Message
UtilMessage.sendAnnounceMsg("The " + teamType.name().toLowerCase() + " team has taken the flag!", getPlayersInEvent());
}

/**
* We remove the flag of a character.
* @param ph
*/
private void unequipFlag(PlayerHolder ph, boolean drop)
{
// Create new spawn
switch (ph.getTeam())
{
case BLUE:
var xRed = drop ? ph.getInstance().getX() : ConfigData.CTF_FLAG_SPAWN_TEAM_RED.getX();
var yRed = drop ? ph.getInstance().getY() : ConfigData.CTF_FLAG_SPAWN_TEAM_RED.getY();
var zRed = drop ? ph.getInstance().getZ() : ConfigData.CTF_FLAG_SPAWN_TEAM_RED.getZ();
addSpawnNpc(ConfigData.CTF_FLAG_ID, xRed, yRed, zRed, 0, 0, 0, TeamType.RED);
break;
case RED:
var xBlue = drop ? ph.getInstance().getX() : ConfigData.CTF_FLAG_SPAWN_TEAM_BLUE.getX();
var yBlue = drop ? ph.getInstance().getY() : ConfigData.CTF_FLAG_SPAWN_TEAM_BLUE.getY();
var zBlue = drop ? ph.getInstance().getZ() : ConfigData.CTF_FLAG_SPAWN_TEAM_BLUE.getZ();
addSpawnNpc(ConfigData.CTF_FLAG_ID, xBlue, yBlue, zBlue, 0, 0, 0, TeamType.BLUE);
break;
}

// Unequip flag
var flag = ph.getInstance().getInventory().getPaperdollItem(ParpedollType.RHAND);
if (flag != null)
{
var items = ph.getInstance().getInventory().unEquipItemInSlotAndRecord(ParpedollType.RHAND);

var iu = new InventoryUpdate();
iu.addItems(items);
ph.getInstance().sendPacket(iu);
}

var teamType = ph.getTeam();
if (drop)
{
UtilMessage.sendAnnounceMsg("The " + teamType.name().toLowerCase() + " has drop flag!", getPlayersInEvent());
}
else
{
UtilMessage.sendAnnounceMsg("The " + teamType.name().toLowerCase() + " team has delivered the flag!", getPlayersInEvent());
}
}

@Override
public NpcHolder addSpawnNpc(int npcId, int x, int y, int z, int heading, int randomOffset, long despawnDelay, TeamType teamType)
{
var npc = super.addSpawnNpc(npcId, x, y, z, heading, randomOffset, despawnDelay, teamType);
flagAndHolders.put(npc.getObjectId(), npc);
return npc;
}

/**
* Send all the characters a message on the screen showing the points of each team
*/
private static void sendPointsToAllParticipant()
{
UtilMessage.sendAnnounceMsg("BLUE " + pointsBlue + " | " + pointsRed + " RED", getPlayersInEvent());
}
}


Aqui habia agregado apra evitar que se desequipen la bandera.

Código
	@Override
public void onUnequip(CharacterHolder player)
{
if (player instanceof PlayerHolder)
{
var ph = (PlayerHolder) player;
var flag = ph.getInstance().getInventory().getPaperdollItem(ParpedollType.RHAND);

if (flag == null && ph.hasFlag())
{
// drop flag
unequipFlag(ph, true);
}
}
}

pero quizas herre aqui
Código
if (flag == null && ph.hasFlag())

13
Issues / Re:[MOD - EventCooperative] - Error
« en: Julio 15, 2018, 12:08:03 pm »
ya subi todos los fix que se han echo y algun que otro que no se discutio aqui.
https://sourceforge.net/p/l2jadminsc4/code/1126/

Gracias

14
Issues / Re:[MOD - EventCooperative] - Error
« en: Julio 14, 2018, 12:04:58 pm »
Bueno ahora si lanzo bien el TP, acerca de los rewards estos solo son entregados cuando hay mas de 1 player "No tendria sentido un cooperative de 1 player  ::)", estuve probandolo y va bien hasta cierto punto, eso si... parece que el problema de el evento era por el checkafk debido a que ahora si envia al coliseo pero yo le configure 60 segs del anti-afks y me saca del evento inclusive moviendo al char en esos 60 segs, desactive el anti-afk y ya no sucedia mas ese problema "creo que es otro detalle entre los true/false". Aparte de unos detalles en los eventos como que las banderas se buguearon cuando sali del evento con ella y al deletearla en la mochila  fuera del evento causo que en el otro evento se bugueasen las banderas y dropeaba banderas cada vez que moria "Aun sin tenerla xD" pero las banderas quedaban como NPC y no pickeables ademas de que el spawn de la 2da bandera "Creo que era la red" no estaba... Yo en un rato que me desocupe reviso si puedo arreglarlo y te mando el fix

como has salido del evento?

aca un pequeño fix para quitarte la bandera....sin test obvio xD

Código
Index: src/main/engine/events/cooperative/types/CaptureTheFlag.java
===================================================================
--- src/main/engine/events/cooperative/types/CaptureTheFlag.java (revision 1121)
+++ src/main/engine/events/cooperative/types/CaptureTheFlag.java (working copy)
@@ -22,7 +22,9 @@
 import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;
 import net.sf.l2j.gameserver.model.actor.instance.enums.TeamType;
 import net.sf.l2j.gameserver.model.items.enums.ParpedollType;
+import net.sf.l2j.gameserver.model.items.enums.SlotType;
 import net.sf.l2j.gameserver.model.party.Party;
+import net.sf.l2j.gameserver.network.serverpackets.InventoryUpdate;
 
 /**
  * @author fissban
@@ -490,7 +492,12 @@
  var flag = ph.getInstance().getInventory().getPaperdollItem(ParpedollType.RHAND);
  if (flag != null)
  {
- ph.getInstance().getInventory().equipItem(flag);
+ SlotType slot = ph.getInstance().getInventory().getSlotFromItem(flag);
+ var items = ph.getInstance().getInventory().unEquipItemInBodySlotAndRecord(slot);
+
+ InventoryUpdate iu = new InventoryUpdate();
+ iu.addItems(items);
+ ph.getInstance().sendPacket(iu);
  }
 
  var teamType = ph.getTeam();

15
Issues / Re:[MOD - EventCooperative] - Error
« en: Julio 13, 2018, 07:33:15 pm »
Buen test...revisare los temas apena este frente a mi pc

Páginas: [1] 2 3 4 5 6 ... 11