From 016c4c469f39a2f2681e5176202ce4cde8eb6323 Mon Sep 17 00:00:00 2001
From: Zealar <zealar@mail.bg>
Date: Fri, 18 Dec 2015 15:53:34 +0200
Subject: [PATCH] Fix few problems when admin change user class

+ Drop underground
+ Animation position
+ Char texture stuck
+ Target window show empty HP/MP bars

Fix #267
---
 .../scripts/handlers/admincommandhandlers/AdminEditChar.java | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/dist/game/data/scripts/handlers/admincommandhandlers/AdminEditChar.java b/dist/game/data/scripts/handlers/admincommandhandlers/AdminEditChar.java
index a3b20797e6..452b0648c7 100644
--- a/dist/game/data/scripts/handlers/admincommandhandlers/AdminEditChar.java
+++ b/dist/game/data/scripts/handlers/admincommandhandlers/AdminEditChar.java
@@ -33,6 +33,7 @@ import com.l2jserver.Config;
 import com.l2jserver.commons.database.pool.impl.ConnectionFactory;
 import com.l2jserver.gameserver.data.sql.impl.CharNameTable;
 import com.l2jserver.gameserver.data.xml.impl.ClassListData;
+import com.l2jserver.gameserver.data.xml.impl.TransformData;
 import com.l2jserver.gameserver.handler.IAdminCommandHandler;
 import com.l2jserver.gameserver.model.L2Object;
 import com.l2jserver.gameserver.model.L2World;
@@ -368,6 +369,7 @@ public class AdminEditChar implements IAdminCommandHandler
 				}
 				if (valid && (player.getClassId().getId() != classidval))
 				{
+					TransformData.getInstance().transformPlayer(255, player);
 					player.setClassId(classidval);
 					if (!player.isSubClassActive())
 					{
@@ -376,7 +378,10 @@ public class AdminEditChar implements IAdminCommandHandler
 					String newclass = ClassListData.getInstance().getClass(player.getClassId()).getClassName();
 					player.storeMe();
 					player.sendMessage("A GM changed your class to " + newclass + ".");
+					player.untransform();
 					player.broadcastUserInfo();
+					activeChar.setTarget(null);
+					activeChar.setTarget(player);
 					activeChar.sendMessage(player.getName() + " is a " + newclass + ".");
 				}
 				else
-- 
GitLab