Рейтинг темы:
  • 0 Голос(ов) - 0 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
GoD UI / scripts
#1
Собственно, 4 вопроса
1) Где лежит мини-лого в GoD awakening (та, что рядом с кнопками) ? В l2font-e заменил, в localization вообще ноль реакции на ссылку.
2) Что случилось со скриптами ? Раньше декод-хекс-енкод работал, сейчас - нет. FC говорит, что различия всего в паре строк файла (дефолтного и перепакованного), что это за фигня ?
3) Кто-нибудь занимался де-сериализацией interface.xdat ?
4) Ищу инфу по формату ugx (любую) - спецификацию от унреала (если это не л2 отсебятина) / экспортер (вдруг есть) и т д

Ну и напоследок, если кто копался в ///uidebug ///ui - поделитесь инфой о результатах )
Ответ
#2
oSg Написал:Собственно, 4 вопроса
1) Где лежит мини-лого в GoD awakening (та, что рядом с кнопками) ? В l2font-e заменил, в localization вообще ноль реакции на ссылку.
2) Что случилось со скриптами ? Раньше декод-хекс-енкод работал, сейчас - нет. FC говорит, что различия всего в паре строк файла (дефолтного и перепакованного), что это за фигня ?
3) Кто-нибудь занимался де-сериализацией interface.xdat ?
4) Ищу инфу по формату ugx (любую) - спецификацию от унреала (если это не л2 отсебятина) / экспортер (вдруг есть) и т д

Ну и напоследок, если кто копался в ///uidebug ///ui - поделитесь инфой о результатах )

от скриптов мало толку теперь. Их переписали на ActionScript
Наверно для многих открою тайну )

