L2DevsAdmins

Cliente => [ES]Tutoriales / [EN]Tutorials => Mensaje iniciado por: Fissban en Agosto 04, 2017, 10:28:57 pm

Título: Editar interface
Publicado por: Fissban en Agosto 04, 2017, 10:28:57 pm
Este tutorial es apto para las cronicas a partir de interlude

Para editar la interface del Lineage2 entran en juego 2 archivos.

interface.xdat
Se encarga de la parte gráfica de cada ventana.
interface.u ->
Se encarga de la parte del funcionamiento de cada ventana.

Para comenzar a modificar la interface debemos conocer algunos comandos.
///show windowname
Muestra los nombres de cada ventana de la interface
Ver imagen (http://www.mediafire.com/convkey/c6a3/pxv666em0220iixzg.jpg)

///reloadui
Vuelve a cargar la interface sin necesidad de salir del juego.

Nota: Estos comando los escribes como cualquier otro comando dentro del cliente

Antes de comenzar les recomiendo que cualquier archivo que modifiquemos creen respaldos porque les aseguro que romperán mas reparar xD

Los programas que necesitaran para editar la interface son 3 y los podrán encontrar en los adjuntos de este post.

Vamos a empezar por la parte gráfica que a lo mejor es la mas sencilla por así decirlo, para esto vamos a usar el xdat_editor al abrirlo tendremos que seleccionar la versión con la cual vamos a trabajar

¿No puedes abrir el xdat_editor ?
Asegúrate de tener la versión de Java 8.6, es decir, la versión 8u60. Puedes descargar cualquier versión de Java en este enlace (http://www.oracle.com/technetwork/java/javase/downloads/java-archive-javase8-2177648.html)

(http://l2devsadmins.net/l2devsAdmins2-0-11/l2devshostfiles/ficheros_subidos/edicion1.jpg)

luego sera cuestión de ir a "File -> Open" vamos a nuestro system y seleccionar nuestro archivo interface.xdat

Aqui les recomiendo que exploren un poco pero donde mas trabajaremos sera en:

(http://l2devsadmins.net/l2devsAdmins2-0-11/l2devshostfiles/ficheros_subidos/edicion2.jpg)

Con esto ya pueden crear un inventario como este que hice yo.....lleva tiempo pero asi es todo aqui xD

(http://l2devsadmins.net/l2devsAdmins2-0-11/l2devshostfiles/ficheros_subidos/edicion3.jpg)

bueno no voy a entrar en detalles de lo que hace cada cosa de este programa porque aun ni yo estoy seguro de muchas de ellas pero investiguen y quizas mas adelante completemos esta parte entre todos xD

Ahora avanzemos a la otra parte muejeje.

Primero vamos a comenzar por decompilar interface.u para ello necesitaremos el programa "WOTgrealExporter.exe".
Antes de ejecutar el programa iremos a nuestro system y copiaremos el archivo interface.u y lo pegaremos junto a este programa
 y seguimos estos pasos

(http://l2devsadmins.net/l2devsAdmins2-0-11/l2devshostfiles/ficheros_subidos/edicion4.jpg)

y ahora

(http://l2devsadmins.net/l2devsAdmins2-0-11/l2devshostfiles/ficheros_subidos/edicion5.jpg)

Ahora a exportarlo

(http://l2devsadmins.net/l2devsAdmins2-0-11/l2devshostfiles/ficheros_subidos/edicion6.jpg)

Ahora podran ver en el explorador en un nivel superior al programa la carpeta interface

(http://l2devsadmins.net/l2devsAdmins2-0-11/l2devshostfiles/ficheros_subidos/edicion7.jpg)

Bravo chicos ya tenemos decompilado los archivos de interface.u
Ahora a modo de ejemplo comenzare por duplicar una ventana por ejemplo la de "StatusWnd" solo compiaremos y pegaremos pero esta ves le pondremos el nombre "StatusWndExp" ahora abrimos el archivo y hacemos algunos ajustes a groso modo para que nos quede asi

Código: [Seleccionar]
class StatusWndExp extends UIScript;

var int m_UserID;
var bool m_bReceivedUserInfo;

//À̺¥Æ® µî·Ï
function OnLoad()
{
RegisterEvent( EV_RegenStatus );

//Level°ú Exp´Â UserInfoÆÐŶÀ¸·Î ó¸®ÇÑ´Ù.
RegisterEvent( EV_UpdateUserInfo );

RegisterEvent( EV_UpdateHP );
RegisterEvent( EV_UpdateMaxHP );
RegisterEvent( EV_UpdateMP );
RegisterEvent( EV_UpdateMaxMP );
RegisterEvent( EV_UpdateCP );
RegisterEvent( EV_UpdateMaxCP );
}

function OnEnterState( name a_PreStateName )
{
m_bReceivedUserInfo = false;
UpdateUserInfo();
}

function UpdateUserInfo()
{
local UserInfo userinfo;

if( GetPlayerInfo( userinfo ) )
{
m_bReceivedUserInfo = true;
m_UserID = userinfo.nID;

class'UIAPI_STATUSBARCTRL'.static.SetPoint("StatusWndExp.CPBar",userinfo.nCurCP,userinfo.nMaxCP);
class'UIAPI_STATUSBARCTRL'.static.SetPoint("StatusWndExp.HPBar",userinfo.nCurHP,userinfo.nMaxHP);
class'UIAPI_STATUSBARCTRL'.static.SetPoint("StatusWndExp.MPBar",userinfo.nCurMP,userinfo.nMaxMP);
class'UIAPI_STATUSBARCTRL'.static.SetPointExp("StatusWndExp.EXPBar",userinfo.nCurExp,userinfo.nLevel);
class'UIAPI_NAMECTRL'.static.SetName("StatusWndExp.UserName",userinfo.Name,NCT_Normal,TA_Left);
class'UIAPI_TEXTBOX'.static.SetInt("StatusWndExp.StatusWnd_LevelTextBox",userinfo.nLevel);
}
}

//â Ŭ¸¯ÇßÀ»¶§ Ÿ°ÙµÇ±â
function OnLButtonDown(WindowHandle a_WindowHandle, int X,int Y)
{
local Rect rectWnd;

rectWnd = class'UIAPI_WINDOW'.static.GetRect("StatusWndExp");
if (X > rectWnd.nX + 13 && X < rectWnd.nX + rectWnd.nWidth -10)
{
RequestSelfTarget();
}
}

function OnEvent( int a_EventID, string a_Param )
{
switch( a_EventID )
{
case EV_UpdateUserInfo:
UpdateUserInfo();
break;
case EV_UpdateMaxHP:
HandleUpdateInfo(a_Param);
break;
case EV_UpdateMP:
HandleUpdateInfo(a_Param);
break;
case EV_UpdateMaxMP:
HandleUpdateInfo(a_Param);
break;
case EV_UpdateCP:
HandleUpdateInfo(a_Param);
break;
case EV_UpdateMaxCP:
HandleUpdateInfo(a_Param);
break;
case EV_RegenStatus:
HandleRegenStatus( a_Param );
break;
default:
break;
}
}

function HandleUpdateInfo(string param)
{
local int ServerID;
ParseInt( param, "ServerID", ServerID );

//¾ÆÁ÷ User¿¡ ´ëÇÑ Á¤º¸¸¦ ¹ÞÁö¸øÇß´Ù¸é, ¹«Á¶°Ç Update¸¦ ½Ç½ÃÇÑ´Ù.
if (m_UserID == ServerID || !m_bReceivedUserInfo)
{
UpdateUserInfo();
}
}

function HandleRegenStatus( String a_Param )
{
local int type;
local int duration;
local int ticks;
local float amount;

ParseInt( a_Param, "Type", type );

//typeÀÌ 1ÀÏ °æ¿ì : HP ¸®Á¨»óŸ¦ º¸¿©ÁÜ =>ÇöÀç 1¸¸ ¼­¹ö¿¡¼­ º¸³»ÁÜ
if( type==1 )
{
ParseInt( a_Param, "Duration", duration );
ParseInt( a_Param, "Ticks", ticks );
ParseFloat( a_Param, "Amount", amount );
class'UIAPI_STATUSBARCTRL'.static.SetRegenInfo("StatusWndExp.HPBar",duration,ticks,amount);
}
}

defaultproperties
{
}

Espero que noten la diferencia con el original.....ahora compilaremos esto nuevamente y para ello necesitamos "ILCompiler" iremos a nuestros archivos "*.uc" y los pegaremos en ILCompiler\interface\Classes, una ves escho este paso vamos a "ILCompiler\ILCompiler\System" y ejecutamos el programa UIScript.exe...este programa correra muy rapido y no veremos mucho de lo q haga pero todo saldra en UIScript.log revisen esto y si ven algun error pues sera cosa de solucionarlo o publicarlo para que pueda ayudarlos....si todo sale exitoso se generara en esta misma carpeta el archivo interface.u

Ahora ya sabemos la funcion de cada programa y sabemos decompilar y compilar e editar la interface.
Como les acabo de hacer q dupliquen una ventana (su funcionamiento) ahora debemos hacer la parte grafica y para ello iremos a nuestro xdat_editor y clickearemos en cualquier lugar libre y ...

(http://l2devsadmins.net/l2devsAdmins2-0-11/l2devshostfiles/ficheros_subidos/edicion8.jpg)
Ahora en esta nueva ventana tendremos que ir pegando los valores de StatusWnd que para ello le recomiendo q abran otra ventana del xdat_editor...ahora no todo tiene q ser igual donde salga "StatusWnd" lo remplazamos por "StatusWndExp".

Listo pegamos el archivo interface.xdat y interface.u dentro de nuestro clientes y lo abrimos.

Espero que les halla gustado esta guia y aunque falta muchísima información de como funciona cada cosa pero esto es de mis primer incursiones en el cliente :D






Título: Re:Editar interface
Publicado por: Unstoppable en Agosto 05, 2017, 03:46:50 am
quisas sirva esta ayuda , en este post comentaron algunos nuevos comandos

http://l2devsadmins.net/l2devsAdmins2-0-11/index.php?topic=7388.0

///re
///gfx
///delgfxall
///ui
///playsheathinganim
///setstate gamingstate
///uidebug
///reloadui
///eventmsg
///show windowname
///show windowbox
///autocom
///sceneeditor
///showwindow
Título: Re:Editar interface
Publicado por: ReynalDev en Agosto 05, 2017, 10:09:46 am
Vamos a JUGAR UN RATO!  :elf1_10:
Título: Re:Editar interface
Publicado por: Fissban en Agosto 05, 2017, 11:51:10 am
Hoy voy a continuar este tutorial para q puedan poner la barra de experiencia abajo.....entre otras cosas
Título: Re:Editar interface
Publicado por: ReynalDev en Agosto 05, 2017, 01:21:34 pm
Me dí cuenta que el XDAT_Editor no funciona para mí, necesitaba encontrar algo que me dijera que OCURRÍA, por lo que cambié lo que está dentro del xdat_editor.bat.
Originalmente tenía:

Código: [Seleccionar]
cd libs
start javaw -jar updater.jar

Para que me mostrará la consola le quité el w.
Quedando así:

Código: [Seleccionar]
cd libs
start java -jar updater.jar

Ahora que tenía el error pasé a probar diferentes versiones de Java.

Mi PC es de 64 Bits, Windows 7 Ultimate
Tenía la versión 8u131, la actualicé a 8u144.
Me bajé la versión u820, instalé la versión u820.
Me bajé la versión u840, instalé la versión u840.
Me bajé la versión u860, instalé la versión u860.

En todos estos pasos dejé únicamente una versión de Java y en todas el siguiente error.

(http://www.mediafire.com/convkey/409c/xxfh057q7eaaaa9zg.jpg)
Título: Re:Editar interface
Publicado por: ReynalDev en Agosto 05, 2017, 01:30:03 pm
La documentación (https://sites.google.com/site/l2clientmod/xdat_editor) dice que la versión actual soporta u860 para arriba, por lo que me quedo con esa versión.
Para poder Ejecutar el editor, cambié lo que estaba dentro del archivo xdat_editor.bat. Borrando todo y dejando.

Código: [Seleccionar]
cd libs
start javaw -jar editor.jar
Título: Re:Editar interface
Publicado por: SGER@fjs en Agosto 06, 2017, 04:25:31 pm
Si le pegas unas horas de leídas al script de la interfaz del l2 y ojeadas a la documentación del ue2 (https://docs.unrealengine.com/udk/Two/UnrealScriptReference.html (https://docs.unrealengine.com/udk/Two/UnrealScriptReference.html)), podes crear tus propias ventanas personalizadas con opciones nuevas o también podes rehacer/rediseñar la interfaz del l2 xD
Yo se que Fissban lo lograra y veremos sus resultados con el tiempo. :v
Título: Re:Editar interface
Publicado por: elcolito en Marzo 30, 2018, 04:13:38 am
Gente les hago una consulta, por que me esta volviendo loco, soy nuevo en esto, cuando decompilo el interface.u, quiero abrir para editar TargetStatusWnd me aparece esto: Null Null defaultproperties y nada mas alguno tiene idea q pasa ??? :11: :11:

Título: Re:Editar interface
Publicado por: Fissban en Marzo 30, 2018, 05:13:40 am
voy a adivinar que estas decompilando una interface q no es tuya o la default no?
Título: Re:Editar interface
Publicado por: elcolito en Marzo 30, 2018, 07:22:08 am
exacto groso, lo que quiero realizar es lo siguiente, tengo una interface que me gusta mucho y solo quiero agregarle el target status, otro mas no me acuerdo bien cual es el otro, la funcion seria que cuando tenes a alguien en target te dice lo que esta casteando y el tiempo de duracion, por ej, el UD no se si me explico bien!,
otra cosilla estoy muy copado con el foro,y no me deja dar las gracias U.U
 luego de poder realizarlo me gustaria compartir el trabajo finalizado con ustedes y ir aprendiendo y puliendo mis conocimientos :D,
Título: Re:Editar interface
Publicado por: Fissban en Marzo 30, 2018, 12:49:22 pm
pues mi consejo es que comiences por editar una interface limpia y de alli avanzar, las customs dejalas para la parte educativa ya que suelen encriptar los datos o bien complicar la estraccion de ellos y te digo esto porque esta parte del cliente son pocos los q realmente saben hacerlo asiq pocos te podran ayudar a hacer lo q quieres :S:S
Título: Re:Editar interface
Publicado por: elcolito en Marzo 30, 2018, 04:09:52 pm
Dale gracias fiss por el tiempo, ahora mi complicacion, por que quiero hacer esto?, es que no se como darle las funciones a cada ventana, se crearlas modificarlas pero no se como dale una funcionhabra algun tuto o algun consejo que me puedas dar ??, osea como le pongo la funcion para el casting status me podras dar una mano pliiissss
Título: Re:Editar interface
Publicado por: elcolito en Abril 01, 2018, 12:29:51 am
HOla fiss sabes que pude hacerlo, pude decompilar, pero ahora el problema que tengo es que cuando le doy a ilcompiler me dice failure, y me borra el interface.u  aaaaaiuuuudaaaa
Título: Re:Editar interface
Publicado por: Fissban en Abril 01, 2018, 02:55:37 am
revisa los logs q alli te dice donde falla....seguramente tengas q repararlo a mano
Título: Re:Editar interface
Publicado por: elcolito en Abril 01, 2018, 03:10:51 am
este es el error pero no tengo ni la mas remota idea de que hacer estoy blokeado

Error: C:\Users\sebas\Desktop\compilador\ILCompiler\ILCompiler\Interface\Classes\UIScriptEx.uc(26) : Error, Function 'Int64ToString' specifiers differ from original
Log: Compile aborted due to errors.
Log: Failure - 1 error(s), 0 warning(s)
Exit: Preparing to exit.

es una interface high five!

gracias!!!
Título: Re:Editar interface
Publicado por: Fissban en Abril 01, 2018, 03:49:57 am
bueno...puedes empezar por compartir tu trabajo asi podemos ir revisandolo...porq si ves el log y no te das cuenta del problema no rendira nada q te explique un poco sin ser visualmente claro xD
Título: Re:Editar interface
Publicado por: maattkz en Abril 11, 2019, 12:18:41 am
Buenas, alguien tiene idea por que me tira este error al intentar compilar?

Error: F:\Cliente_testinterfaces\system\ILCompiler\Interface\Classes\UICommonAPI.uc(187) : Error, Unrecognized type 'ItemID'

Estoy tratando de decompilar/compilar sin hacer modificaciones para aprender a hacerlo, pero aun asi me da ese error.

Gracias de antemano!
Título: Re:Editar interface
Publicado por: Fissban en Abril 11, 2019, 12:57:44 am
publica el archivo en un nuevo post.
Título: Re:Editar interface
Publicado por: maattkz en Abril 11, 2019, 01:25:56 am
Este es el archivo que no me deja compilar
Título: Re:Editar interface
Publicado por: SGER@fjs en Abril 11, 2019, 01:41:19 am
Este es el archivo que no me deja compilar
Si es Hi5 no te sirve el compilador
Título: Re:Editar interface
Publicado por: maattkz en Abril 11, 2019, 01:57:58 am
Tenes idea donde puedo buscar o descargar alguno? Gracias!
Título: Re:Editar interface
Publicado por: SGER@fjs en Abril 11, 2019, 02:00:25 am
podes probar con este https://l2-info.ru/klient/patchi/72-kompiljator-interfaceu-dlja-high-five.html

https://mega.nz/#!6RsHRLKb!ixrB727rpTTot6UgbPx-C4ZjNyfjZPpRVvANKdZsPog
Título: Re:Editar interface
Publicado por: maattkz en Abril 11, 2019, 04:14:50 pm
En un rato lo pruebo y te cuento que tal :D gracias!
Título: Re:Editar interface
Publicado por: maattkz en Abril 11, 2019, 07:06:41 pm
podes probar con este https://l2-info.ru/klient/patchi/72-kompiljator-interfaceu-dlja-high-five.html

https://mega.nz/#!6RsHRLKb!ixrB727rpTTot6UgbPx-C4ZjNyfjZPpRVvANKdZsPog

Funciono perfecto, mil gracias!