Noticias:

Debes de estar registrado para poder ver el contenido indicado. Registrate o Conectate

Menú Principal

Olympiad Feed

Iniciado por Swarlog, Ago 31, 2022, 08:03 PM

Tema anterior - Siguiente tema

Swarlog

CitarCORE:

Index: java/com/l2jserver/gameserver/network/serverpackets/CharInfo.java
===================================================================
--- java/com/l2jserver/gameserver/network/serverpackets/CharInfo.java (revision 5612)
+++ java/com/l2jserver/gameserver/network/serverpackets/CharInfo.java (working copy)
@@ -21,9 +21,12 @@
 import com.l2jserver.gameserver.instancemanager.CursedWeaponsManager;
 import com.l2jserver.gameserver.model.actor.L2Decoy;
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
+import com.l2jserver.gameserver.model.base.ClassId;
 import com.l2jserver.gameserver.model.itemcontainer.Inventory;
 import com.l2jserver.gameserver.skills.AbnormalEffect;
 import com.l2jserver.gameserver.templates.chars.L2NpcTemplate;
+import com.l2jserver.gameserver.templates.item.L2ArmorType;
+import com.l2jserver.gameserver.templates.item.L2WeaponType;
 
 
 /**
@@ -236,59 +239,107 @@
  writeD(_z);
  writeD(_vehicleId);
  writeD(_objId);
- writeS(_activeChar.getAppearance().getVisibleName());
- writeD(_activeChar.getRace().ordinal());
- writeD(_activeChar.getAppearance().getSex() ? 1 : 0);
+ if(_activeChar.isInOlympiadMode()){
+ writeS("Player");//Every player in olympiad will have name Player
+ writeD(0);//Every player in olympiad will be Human
+ writeD(0);//Every player in olympiad will be male
+ }else{
+ writeS(_activeChar.getAppearance().getVisibleName());
+ writeD(_activeChar.getRace().ordinal());
+ writeD(_activeChar.getAppearance().getSex() ? 1 : 0);
+ }
 
  if (_activeChar.getClassIndex() == 0)
  writeD(_activeChar.getClassId().getId());
  else
  writeD(_activeChar.getBaseClass());
 
- writeD(_inv.getPaperdollItemId(Inventory.PAPERDOLL_UNDER));
- writeD(_inv.getPaperdollItemId(Inventory.PAPERDOLL_HEAD));
- if (_airShipHelm == 0)
+ if(_activeChar.isInOlympiadMode())
  {
- writeD(_inv.getPaperdollItemId(Inventory.PAPERDOLL_RHAND));
- writeD(_inv.getPaperdollItemId(Inventory.PAPERDOLL_LHAND));
- }
- else
- {
- writeD(_airShipHelm);
  writeD(0);
+ writeD(0);
+ if(_inv.getPaperdollItemId(Inventory.PAPERDOLL_RHAND) != 0)
+ writeD(getOlympiadWeaponId(_inv.getPaperdollItem(Inventory.PAPERDOLL_RHAND).getWeaponItem().getItemType()));
+ else
+ writeD(0);
+ if(_inv.getPaperdollItem(Inventory.PAPERDOLL_LHAND) != null)
+ writeD(getOlympiadItemId(Inventory.PAPERDOLL_LHAND, _inv.getPaperdollItem(Inventory.PAPERDOLL_LHAND).getArmorItem().getItemType(), null, shouldUseShield(_activeChar.getClassId())));
+ else
+ writeD(0);
+ writeD(getOlympiadItemId(Inventory.PAPERDOLL_GLOVES, _inv.getPaperdollItem(Inventory.PAPERDOLL_GLOVES).getArmorItem().getItemType(), null, false));
+ writeD(getOlympiadItemId(Inventory.PAPERDOLL_CHEST, _inv.getPaperdollItem(Inventory.PAPERDOLL_CHEST).getArmorItem().getItemType(), null, false));
+ writeD(getOlympiadItemId(Inventory.PAPERDOLL_LEGS, _inv.getPaperdollItem(Inventory.PAPERDOLL_LEGS).getArmorItem().getItemType(), null, false));
+ writeD(getOlympiadItemId(Inventory.PAPERDOLL_FEET, _inv.getPaperdollItem(Inventory.PAPERDOLL_FEET).getArmorItem().getItemType(), null, false));
+ writeD(0);
+ if(_inv.getPaperdollItemId(Inventory.PAPERDOLL_RHAND) != 0)
+ writeD(getOlympiadWeaponId(_inv.getPaperdollItem(Inventory.PAPERDOLL_RHAND).getWeaponItem().getItemType()));
+ else
+ writeD(0);
+ writeD(0);
+ writeD(0);
+
+ writeD(0);
+ writeD(0);
+ writeD(0);
+ writeD(0);
+ writeD(0);
+ writeD(0);
+ writeD(0);
+ writeD(0);
+ writeD(0);
+
+ writeD(0);
+ writeD(0);
+ writeD(0);
+ writeD(0);
  }
- writeD(_inv.getPaperdollItemId(Inventory.PAPERDOLL_GLOVES));
- writeD(_inv.getPaperdollItemId(Inventory.PAPERDOLL_CHEST));
- writeD(_inv.getPaperdollItemId(Inventory.PAPERDOLL_LEGS));
- writeD(_inv.getPaperdollItemId(Inventory.PAPERDOLL_FEET));
- writeD(_inv.getPaperdollItemId(Inventory.PAPERDOLL_CLOAK));
- writeD(_inv.getPaperdollItemId(Inventory.PAPERDOLL_RHAND));
- writeD(_inv.getPaperdollItemId(Inventory.PAPERDOLL_HAIR));
- writeD(_inv.getPaperdollItemId(Inventory.PAPERDOLL_HAIR2));
- // T1 new d's
- writeD(_inv.getPaperdollItemId(Inventory.PAPERDOLL_RBRACELET));
- writeD(_inv.getPaperdollItemId(Inventory.PAPERDOLL_LBRACELET));
- writeD(_inv.getPaperdollItemId(Inventory.PAPERDOLL_DECO1));
- writeD(_inv.getPaperdollItemId(Inventory.PAPERDOLL_DECO2));
- writeD(_inv.getPaperdollItemId(Inventory.PAPERDOLL_DECO3));
- writeD(_inv.getPaperdollItemId(Inventory.PAPERDOLL_DECO4));
- writeD(_inv.getPaperdollItemId(Inventory.PAPERDOLL_DECO5));
- writeD(_inv.getPaperdollItemId(Inventory.PAPERDOLL_DECO6));
- writeD(_inv.getPaperdollItemId(Inventory.PAPERDOLL_BELT));
- // end of t1 new d's
-
- // c6 new h's
- writeD(_inv.getPaperdollAugmentationId(Inventory.PAPERDOLL_UNDER));
- writeD(_inv.getPaperdollAugmentationId(Inventory.PAPERDOLL_HEAD));
- if (_airShipHelm == 0)
- {
- writeD(_inv.getPaperdollAugmentationId(Inventory.PAPERDOLL_RHAND));
- writeD(_inv.getPaperdollAugmentationId(Inventory.PAPERDOLL_LHAND));
- }
  else
  {
- writeD(0);
- writeD(0);
+ writeD(_inv.getPaperdollItemId(Inventory.PAPERDOLL_UNDER));
+ writeD(_inv.getPaperdollItemId(Inventory.PAPERDOLL_HEAD));
+ if (_airShipHelm == 0)
+ {
+ writeD(_inv.getPaperdollItemId(Inventory.PAPERDOLL_RHAND));
+ writeD(_inv.getPaperdollItemId(Inventory.PAPERDOLL_LHAND));
+ }
+ else
+ {
+ writeD(_airShipHelm);
+ writeD(0);
+ }
+ writeD(_inv.getPaperdollItemId(Inventory.PAPERDOLL_GLOVES));
+ writeD(_inv.getPaperdollItemId(Inventory.PAPERDOLL_CHEST));
+ writeD(_inv.getPaperdollItemId(Inventory.PAPERDOLL_LEGS));
+ writeD(_inv.getPaperdollItemId(Inventory.PAPERDOLL_FEET));
+ writeD(_inv.getPaperdollItemId(Inventory.PAPERDOLL_CLOAK));
+ writeD(_inv.getPaperdollItemId(Inventory.PAPERDOLL_RHAND));
+ writeD(_inv.getPaperdollItemId(Inventory.PAPERDOLL_HAIR));
+ writeD(_inv.getPaperdollItemId(Inventory.PAPERDOLL_HAIR2));
+ // T1 new d's
+ writeD(_inv.getPaperdollItemId(Inventory.PAPERDOLL_RBRACELET));
+ writeD(_inv.getPaperdollItemId(Inventory.PAPERDOLL_LBRACELET));
+ writeD(_inv.getPaperdollItemId(Inventory.PAPERDOLL_DECO1));
+ writeD(_inv.getPaperdollItemId(Inventory.PAPERDOLL_DECO2));
+ writeD(_inv.getPaperdollItemId(Inventory.PAPERDOLL_DECO3));
+ writeD(_inv.getPaperdollItemId(Inventory.PAPERDOLL_DECO4));
+ writeD(_inv.getPaperdollItemId(Inventory.PAPERDOLL_DECO5));
+ writeD(_inv.getPaperdollItemId(Inventory.PAPERDOLL_DECO6));
+ writeD(_inv.getPaperdollItemId(Inventory.PAPERDOLL_BELT));
+ // end of t1 new d's
+
+ // c6 new h's
+ writeD(_inv.getPaperdollAugmentationId(Inventory.PAPERDOLL_UNDER));
+ writeD(_inv.getPaperdollAugmentationId(Inventory.PAPERDOLL_HEAD));
+ if (_airShipHelm == 0)
+ {
+ writeD(_inv.getPaperdollAugmentationId(Inventory.PAPERDOLL_RHAND));
+ writeD(_inv.getPaperdollAugmentationId(Inventory.PAPERDOLL_LHAND));
+ }
+ else
+ {
+ writeD(0);
+ writeD(0);
+ }
  }
  writeD(_inv.getPaperdollAugmentationId(Inventory.PAPERDOLL_GLOVES));
  writeD(_inv.getPaperdollAugmentationId(Inventory.PAPERDOLL_CHEST));
@@ -344,24 +395,38 @@
  }
  else
  {
- writeF(_activeChar.getCollisionRadius());
- writeF(_activeChar.getCollisionHeight());
+ if(_activeChar.isInOlympiadMode()){
+ writeF(9);//Radius of Human Males
+ writeF(23);//Height of Human Males
+ }else{
+ writeF(_activeChar.getCollisionRadius());
+ writeF(_activeChar.getCollisionHeight());
+ }
  }
+ if(_activeChar.isInOlympiadMode()){
+ writeD(0);//Every Character during olympiad will have same face and hair
+ writeD(0);
+ writeD(0);
+ }else{
+ writeD(_activeChar.getAppearance().getHairStyle());
+ writeD(_activeChar.getAppearance().getHairColor());
+ writeD(_activeChar.getAppearance().getFace());
+ }
 
- writeD(_activeChar.getAppearance().getHairStyle());
- writeD(_activeChar.getAppearance().getHairColor());
- writeD(_activeChar.getAppearance().getFace());
-
  if (gmSeeInvis)
  {
  writeS("Invisible");
  }
+ else if(_activeChar.isInOlympiadMode())
+ {
+ writeS(_activeChar.getClassId().name());//Title of character during olympiad will be its class
+ }
  else
  {
  writeS(_activeChar.getAppearance().getVisibleTitle());
  }
 
- if (!_activeChar.isCursedWeaponEquipped())
+ if (!_activeChar.isCursedWeaponEquipped() && !_activeChar.isInOlympiadMode())
  {
  writeD(_activeChar.getClanId());
  writeD(_activeChar.getClanCrestId());
@@ -413,8 +478,10 @@
  }
 
  writeC(_activeChar.isFlyingMounted() ? 2 : 0);
-
- writeH(_activeChar.getRecomHave()); //Blue value for name (0 = white, 255 = pure blue)
+ if(_activeChar.isInOlympiadMode())
+ writeH(0);//Always 0 recs duing olympiad
+ else
+ writeH(_activeChar.getRecomHave()); //Blue value for name (0 = white, 255 = pure blue)
  writeD(_activeChar.getMountNpcId() + 1000000);
  writeD(_activeChar.getClassId().getId());
  writeD(0x00); //?
@@ -427,9 +494,13 @@
  else
  writeC(0x00); //team circle around feet 1= Blue, 2 = red
 
- writeD(_activeChar.getClanCrestLargeId());
+ if(_activeChar.isInOlympiadMode())
+ writeD(0);//No largeCrest while in olympiad
+ else
+ writeD(_activeChar.getClanCrestLargeId());
  writeC(_activeChar.isNoble() ? 1 : 0); // Symbol on char menu ctrl+I
- writeC(_activeChar.isHero() || (_activeChar.isGM() && Config.GM_HERO_AURA) ? 1 : 0); // Hero Aura
+ //No hero Aura while player is in Olympiad
+ writeC((_activeChar.isHero() && !_activeChar.isInOlympiadMode()) || (_activeChar.isGM() && Config.GM_HERO_AURA) ? 1 : 0); // Hero Aura
 
  writeC(_activeChar.isFishing() ? 1 : 0); //0x01: Fishing Mode (Cant be undone by setting back to 0)
  writeD(_activeChar.getFishx());
@@ -467,6 +538,25 @@
  }
  }
 
+ /**
+ * @param classId
+ * @return
+ */
+ private boolean shouldUseShield(ClassId classId)
+ {
+ //Knights only use shields
+ switch(classId)
+ {
+ case hellKnight:
+ case phoenixKnight:
+ case shillienTemplar:
+ case evaTemplar:
+ return true;
+ default:
+ return false;
+ }
+ }
+
  /* (non-Javadoc)
  * @see com.l2jserver.gameserver.serverpackets.ServerBasePacket#getType()
  */