Пример:
[
PHP код:
<?php 
//package data
// class L2UIAnchorPointType
package ncsoft.l2.data
{
public class
L2UIAnchorPointType extends Object
{
public function
L2UIAnchorPointType()
{
super();
return;
}

public static const
ANCHORPOINT_None:int=0;

public static const
ANCHORPOINT_TopLeft:int=1;

public static const
ANCHORPOINT_TopCenter:int=2;

public static const
ANCHORPOINT_TopRight:int=3;

public static const
ANCHORPOINT_CenterLeft:int=4;

public static const
ANCHORPOINT_CenterCenter:int=5;

public static const
ANCHORPOINT_CenterRight:int=6;

public static const
ANCHORPOINT_BottomLeft:int=7;

public static const
ANCHORPOINT_BottomCenter:int=8;

public static const
ANCHORPOINT_BottomRight:int=9;
}
}


// class L2UIModel
package ncsoft.l2.data
{
import flash.external.*;
import ncsoft.l2.core.*;
import ncsoft.l2.events.*;
import ncsoft.l2.interfaces.*;

public class
L2UIModel extends ncsoft.l2.core.L2UIBase implements ncsoft.l2.interfaces.IL2UIBase
{
public function
L2UIModel()
{
super();
return;
}

public
override function addEvent():void
{
ncsoft.l2.events.L2UIEventString.CALLBACK_WINDOW_CLOSE = "onReceivedCloseUI";
ncsoft.l2.events.L2UIEventString.CALLBACK_RESOLUTION = "setCurrentResolution";
flash.external.ExternalInterface.addCallback(ncsoft.l2.events.L2UIEventString.CALLBACK_EVENT, this.callbackEvent);
flash.external.ExternalInterface.addCallback(ncsoft.l2.events.L2UIEventString.CALLBACK_MOVE, this.callbackMove);
flash.external.ExternalInterface.addCallback(ncsoft.l2.events.L2UIEventString.CALLBACK_FOCUS, this.callbackFocus);
flash.external.ExternalInterface.addCallback(ncsoft.l2.events.L2UIEventString.CALLBACK_DATA, this.callbackData);
flash.external.ExternalInterface.addCallback(ncsoft.l2.events.L2UIEventString.CALLBACK_WINDOW_CLOSE, this.callbackWindowClose);
flash.external.ExternalInterface.addCallback(ncsoft.l2.events.L2UIEventString.CALLBACK_RESOLUTION, this.callbackResolution);
getDispacher().addEventListener(ncsoft.l2.events.L2UIEventString.CALL, this.call, false, 0, true);
return;
}

public
override function removeEvent():void
{
getDispacher().removeEventListener(ncsoft.l2.events.L2UIEventString.CALL, this.call);
return;
}

public function
callbackEvent(arg1:uint, arg2:Object=null):void
{
getDispacher().dispatchEvent(new ncsoft.l2.events.L2UIEvent(ncsoft.l2.events.L2UIEventString.CALLBACK_EVENT, {"type":arg1, "data":arg2}));
return;
}

public function
callbackMove(arg1:Number, arg2:Number):void
{
getDispacher().dispatchEvent(new ncsoft.l2.events.L2UIEvent(ncsoft.l2.events.L2UIEventString.CALLBACK_MOVE, {"x":arg1, "y":arg2}));
return;
}

public function
callbackFocus(arg1:Boolean, arg2:Boolean):void
{
getDispacher().dispatchEvent(new ncsoft.l2.events.L2UIEvent(ncsoft.l2.events.L2UIEventString.CALLBACK_FOCUS, {"focus":arg1, "transparency":arg2}));
return;
}

public function
callbackData(arg1:Object=null):void
{
getDispacher().dispatchEvent(new ncsoft.l2.events.L2UIEvent(ncsoft.l2.events.L2UIEventString.CALLBACK_DATA, arg1));
return;
}

public function
callbackWindowClose():void
{
getDispacher().dispatchEvent(new ncsoft.l2.events.L2UIEvent(ncsoft.l2.events.L2UIEventString.CALLBACK_WINDOW_CLOSE));
return;
}

public function
callbackResolution(arg1:Number, arg2:Number):void
{
getDispacher().dispatchEvent(new ncsoft.l2.events.L2UIEvent(ncsoft.l2.events.L2UIEventString.CALLBACK_RESOLUTION, {"screenWidth":arg1, "screenHeight":arg2}));
return;
}

public function
call(arg1:ncsoft.l2.events.L2UIEvent):void
{
flash.external.ExternalInterface.call(arg1._parameter.methodName, arg1._parameter.data);
return;
}

public function
destroy():void
{
this.removeEvent();
return;
}
}
}


// class L2UISound
package ncsoft.l2.data
{
public class
L2UISound extends Object
{
public function
L2UISound()
{
super();
return;
}

public static const
IFST_WINDOW_CLOSE:String="ItemSound.window_close";

public static const
IFST_WINDOW_OPEN:String="ItemSound.window_open";

public static const
CLICK_FAILED:String="ItemSound.click_failed";

public static const
CLICK_01:String="InterfaceSound.click_01";

public static const
CHAT_KEYWORD_ALERT:String="ItemSound3.Sys_Chat_Keyword";
}
}


// class L2UIToolTipData
package ncsoft.l2.data
{
public class
L2UIToolTipData extends Object
{
public function
L2UIToolTipData()
{
super();
if (
_instance)
{
throw new
Error("싱글톤이라 인스턴스를 생성 할 수 없습니다.");
}
return;
}

public function
getXMLToolTipString(arg1:String, arg2:String, arg3:int=0, arg4:int=0, arg5:int=4, arg6:int=4, arg7:int=4, arg8:int=4, arg9:int=1, arg10:Boolean=true, arg11:Boolean=true):String
{
var
loc1:*=null;
if (
arg1 == "SimpleType")
{
loc1 = (loc1 = (loc1 = (loc1 = (loc1 = (loc1 = (loc1 = (loc1 = (loc1 = (loc1 = (loc1 = (loc1 = (loc1 = (loc1 = (loc1 = (loc1 = (loc1 = (loc1 = (loc1 = (loc1 = (loc1 = (loc1 = "") + ("Message=" + arg2)) + "|") + ("type=" + arg1)) + "|") + ("offSetX=" + arg3)) + "|") + ("offSetY=" + arg4)) + "|") + ("paddingTop=" + arg5)) + "|") + ("paddingBottom=" + arg6)) + "|") + ("paddingLeft=" + arg7)) + "|") + ("paddingRight=" + arg8)) + "|") + ("anchorPoint=" + arg9)) + "|") + ("bFixdPosition=" + arg10)) + "|") + ("bOnOff=" + arg11);
}
return
loc1;
}

public static function
getInstance():ncsoft.l2.data.L2UIToolTipData
{
return
_instance;
}


{
_instance = new L2UIToolTipData();
}

public static const
SIMPLE_TYPE:String="SimpleType";

public var
type0:String="";

internal static var _instance:ncsoft.l2.data.L2UIToolTipData;
}
}


// class L2Window
package ncsoft.l2.data
{
public class
L2Window extends Object
{
public function
L2Window(arg1:String, arg2:String="", arg3:int=0, ... rest)
{
super();
this.flashID = arg1;
this.windowType = arg2;
this.titleStringNum = arg3;
this.registedState = rest;
return;
}

public var
flashID:String;

public var
windowType:String;

public var
titleStringNum:int;

public var
registedState:Array;
}
}
Человек просто обязан ошибаться, раз другие учатся на его ошибках .......
Ответ
#3
забавно, знать бы где еще их искать )
Ответ
#4
4)ugx - обычный unreal package.
Внутри находятся файлы класса GFxFlash.
Их формат:
  1. пустой блок Properties //скорее всего
  2. тип файла(gfx или tga)
  3. размер файла
  4. файл в бинарном виде

