package characterCreateMenu.contents
{
import characterCreateMenu.data.CharacterData;
import characterCreateMenu.event.CreateMenuEvModel;
import fl.transitions.easing.Strong;
import flash.display.Sprite;
import flash.events.Event;
import flash.text.TextField;
import ncsoft.l2.core.L2UIComponent;
import ncsoft.l2.events.L2UIEvent;
import ncsoft.l2.events.L2UIToolTipEvent;
import ncsoft.l2.native.L2UISystem;
import scaleform.clik.controls.RadioButton;
import scaleform.clik.motion.Tween;
import scaleform.gfx.InteractiveObjectEx;
public class CreateMenuTopCenter extends L2UIComponent
{
internal static var _instance:CreateMenuTopCenter;
public var race_0:RadioButton;
public var race_1:RadioButton;
public var race_2:RadioButton;
public var race_3:RadioButton;
public var race_4:RadioButton;
public var race_5:RadioButton;
public var race_6:RadioButton;
public var race_7:RadioButton;
public var race_8:RadioButton;
public var msgBox:Sprite;
internal var txtBox:TextField;
public var tween:Tween;
public function CreateMenuTopCenter()
{
super();
_instance = this;
this.tween = new Tween(2000,this.msgBox);
this.tween.paused = true;
this.msgBox.alpha = 0;
}
public static function get Instance() : CreateMenuTopCenter
{
return _instance;
}
override protected function configUI() : void
{
var _loc2_:RadioButton = null;
super.configUI();
var _loc1_:int = 0;
while(_loc1_ < CharacterData.MAX_RACE)
{
_loc2_ = getChildByName("race_" + _loc1_) as RadioButton;
dispatchEvent(new L2UIToolTipEvent(L2UIToolTipEvent.REGISTER_ELEMENT,_loc2_));
_loc1_++;
}
this.race_0.group.addEventListener(Event.CHANGE,this.HandleChange);
this.addEvent();
this.txtBox = this.msgBox.getChildByName("systemMsg") as TextField;
this.SetTooltips();
InteractiveObjectEx.setHitTestDisable(this.msgBox,true);
InteractiveObjectEx.setHitTestDisable(this.txtBox,true);
}
protected function addEvent() : void
{
CreateMenuEvModel.evData.addEventListener("STEP_CHANGED_1",this.handleSetStep1);
CreateMenuEvModel.evData.addEventListener("EV_OnShow",this.handleOnShow);
}
private function handleSetStep1(param1:L2UIEvent) : void
{
var _loc2_:Number = Number(param1._parameter.obj.race);
(getChildByName("race_" + this.GetRaceIndexByRacdID(_loc2_)) as RadioButton).selected = true;
}
private function GetRaceIndexByRacdID(param1:Number) : int
{
switch(param1)
{
case 30:
return 7;
case 31:
return 8;
default:
return param1;
}
}
public function handleOnShow(param1:L2UIEvent) : void
{
this.tween.paused = true;
this.msgBox.alpha = 0;
this.checkform();
}
private function checkform() : void
{
var _loc4_:RadioButton = null;
var _loc5_:int = 0;
var _loc8_:RadioButton = null;
var _loc1_:int = 90;
var _loc2_:Boolean = L2UISystem.isClassicServer();
var _loc3_:Array = new Array();
this.race_6.visible = !_loc2_;
this.race_7.visible = L2UISystem.isAdenServer();
this.race_8.visible = L2UISystem.isAdenServer();
if(L2UISystem.isAdenServer())
{
_loc3_.push(8);
}
_loc3_.push(0);
_loc3_.push(1);
_loc3_.push(2);
_loc3_.push(3);
_loc3_.push(4);
if(_loc2_)
{
if(L2UISystem.isAdenServer())
{
_loc3_.push(7);
}
_loc3_.push(5);
}
else if(!_loc2_)
{
_loc3_.push(5);
_loc3_.push(6);
}
var _loc6_:int = _loc3_.length * _loc1_;
var _loc7_:int = _loc6_ / 2 - _loc1_;
_loc4_ = getChildByName("race_" + _loc3_.pop()) as RadioButton;
_loc4_.x = _loc7_;
while(_loc3_.length > 0)
{
_loc8_ = getChildByName("race_" + _loc3_.pop()) as RadioButton;
_loc8_.visible = true;
_loc8_.x = _loc4_.x - _loc1_;
_loc4_ = _loc8_;
}
}
internal function SetTooltips() : void
{
var _loc2_:String = null;
var _loc3_:RadioButton = null;
var _loc1_:Number = 0;
while(_loc1_ < CharacterData.MAX_RACE)
{
_loc2_ = L2UISystem.getSystemString(CharacterData.raceNameStr[_loc1_]);
_loc3_ = getChildByName("race_" + _loc1_) as RadioButton;
_loc3_.label = _loc2_;
_loc1_++;
}
}
internal function HandleChange(param1:Event) : void
{
CreateMenuCenterRight.Instance.handleChange(param1);
}
public function ShowMsg(param1:String) : void
{
this.tween.paused = true;
this.tween.duration = 1000;
this.tween.delay = 0;
this.msgBox.alpha = 0;
this.tween.quickSet({"props":{"alpha":1}});
this.tween.ease = Strong.easeOut;
this.txtBox.htmlText = param1;
this.tween.onComplete = this.MsgBoxStartCompleted;
this.tween.paused = false;
}
public function HideMsg() : void
{
this.tween.paused = true;
this.tween.duration = 2000;
this.tween.delay = 3000;
this.tween.quickSet({"props":{"alpha":0}});
this.tween.ease = Strong.easeIn;
this.tween.onComplete = null;
this.tween.paused = false;
}
internal function MsgBoxStartCompleted() : void
{
this.HideMsg();
}
}
}
А зачем вопрос то под такой хайд прятать?)В общем получилось отключить на мейне все лишниее, типо дк, ассассинов, гномку новую, но как выпилить еще и Артею не въеду.
Если пытаюсь хотя бы одну цифру изменить в скрипте, то ловлю сразу крит.
Хелпаните, в какую сторону копать, можно под хайд или в лс.
*** Скрытый текст не может быть процитирован. ****** Скрытый текст не может быть процитирован. ***
Всмысле, сам вопрос не под хайдом, под хайдом хентай с драконамиА зачем вопрос то под такой хайд прятать?)
Скинь в лс текст крита - глянуВсмысле, сам вопрос не под хайдом, под хайдом хентай с драконами
Да это понятно. Не буду же я его сюда кусками кидать. Мне интересно как или где можно изменить код, чтобы он не сломался и криты не выбивал.кто то мне говорил что редактировать можно только правый блок (p-code) во избежание критов
Ну я это и пытаюсь сделать. Получаю крит при любом изменении файла.Может через as код можно кнопку скрыть не удаляя и не изменяя количество?
Еще бы понимать как там в этом хексе че менятьМожет через hex поменять тогда, наверное при сохранении там лишнее и клиент не видит флешку
Ну и дальше что?) У меня в сорках давно всех этих рас нет)Возможно глупость скажу, а если через конфиг ? Но пойти более простым путем.
Allowed Player Races
# ---------------------------------------------------------------------------
# Allowing specific races to be created.
# Default: True
AllowHuman = True
AllowElf = True
AllowDarkElf = True
AllowOrc = True
AllowDwarf = True
AllowKamael = True
AllowErtheia = True
Ну, попробовал через hex, все равно ловлю крит.Нужно сравнить первые несколько байт до изменений через hex в самом начале файла и после, возможно по этому и критует.
Надо перенести первые несколько байт после изменений в новой флешке.
*** Скрытый текст не может быть процитирован. ***
Error:
Protocol: S_NEW_CHARACTER_SUCCESS(807, 3) <= C_NOT_USE_14(3, 4) <= S_EX_BR_VERSION(6, 259) <= S_CHARACTER_SELECTION_INFO(19, 259) <= S_LOGIN_RESULT(11, 259) <= C_ALLIANCE_INFO(5, 260) <= C_ALLIANCE_INFO(45, 260) <= S_VERSION_CHECK(28, 261) <= C_LOGOUT(275, 262)
History: Advance <- GFxFlashObj::AdvanceAndRender <+ Flash Name: ContainerHUD Tick Count: 260 <- GFxUIManager::RenderFlash <- GFxFlashWnd::OnPaint <- NCVirtualWndMain::DrawChildWindow <- NCVirtualWndMain::DrawChildWindow <- WM_PAINT <- NCVirtualWndMain::DispatchWndMsg <- NConsoleWnd::ConsolePostRender <- UGameEngine::PostDraw <- ConsolePostRender <- Draw <- UGameEngine::Draw <+ GRenDev:fd6f0000 RI:fd6f47b4 <- UWindowsViewport::Repaint <- UWindowsClient::Tick <- ClientTick <- UGameEngine::Tick <- UpdateWorld <- CMainLoop::UpdateTheWorld <- MainLoop
Exception:
Code [EXCEPTION_READ_VIOLATION DataAddress:0x00000015]
Address [0x6E79EA28]
SegCs [0x0023]
NWindow.DLL [0x6E450000] Offset [0x0034EA28]
Тогда дело не в утилитах, может под кодировкой нужно через mxencdec основной контейнер ugx?Ну, попробовал через hex, все равно ловлю крит.
Код:Error: Protocol: S_NEW_CHARACTER_SUCCESS(807, 3) <= C_NOT_USE_14(3, 4) <= S_EX_BR_VERSION(6, 259) <= S_CHARACTER_SELECTION_INFO(19, 259) <= S_LOGIN_RESULT(11, 259) <= C_ALLIANCE_INFO(5, 260) <= C_ALLIANCE_INFO(45, 260) <= S_VERSION_CHECK(28, 261) <= C_LOGOUT(275, 262) History: Advance <- GFxFlashObj::AdvanceAndRender <+ Flash Name: ContainerHUD Tick Count: 260 <- GFxUIManager::RenderFlash <- GFxFlashWnd::OnPaint <- NCVirtualWndMain::DrawChildWindow <- NCVirtualWndMain::DrawChildWindow <- WM_PAINT <- NCVirtualWndMain::DispatchWndMsg <- NConsoleWnd::ConsolePostRender <- UGameEngine::PostDraw <- ConsolePostRender <- Draw <- UGameEngine::Draw <+ GRenDev:fd6f0000 RI:fd6f47b4 <- UWindowsViewport::Repaint <- UWindowsClient::Tick <- ClientTick <- UGameEngine::Tick <- UpdateWorld <- CMainLoop::UpdateTheWorld <- MainLoop Exception: Code [EXCEPTION_READ_VIOLATION DataAddress:0x00000015] Address [0x6E79EA28] SegCs [0x0023] NWindow.DLL [0x6E450000] Offset [0x0034EA28]
Посмотреть вложение 85252Посмотреть вложение 85253
Просто менял 38 на 36
это делается в первую очередь, все остальное же я без проблем отключил)Тогда дело не в утилитах, может под кодировкой нужно через mxencdec основной контейнер ugx?
Может есть еще проверка в самом nwindow?это делается в первую очередь, все остальное же я без проблем отключил)
Да ну вряд ли. Ребята же убирали лишние расы в 140-166 протах, в 362 проте, и редактировали они просто флешку.Может есть еще проверка в самом nwindow?
Странно тогда почему крит, тем-более через hex только менялось.Да ну вряд ли. Ребята же убирали лишние расы в 140-166 протах, в 362 проте, и редактировали они просто флешку.
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?