@@ -475,4 +565,89 @@
  {
  return _S__03_CHARINFO;
  }
+
+ private int getOlympiadItemId(int slot, L2ArmorType armorType, L2WeaponType weaponType, boolean shield)
+ {
+ switch(slot)
+ {
+ case Inventory.PAPERDOLL_CHEST:
+ if(armorType == L2ArmorType.HEAVY)
+ return 0;
+ else if(armorType == L2ArmorType.LIGHT)
+ return 0;
+ else
+ return 0;
+ case Inventory.PAPERDOLL_LEGS:
+ if(armorType == L2ArmorType.HEAVY)
+ return 0;
+ else if(armorType == L2ArmorType.LIGHT)
+ return 0;
+ else
+ return 0;
+ case Inventory.PAPERDOLL_GLOVES:
+ if(armorType == L2ArmorType.HEAVY)
+ return 0;
+ else if(armorType == L2ArmorType.LIGHT)
+ return 0;
+ else
+ return 0;
+ case Inventory.PAPERDOLL_FEET:
+ if(armorType == L2ArmorType.HEAVY)
+ return 0;
+ else if(armorType == L2ArmorType.LIGHT)
+ return 0;
+ else
+ return 0;
+ case Inventory.PAPERDOLL_LHAND:
+ if(shield)
+ return 0;//shield Id
+ else if(weaponType != null && (weaponType == L2WeaponType.POLE || weaponType == L2WeaponType.BOW || weaponType == L2WeaponType.BIGBLUNT || weaponType == L2WeaponType.BIGSWORD || weaponType == L2WeaponType.DUALFIST || weaponType == L2WeaponType.CROSSBOW || weaponType == L2WeaponType.DUALDAGGER || weaponType == L2WeaponType.DUAL))//2 Handed Weapons
+ return getOlympiadWeaponId(weaponType);
+ else
+ return 0;//no shield
+ case Inventory.PAPERDOLL_RHAND:
+ return getOlympiadWeaponId(weaponType);
+ default:
+ return 0;//leave it as it is
+ }
+ }
+
+ private int getOlympiadWeaponId(L2WeaponType type)
+ {
+ switch(type)
+ {
+ case ANCIENTSWORD:
+ return 0;
+ case BIGBLUNT:
+ return 0;
+ case BIGSWORD:
+ return 0;
+ case BLUNT:
+ return 0;
+ case BOW:
+ return 0;
+ case CROSSBOW:
+ return 0;
+ case DAGGER:
+ return 0;
+ case DUAL:
+ return 0;
+ case DUALDAGGER:
+ return 0;
+ case DUALFIST:
+ return 0;
+ case ETC:
+ return 0;
+ case FIST:
+ return 0;
+ case POLE:
+ return 0;
+ case RAPIER:
+ return 0;
+ case SWORD:
+ return 0;
+ default:
+ return 0;//change everything except this one
+ }
+ }
 }

CitarDATA:

### Eclipse Workspace Patch 1.0
#P L2J_DataPack
Index: dist/game/data/scripts/handlers/bypasshandlers/OlympiadObservation.java
===================================================================
--- dist/game/data/scripts/handlers/bypasshandlers/OlympiadObservation.java (revision 9140)
+++ dist/game/data/scripts/handlers/bypasshandlers/OlympiadObservation.java (working copy)
@@ -124,9 +124,9 @@
 
  StringUtil.append(list,
  "   ",
- task.getGame().getPlayerNames()[0],
+ "Player",//task.getGame().getPlayerNames()[0],
  "  :  ",
- task.getGame().getPlayerNames()[1]);
+ "Player");//task.getGame().getPlayerNames()[1]);
  }
  else
  {
@@ -200,9 +200,9 @@
 
  StringUtil.append(list,
  "</td><td>",
- task.getGame().getPlayerNames()[0],
+ "Player",//task.getGame().getPlayerNames()[0],
  "&nbsp;",
- task.getGame().getPlayerNames()[1]);
+ "Player");//task.getGame().getPlayerNames()[1]);
  }
  else
  {

By NeverMore