gfx по сути тот же swf, его легко можно декомпилировать.
Можно посмотреть, импортировав в UDK.
Пример BeautyShop:
[Изображение: 84biE.th.png]

Кому интересно, вот содержимое ugx файлов(gfx->swf, tga->png):
ui_kor_pts.zip (40.1 MB)
Ответ
#5
корейцы решили упростить фришардам редактирование UI?:redlol:
Ответ
#6
acmi, Привет, если не сложно можешь рассказать как распаковать из ugx файлы в формате tga, у меня получаются только GFxFlash и ничем не получатся их открыть.
Ответ
#7
Используйте l2tool от acmi последней версии. Он позволяет экспортировать и заменять(?) tga файлы.
Ответ
#8
enzo Написал:acmi, Привет, если не сложно можешь рассказать как распаковать из ugx файлы в формате tga, у меня получаются только GFxFlash и ничем не получатся их открыть.

acmi Написал:Их формат:
  1. пустой блок Properties
  2. тип файла(gfx или tga)
  3. размер файла
  4. файл в бинарном виде
[Изображение: nMuVj.png]

Удаляйте то, что стоит до 4 пункта, и меняйте расширение на tga.
Ответ
#9
Спасибо большое за помощь и оперативность. Понял как вручную получить tga, но с l2tool acmi удобней. Отдельное спасибо за программу Wink
Ответ


Возможно похожие темы ...
Тема Автор Ответы Просмотры Последний пост
  L2-scripts H5 Shifu 4 2,623 12-26-2017, 04:00 PM
Последний пост: MetallAngel
  Шара от L2-scripts L2-Scripts 72 27,109 04-24-2014, 09:55 PM
Последний пост: WoWan-SM
  папка scripts Феникс TosyBosy 3 1,734 09-01-2013, 10:04 PM
Последний пост: DiagoD
  Проблема с запуском шары L2-Scripts BlackDiamonD 7 2,613 10-05-2012, 04:58 PM
Последний пост: dorocki
  проблемы с сервером l2 scripts IDarkGuard 4 1,477 07-31-2012, 05:45 AM
Последний пост: Silvern
  l2-scripts vs Shark Moloko 51 15,824 11-11-2011, 02:13 PM
Последний пост: Ozzy
  [шара] Сборка сервера Lineage 2 Gracia Epilogue (1-867) от L2-Scripts.ru PROGRAMMATOR 11 8,811 05-18-2011, 12:54 PM
Последний пост: Amorph1s
  L2-scripts Gracia Epilogue Dance4Life 10 6,232 02-20-2011, 06:29 PM
Последний пост: Ozzy
  Ищу папку Scripts от Rebellion 8471 или позднее Lexx_a 14 4,785 08-01-2008, 02:35 PM
Последний пост: Gawric

Перейти к форуму:


Пользователи, просматривающие эту тему: 1 Гость(ей)