Рейтинг темы:
  • 0 Голос(ов) - 0 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
Статы я всякая другая хрень
#1
Честно искал по форуму ничего не нашел, ищу инфу о статах и всякой хрени

[Изображение: shot00010tu7.png]
Имею ввиду, окно на рисунке ниже
[Изображение: 22ba463110b77be8946ed3667ed887df.png]

Как оно работает и т.д. возможно ли добавление собственных стат, ну и много чего другого интересно
1
Ответ
#2
Предполагаю, что это можно через интерфейс и хекс редактор интерфейса. Тут где-то была уже тема о том, как что редактировать.
[Изображение: 1852855861.png]
Ответ
#3
Если найдете способ запаковать u.* пакеты ничего сложногоSmile
Код:
//================================================== ==============================
// DetailStatusWnd.
//================================================== ==============================

class DetailStatusWnd extends UICommonAPI;

var string m_WindowName;
var int m_UserID;
var HennaInfo m_HennaInfo;
var TextBoxHandle txtSP;
var TextBoxHandle txtName1;
var TextBoxHandle txtName2;
var TextBoxHandle txtHeadPledge;
var TextBoxHandle txtPledge;
var TextBoxHandle txtLvHead;
var TextBoxHandle txtLvName;
var TextBoxHandle txtHeadRank;
var TextBoxHandle txtRank;
var StatusBarHandle texHP;
var StatusBarHandle texMP;
var StatusBarHandle texExp;
var StatusBarHandle texCP;
var TextBoxHandle txtPhysicalAttack;
var TextBoxHandle txtPhysicalDefense;
var TextBoxHandle txtHitRate;
var TextBoxHandle txtCriticalRate;
var TextBoxHandle txtPhysicalAttackSpeed;
var TextBoxHandle txtMagicalAttack;
var TextBoxHandle txtMagicDefense;
var TextBoxHandle txtPhysicalAvoid;
var TextBoxHandle txtGmMoving;
var TextBoxHandle txtHeadMovingSpeed;
var TextBoxHandle txtMovingSpeed;
var TextBoxHandle txtHeadMagicCastingSpeed;
var TextBoxHandle txtMagicCastingSpeed;
var TextBoxHandle txtSTR;
var TextBoxHandle txtDEX;
var TextBoxHandle txtCON;
var TextBoxHandle txtINT;
var TextBoxHandle txtWIT;
var TextBoxHandle txtMEN;
var TextBoxHandle txtCriminalRate;
var TextBoxHandle txtPVP;
var TextBoxHandle txtSociality;
var TextBoxHandle txtRemainSulffrage;
var TextureHandle texHero;
var TextureHandle texPledgeCrest;
var TextureHandle VitalityTex;
var TextBoxHandle txtAttrAttackType;
var TextBoxHandle txtAttrAttackValue;
var TextBoxHandle txtAttrDefenseValFire;
var TextBoxHandle txtAttrDefenseValWater;
var TextBoxHandle txtAttrDefenseValWind;
var TextBoxHandle txtAttrDefenseValEarth;
var TextBoxHandle txtAttrDefenseValHoly;
var TextBoxHandle txtAttrDefenseValUnholy;
const NSTATUS_BARHEIGHT= 12;
const NSTATUS_SMALLBARSIZE= 85;

function OnRegisterEvent ()
{
RegisterEvent(180);
RegisterEvent(260);
RegisterEvent(190);
RegisterEvent(200);
RegisterEvent(210);
RegisterEvent(220);
RegisterEvent(230);
RegisterEvent(240);
RegisterEvent(3400);
RegisterEvent(4100);
}

function OnLoad ()
{
if ( 1 == 0 )
{
OnRegisterEvent();
}
if ( 1 == 0 )
{
Initialize();
} else {
InitializeCOD();
}
}

function Initialize ()
{
txtSP = TextBoxHandle(GetHandle(m_WindowName $ ".txtSP"));
txtName1 = TextBoxHandle(GetHandle(m_WindowName $ ".txtName1"));
txtName2 = TextBoxHandle(GetHandle(m_WindowName $ ".txtName2"));
txtHeadPledge = TextBoxHandle(GetHandle(m_WindowName $ ".txtHeadPledge"));
txtPledge = TextBoxHandle(GetHandle(m_WindowName $ ".txtPledge"));
txtLvHead = TextBoxHandle(GetHandle(m_WindowName $ ".txtLvHead"));
txtLvName = TextBoxHandle(GetHandle(m_WindowName $ ".txtLvName"));
txtHeadRank = TextBoxHandle(GetHandle(m_WindowName $ ".txtHeadRank"));
txtRank = TextBoxHandle(GetHandle(m_WindowName $ ".txtRank"));
texHP = StatusBarHandle(GetHandle(m_WindowName $ ".texHP"));
texMP = StatusBarHandle(GetHandle(m_WindowName $ ".texMP"));
texExp = StatusBarHandle(GetHandle(m_WindowName $ ".texExp"));
texCP = StatusBarHandle(GetHandle(m_WindowName $ ".texCP"));
txtPhysicalAttack = TextBoxHandle(GetHandle(m_WindowName $ ".txtPhysicalAttack"));
txtPhysicalDefense = TextBoxHandle(GetHandle(m_WindowName $ ".txtPhysicalDefense"));
txtHitRate = TextBoxHandle(GetHandle(m_WindowName $ ".txtHitRate"));
txtCriticalRate = TextBoxHandle(GetHandle(m_WindowName $ ".txtCriticalRate"));
txtPhysicalAttackSpeed = TextBoxHandle(GetHandle(m_WindowName $ ".txtPhysicalAttackSpeed"));
txtMagicalAttack = TextBoxHandle(GetHandle(m_WindowName $ ".txtMagicalAttack"));
txtMagicDefense = TextBoxHandle(GetHandle(m_WindowName $ ".txtMagicDefense"));
txtPhysicalAvoid = TextBoxHandle(GetHandle(m_WindowName $ ".txtPhysicalAvoid"));
txtGmMoving = TextBoxHandle(GetHandle(m_WindowName $ ".txtGmMoving"));
txtMovingSpeed = TextBoxHandle(GetHandle(m_WindowName $ ".txtMovingSpeed"));
txtMagicCastingSpeed = TextBoxHandle(GetHandle(m_WindowName $ ".txtMagicCastingSpeed"));
txtHeadMovingSpeed = TextBoxHandle(GetHandle(m_WindowName $ ".txtHeadMovingSpeed"));
txtHeadMagicCastingSpeed = TextBoxHandle(GetHandle(m_WindowName $ ".txtHeadMagicCastingSpeed"));
txtSTR = TextBoxHandle(GetHandle(m_WindowName $ ".txtSTR"));
txtDEX = TextBoxHandle(GetHandle(m_WindowName $ ".txtDEX"));
txtCON = TextBoxHandle(GetHandle(m_WindowName $ ".txtCON"));
txtINT = TextBoxHandle(GetHandle(m_WindowName $ ".txtINT"));
txtWIT = TextBoxHandle(GetHandle(m_WindowName $ ".txtWIT"));
txtMEN = TextBoxHandle(GetHandle(m_WindowName $ ".txtMEN"));
txtCriminalRate = TextBoxHandle(GetHandle(m_WindowName $ ".txtCriminalRate"));
txtPVP = TextBoxHandle(GetHandle(m_WindowName $ ".txtPVP"));
txtSociality = TextBoxHandle(GetHandle(m_WindowName $ ".txtSociality"));
txtRemainSulffrage = TextBoxHandle(GetHandle(m_WindowName $ ".txtRemainSulffrage"));
texHero = TextureHandle(GetHandle(m_WindowName $ ".texHero"));
texPledgeCrest = TextureHandle(GetHandle(m_WindowName $ ".texPledgeCrest"));
txtAttrAttackType = TextBoxHandle(GetHandle(m_WindowName $ ".txtAttrAttackType"));
txtAttrAttackValue = TextBoxHandle(GetHandle(m_WindowName $ ".txtAttrAttackValue"));
txtAttrDefenseValFire = TextBoxHandle(GetHandle(m_WindowName $ ".txtAttrDefenseValFire"));
txtAttrDefenseValWater = TextBoxHandle(GetHandle(m_WindowName $ ".txtAttrDefenseValWater"));
txtAttrDefenseValWind = TextBoxHandle(GetHandle(m_WindowName $ ".txtAttrDefenseValWind"));
txtAttrDefenseValEarth = TextBoxHandle(GetHandle(m_WindowName $ ".txtAttrDefenseValEarth"));
txtAttrDefenseValHoly = TextBoxHandle(GetHandle(m_WindowName $ ".txtAttrDefenseValHoly"));
txtAttrDefenseValUnholy = TextBoxHandle(GetHandle(m_WindowName $ ".txtAttrDefenseValUnholy"));
VitalityTex = TextureHandle(GetHandle(m_WindowName $ ".LifeForceTex"));
}

function InitializeCOD ()
{
txtSP = GetTextBoxHandle(m_WindowName $ ".txtSP");
txtName1 = GetTextBoxHandle(m_WindowName $ ".txtName1");
txtName2 = GetTextBoxHandle(m_WindowName $ ".txtName2");
txtHeadPledge = GetTextBoxHandle(m_WindowName $ ".txtHeadPledge");
txtPledge = GetTextBoxHandle(m_WindowName $ ".txtPledge");
txtLvHead = GetTextBoxHandle(m_WindowName $ ".txtLvHead");
txtLvName = GetTextBoxHandle(m_WindowName $ ".txtLvName");
txtHeadRank = GetTextBoxHandle(m_WindowName $ ".txtHeadRank");
txtRank = GetTextBoxHandle(m_WindowName $ ".txtRank");
texHP = GetStatusBarHandle(m_WindowName $ ".texHP");
texMP = GetStatusBarHandle(m_WindowName $ ".texMP");
texExp = GetStatusBarHandle(m_WindowName $ ".texExp");
texCP = GetStatusBarHandle(m_WindowName $ ".texCP");
txtPhysicalAttack = GetTextBoxHandle(m_WindowName $ ".txtPhysicalAttack");
txtPhysicalDefense = GetTextBoxHandle(m_WindowName $ ".txtPhysicalDefense");
txtHitRate = GetTextBoxHandle(m_WindowName $ ".txtHitRate");
txtCriticalRate = GetTextBoxHandle(m_WindowName $ ".txtCriticalRate");
txtPhysicalAttackSpeed = GetTextBoxHandle(m_WindowName $ ".txtPhysicalAttackSpeed");
txtMagicalAttack = GetTextBoxHandle(m_WindowName $ ".txtMagicalAttack");
txtMagicDefense = GetTextBoxHandle(m_WindowName $ ".txtMagicDefense");
txtPhysicalAvoid = GetTextBoxHandle(m_WindowName $ ".txtPhysicalAvoid");
txtGmMoving = GetTextBoxHandle(m_WindowName $ ".txtGmMoving");
txtMovingSpeed = GetTextBoxHandle(m_WindowName $ ".txtMovingSpeed");
txtMagicCastingSpeed = GetTextBoxHandle(m_WindowName $ ".txtMagicCastingSpeed");
txtHeadMovingSpeed = GetTextBoxHandle(m_WindowName $ ".txtHeadMovingSpeed");
txtHeadMagicCastingSpeed = GetTextBoxHandle(m_WindowName $ ".txtHeadMagicCastingSpeed");
txtSTR = GetTextBoxHandle(m_WindowName $ ".txtSTR");
txtDEX = GetTextBoxHandle(m_WindowName $ ".txtDEX");
txtCON = GetTextBoxHandle(m_WindowName $ ".txtCON");
txtINT = GetTextBoxHandle(m_WindowName $ ".txtINT");
txtWIT = GetTextBoxHandle(m_WindowName $ ".txtWIT");
txtMEN = GetTextBoxHandle(m_WindowName $ ".txtMEN");
txtCriminalRate = GetTextBoxHandle(m_WindowName $ ".txtCriminalRate");
txtPVP = GetTextBoxHandle(m_WindowName $ ".txtPVP");
txtSociality = GetTextBoxHandle(m_WindowName $ ".txtSociality");
txtRemainSulffrage = GetTextBoxHandle(m_WindowName $ ".txtRemainSulffrage");
texHero = GetTextureHandle(m_WindowName $ ".texHero");
texPledgeCrest = GetTextureHandle(m_WindowName $ ".texPledgeCrest");
txtAttrAttackType = GetTextBoxHandle(m_WindowName $ ".txtAttrAttackType");
txtAttrAttackValue = GetTextBoxHandle(m_WindowName $ ".txtAttrAttackValue");
txtAttrDefenseValFire = GetTextBoxHandle(m_WindowName $ ".txtAttrDefenseValFire");
txtAttrDefenseValWater = GetTextBoxHandle(m_WindowName $ ".txtAttrDefenseValWater");
txtAttrDefenseValWind = GetTextBoxHandle(m_WindowName $ ".txtAttrDefenseValWind");
txtAttrDefenseValEarth = GetTextBoxHandle(m_WindowName $ ".txtAttrDefenseValEarth");
txtAttrDefenseValHoly = GetTextBoxHandle(m_WindowName $ ".txtAttrDefenseValHoly");
txtAttrDefenseValUnholy = GetTextBoxHandle(m_WindowName $ ".txtAttrDefenseValUnholy");
VitalityTex = GetTextureHandle(m_WindowName $ ".LifeForceTex");
}

function OnEnterState (name a_PreStateName)
{
HandleUpdateUserInfo();
}

function OnShow ()
{
HandleUpdateUserInfo();
}

function OnEvent (int Event_ID, string param)
{
if ( Event_ID == 180 )
{
HandleUpdateUserInfo();
} else {
if ( Event_ID == 260 )
{
HandleUpdateHennaInfo(param);
} else {
if ( Event_ID == 190 )
{
HandleUpdateStatusGauge(param,0);
} else {
if ( Event_ID == 200 )
{
HandleUpdateStatusGauge(param,0);
} else {
if ( Event_ID == 210 )
{
HandleUpdateStatusGauge(param,1);
} else {
if ( Event_ID == 220 )
{
HandleUpdateStatusGauge(param,1);
} else {
if ( Event_ID == 230 )
{
HandleUpdateStatusGauge(param,2);
} else {
if ( Event_ID == 240 )
{
HandleUpdateStatusGauge(param,2);
} else {
if ( Event_ID == 3400 )
{
HandleToggle();
} else {
if ( Event_ID == 4100 )
{
HandleVitalityPointInfo(param);
}
}
}
}
}
}
}
}
}
}
}

function HandleToggle ()
{
if ( m_hOwnerWnd.IsShowWindow() )
{
m_hOwnerWnd.HideWindow();
} else {
m_hOwnerWnd.ShowWindow();
m_hOwnerWnd.SetFocus();
}
}

function HandleUpdateStatusGauge (string param, int Type)
{
local int ServerID;

if ( m_hOwnerWnd.IsShowWindow() )
{
ParseInt(param,"ServerID",ServerID);
if ( m_UserID == ServerID )
{
HandleUpdateUserGauge(Type);
}
}
}

function HandleUpdateHennaInfo (string param)
{
ParseInt(param,"HennaID",m_HennaInfo.HennaID);
ParseInt(param,"ClassID",m_HennaInfo.ClassID);
ParseInt(param,"Num",m_HennaInfo.Num);
ParseInt(param,"Fee",m_HennaInfo.Fee);
ParseInt(param,"CanUse",m_HennaInfo.CanUse);
ParseInt(param,"INTnow",m_HennaInfo.INTnow);
ParseInt(param,"INTchange",m_HennaInfo.INTchange);
ParseInt(param,"STRnow",m_HennaInfo.STRnow);
ParseInt(param,"STRchange",m_HennaInfo.STRchange);
ParseInt(param,"CONnow",m_HennaInfo.CONnow);
ParseInt(param,"CONchange",m_HennaInfo.CONchange);
ParseInt(param,"MENnow",m_HennaInfo.MENnow);
ParseInt(param,"MENchange",m_HennaInfo.MENchange);
ParseInt(param,"DEXnow",m_HennaInfo.DEXnow);
ParseInt(param,"DEXchange",m_HennaInfo.DEXchange);
ParseInt(param,"WITnow",m_HennaInfo.WITnow);
ParseInt(param,"WITchange",m_HennaInfo.WITchange);
}

function bool GetMyUserInfo (out UserInfo a_MyUserInfo)
{
return GetPlayerInfo(a_MyUserInfo);
}

function string GetMovingSpeed (UserInfo a_UserInfo)
{
local float MovingSpeed;
local EMoveType MoveType;
local EEnvType EnvType;

MoveType = Class'UIDATA_PLAYER'.GetPlayerMoveType();
EnvType = Class'UIDATA_PLAYER'.GetPlayerEnvironment();
Debug("MovingSpeed : STEP 1" $ string(a_UserInfo.fNonAttackSpeedModifier));
if ( MoveType == 2 )
{
MovingSpeed = a_UserInfo.nGroundMaxSpeed * a_UserInfo.fNonAttackSpeedModifier;
Debug("MovingSpeed : STEP 2" $ string(a_UserInfo.nGroundMaxSpeed));
switch (EnvType)
{
case 2:
MovingSpeed = a_UserInfo.nWaterMaxSpeed * a_UserInfo.fNonAttackSpeedModifier;
Debug("MovingSpeed : STEP 3" $ string(a_UserInfo.nWaterMaxSpeed));
break;
case 3:
MovingSpeed = a_UserInfo.nAirMaxSpeed * a_UserInfo.fNonAttackSpeedModifier;
Debug("MovingSpeed : STEP 4" $ string(a_UserInfo.nAirMaxSpeed) $ " " $ string(a_UserInfo.fNonAttackSpeedModifier));
break;
default:
}
} else {
if ( MoveType == 1 )
{
MovingSpeed = a_UserInfo.nGroundMinSpeed * a_UserInfo.fNonAttackSpeedModifier;
Debug("MovingSpeed : STEP 5");
switch (EnvType)
{
case 2:
MovingSpeed = a_UserInfo.nWaterMinSpeed * a_UserInfo.fNonAttackSpeedModifier;
Debug("MovingSpeed : STEP 6" $ string(a_UserInfo.nWaterMinSpeed));
break;
case 3:
MovingSpeed = a_UserInfo.nAirMinSpeed * a_UserInfo.fNonAttackSpeedModifier;
Debug("MovingSpeed : STEP 7" $ string(a_UserInfo.nAirMinSpeed));
break;
default:
}
}
}
Debug("MovingSpeed : STEP 8 : " $ string(MovingSpeed));
return string(int(MovingSpeed));
}

function float GetMyExpRate ()
{
return Class'UIDATA_PLAYER'.GetPlayerEXPRate() * 100.0;
}

function HandleUpdateUserGauge (int Type)
{
local int CurValue;
local int MaxValue;
local UserInfo Info;

if ( GetMyUserInfo(Info) )
{
m_UserID = Info.nID;
switch (Type)
{
case 0:
CurValue = Info.nCurHP;
MaxValue = Info.nMaxHP;
UpdateHPBar(CurValue,MaxValue);
break;
case 1:
CurValue = Info.nCurMP;
MaxValue = Info.nMaxMP;
UpdateMPBar(CurValue,MaxValue);
break;
case 2:
CurValue = Info.nCurCP;
MaxValue = Info.nMaxCP;
UpdateCPBar(CurValue,MaxValue);
break;
default:
}
}
}

function HandleUpdateUserInfo ()
{
if ( m_hOwnerWnd.IsShowWindow() )
{
UpdateInterface();
}
}

function UpdateInterface ()
{
local Rect rectWnd;
local int Width1;
local int Height1;
local int Width2;
local int Height2;
local string Name;
local string nickname;
local Color NameColor;
local Color NicknameColor;
local int SubClassID;
local string ClassName;
local string UserRank;
local int HP;
local int MaxHP;
local int MP;
local int MaxMP;
local int CP;
local int MaxCP;
local int SP;
local int Level;
local float fExpRate;
local int PledgeID;
local string PledgeName;
local Texture PledgeCrestTexture;
local bool bPledgeCrestTexture;
local Color PledgeNameColor;
local string HeroTexture;
local bool bHero;
local bool bNobless;
local int nStr;
local int nDex;
local int nCon;
local int nInt;
local int nWit;
local int nMen;
local string strTmp;
local int PhysicalAttack;
local int PhysicalDefense;
local int HitRate;
local int CriticalRate;
local int PhysicalAttackSpeed;
local int MagicalAttack;
local int MagicDefense;
local int PhysicalAvoid;
local string MovingSpeed;
local int MagicCastingSpeed;
local int CriminalRate;
local int CrimRate;
local string strCriminalRate;
local int DualCount;
local int PKCount;
local int PvPPoint;
local int Sociality;
local int RemainSulffrage;
local int AttrAttackType;
local int AttrAttackValue;
local int AttrDefenseValFire;
local int AttrDefenseValWater;
local int AttrDefenseValWind;
local int AttrDefenseValEarth;
local int AttrDefenseValHoly;
local int AttrDefenseValUnholy;
local string AttrAttackTypeTxt;
local int nTransformID;
local bool m_bPawnChanged;
local UserInfo Info;
local int Vitality;

texPledgeCrest.SetTexture("");
rectWnd = m_hOwnerWnd.GetRect();
if ( GetMyUserInfo(Info) )
{
m_UserID = Info.nID;
Name = Info.Name;
nickname = Info.strNickName;
SubClassID = Info.nSubClass;
ClassName = GetClassType(SubClassID);
SP = Info.nSP;
Level = Info.nLevel;
UserRank = GetUserRankString(Info.nUserRank);
HP = Info.nCurHP;
MaxHP = Info.nMaxHP;
MP = Info.nCurMP;
MaxMP = Info.nMaxMP;
CP = Info.nCurCP;
MaxCP = Info.nMaxCP;
fExpRate = GetMyExpRate();
PledgeID = Info.nClanID;
bHero = Info.bHero;
bNobless = Info.bNobless;
nStr = Info.nStr;
nDex = Info.nDex;
nCon = Info.nCon;
nInt = Info.nInt;
nWit = Info.nWit;
nMen = Info.nMen;
PhysicalAttack = Info.nPhysicalAttack;
PhysicalDefense = Info.nPhysicalDefense;
HitRate = Info.nHitRate;
CriticalRate = Info.nCriticalRate;
PhysicalAttackSpeed = Info.nPhysicalAttackSpeed;
MagicalAttack = Info.nMagicalAttack;
MagicDefense = Info.nMagicDefense;
PhysicalAvoid = Info.nPhysicalAvoid;
MagicCastingSpeed = Info.nMagicCastingSpeed;
MovingSpeed = GetMovingSpeed(Info);
CriminalRate = Info.nCriminalRate;
DualCount = Info.nDualCount;
PKCount = Info.nPKCount;
PvPPoint = Info.PvPPoint;
Sociality = Info.nSociality;
RemainSulffrage = Info.nRemainSulffrage;
Vitality = Info.nVitality;
if ( CriminalRate >= 999999 )
{
strCriminalRate = string(CriminalRate) $ "+";
} else {
strCriminalRate = string(CriminalRate) $ "";
}
AttrAttackType = Info.AttrAttackType;
AttrAttackValue = Info.AttrAttackValue;
AttrDefenseValFire = Info.AttrDefenseValFire;
AttrDefenseValWater = Info.AttrDefenseValWater;
AttrDefenseValWind = Info.AttrDefenseValWind;
AttrDefenseValEarth = Info.AttrDefenseValEarth;
AttrDefenseValHoly = Info.AttrDefenseValHoly;
AttrDefenseValUnholy = Info.AttrDefenseValUnholy;
nTransformID = Info.nTransformID;
m_bPawnChanged = Info.m_bPawnChanged;
switch (AttrAttackType)
{
case -2:
AttrAttackTypeTxt = GetSystemString(27);
break;
case 0:
AttrAttackTypeTxt = GetSystemString(1630);
break;
case 1:
AttrAttackTypeTxt = GetSystemString(1631);
break;
case 2:
AttrAttackTypeTxt = GetSystemString(1632);
break;
case 3:
AttrAttackTypeTxt = GetSystemString(1633);
break;
case 4:
AttrAttackTypeTxt = GetSystemString(1634);
break;
case 5:
AttrAttackTypeTxt = GetSystemString(1635);
break;
default:
}
UpdateVp(Vitality);
}
CrimRate = CriminalRate;
if ( CrimRate > 255 )
{
CrimRate = 255;
}
if ( CrimRate > 0 )
{
CrimRate = Clamp(CrimRate,100 + CrimRate / 16,255);
}
NameColor.R = 255;
NameColor.G = 255 - CrimRate;
NameColor.B = 255 - CrimRate;
NameColor.A = 255;
NicknameColor.R = 162;
NicknameColor.G = 249;
NicknameColor.B = 236;
NicknameColor.A = 255;
if ( Len(nickname) > 0 )
{
GetTextSizeDefault(Name,Width1,Height1);
GetTextSizeDefault(nickname,Width2,Height2);
if ( Width1 + Width2 > 220 )
{
if ( Width1 > 109 )
{
Name = Left(Name,8);
GetTextSizeDefault(Name,Width1,Height1);
}
if ( Width2 > 109 )
{
nickname = Left(nickname,8);
GetTextSizeDefault(nickname,Width2,Height2);
}
}
txtName1.SetText(nickname);
txtName1.SetTextColor(NicknameColor);
txtName2.SetText(Name);
txtName2.SetTextColor(NameColor);
txtName2.MoveTo(rectWnd.nX + 15 + Width2 + 6,rectWnd.nY + 41);
} else {
txtName1.SetText(Name);
txtName1.SetTextColor(NameColor);
txtName2.SetText("");
}
txtLvName.SetText(string(Level) $ " " $ ClassName);
txtRank.SetText(UserRank);
txtSP.SetText(string(SP));
if ( PledgeID > 0 )
{
bPledgeCrestTexture = Class'UIDATA_CLAN'.GetCrestTexture(PledgeID,Pledge CrestTexture);
PledgeName = Class'UIDATA_CLAN'.GetName(PledgeID);
PledgeNameColor.R = 176;
PledgeNameColor.G = 155;
PledgeNameColor.B = 121;
PledgeNameColor.A = 255;
} else {
PledgeName = GetSystemString(431);
PledgeNameColor.R = 255;
PledgeNameColor.G = 255;
PledgeNameColor.B = 255;
PledgeNameColor.A = 255;
}
txtPledge.SetText(PledgeName);
txtPledge.SetTextColor(PledgeNameColor);
if ( bPledgeCrestTexture )
{
texPledgeCrest.SetTextureWithObject(PledgeCrestTex ture);
txtPledge.MoveTo(rectWnd.nX + 88,rectWnd.nY + 25 + 35);
} else {
txtPledge.MoveTo(rectWnd.nX + 68,rectWnd.nY + 25 + 35);
}
if ( bHero )
{
HeroTexture = "L2UI_CH3.PlayerStatusWnd.myinfo_heroicon";
} else {
if ( bNobless )
{
HeroTexture = "L2UI_CH3.PlayerStatusWnd.myinfo_nobleicon";
}
}
texHero.SetTexture(HeroTexture);
if ( m_HennaInfo.STRchange > 0 )
{
strTmp = string(nStr) $ "(+" $ string(m_HennaInfo.STRchange) $ ")";
} else {
if ( m_HennaInfo.STRchange < 0 )
{
strTmp = string(nStr) $ "(" $ string(m_HennaInfo.STRchange) $ ")";
} else {
strTmp = string(nStr);
}
}
txtSTR.SetText(strTmp);
if ( m_HennaInfo.DEXchange > 0 )
{
strTmp = string(nDex) $ "(+" $ string(m_HennaInfo.DEXchange) $ ")";
} else {
if ( m_HennaInfo.DEXchange < 0 )
{
strTmp = string(nDex) $ "(" $ string(m_HennaInfo.DEXchange) $ ")";
} else {
strTmp = string(nDex);
}
}
txtDEX.SetText(strTmp);
if ( m_HennaInfo.CONchange > 0 )
{
strTmp = string(nCon) $ "(+" $ string(m_HennaInfo.CONchange) $ ")";
} else {
if ( m_HennaInfo.CONchange < 0 )
{
strTmp = string(nCon) $ "(" $ string(m_HennaInfo.CONchange) $ ")";
} else {
strTmp = string(nCon);
}
}
txtCON.SetText(strTmp);
if ( m_HennaInfo.INTchange > 0 )
{
strTmp = string(nInt) $ "(+" $ string(m_HennaInfo.INTchange) $ ")";
} else {
if ( m_HennaInfo.INTchange < 0 )
{
strTmp = string(nInt) $ "(" $ string(m_HennaInfo.INTchange) $ ")";
} else {
strTmp = string(nInt);
}
}
txtINT.SetText(strTmp);
if ( m_HennaInfo.WITchange > 0 )
{
strTmp = string(nWit) $ "(+" $ string(m_HennaInfo.WITchange) $ ")";
} else {
if ( m_HennaInfo.WITchange < 0 )
{
strTmp = string(nWit) $ "(" $ string(m_HennaInfo.WITchange) $ ")";
} else {
strTmp = string(nWit);
}
}
txtWIT.SetText(strTmp);
if ( m_HennaInfo.MENchange > 0 )
{
strTmp = string(nMen) $ "(+" $ string(m_HennaInfo.MENchange) $ ")";
} else {
if ( m_HennaInfo.MENchange < 0 )
{
strTmp = string(nMen) $ "(" $ string(m_HennaInfo.MENchange) $ ")";
} else {
strTmp = string(nMen);
}
}
txtMEN.SetText(strTmp);
txtPhysicalAttack.SetText(string(PhysicalAttack));
txtPhysicalDefense.SetText(string(PhysicalDefense) );
txtHitRate.SetText(string(HitRate));
txtCriticalRate.SetText(string(CriticalRate));
txtPhysicalAttackSpeed.SetText(string(PhysicalAtta ckSpeed));
txtMagicalAttack.SetText(string(MagicalAttack));
txtMagicDefense.SetText(string(MagicDefense));
txtPhysicalAvoid.SetText(string(PhysicalAvoid));
txtMovingSpeed.SetText(MovingSpeed);
txtMagicCastingSpeed.SetText(string(MagicCastingSp eed));
txtCriminalRate.SetText(strCriminalRate);
txtPVP.SetText(string(PvPPoint));
txtSociality.SetText(string(DualCount) $ " / " $ string(PKCount));
txtRemainSulffrage.SetText(string(Sociality) $ " / " $ string(RemainSulffrage));
UpdateHPBar(HP,MaxHP);
UpdateMPBar(MP,MaxMP);
UpdateCPBar(CP,MaxCP);
UpdateEXPBar(Info.fExpPercentRate);
txtAttrAttackType.SetText("" $ AttrAttackTypeTxt);
txtAttrAttackValue.SetText("" $ string(AttrAttackValue));
txtAttrDefenseValFire.SetText("" $ string(AttrDefenseValFire));
txtAttrDefenseValWater.SetText("" $ string(AttrDefenseValWater));
txtAttrDefenseValWind.SetText("" $ string(AttrDefenseValWind));
txtAttrDefenseValEarth.SetText("" $ string(AttrDefenseValEarth));
txtAttrDefenseValHoly.SetText("" $ string(AttrDefenseValHoly));
txtAttrDefenseValUnholy.SetText("" $ string(AttrDefenseValUnholy));
if ( m_bPawnChanged )
{
goto JL0EBA;
}
RunUnTransformManage();
}

function UpdateHPBar (int Value, int MaxValue)
{
texHP.SetPoint(Value,MaxValue);
}

function UpdateMPBar (int Value, int MaxValue)
{
texMP.SetPoint(Value,MaxValue);
}

function UpdateEXPBar (float ExpPercent)
{
texExp.SetPointExpPercentRate(ExpPercent);
}

function UpdateCPBar (int Value, int MaxValue)
{
texCP.SetPoint(Value,MaxValue);
}

function ToggleOpenCharInfoWnd ()
{
switch (m_hOwnerWnd.IsShowWindow())
{
case True:
m_hOwnerWnd.HideWindow();
PlaySound("InterfaceSound.charstat_close_01");
break;
case False:
m_hOwnerWnd.ShowWindow();
m_hOwnerWnd.SetFocus();
PlaySound("InterfaceSound.charstat_open_01");
break;
default:
}
}

function OnKeyDown (WindowHandle a_WindowHandle, EInputKey nKey)
{
if (! nKey == 27 ) goto JL0010;
}

function HandleVitalityPointInfo (string param)
{
local int nVitality;

ParseInt(param,"Vitality",nVitality);
UpdateVp(nVitality);
}

function UpdateVp (int Vitality)
{
if ( Vitality > 20000 )
{
VitalityTex.SetTexture("l2ui_ct1.Icon_df_LifeForce _01");
} else {
if ( Vitality >= 17000 )
{
VitalityTex.SetTexture("l2ui_ct1.Icon_df_LifeForce _05");
} else {
if ( Vitality >= 13000 )
{
VitalityTex.SetTexture("l2ui_ct1.Icon_df_LifeForce _04");
} else {
if ( Vitality >= 2000 )
{
VitalityTex.SetTexture("l2ui_ct1.Icon_df_LifeForce _03");
} else {
if ( Vitality >= 240 )
{
VitalityTex.SetTexture("l2ui_ct1.Icon_df_LifeForce _02");
} else {
VitalityTex.SetTexture("l2ui_ct1.Icon_df_LifeForce _01");
}
}
}
}
}
}

function RunTransformManage ()
{
}

function RunUnTransformManage ()
{
}

defaultproperties
{
m_WindowName="DetailStatusWnd"

}

Хотя есть еще вариант, не очень красивый, если горит можно подумать...
Aka Stels
Ответ
#4
Без модификаций dll ничего не выйдет
Добавить новое поле, сдвинуть остальные можно через interface.xdat (с большой вероятностью)
Для соответствия с сервером нужно лезть в клиентский обработчик пакетов (иначе будет статичная хрень). Эти статы в UserInfo приходят, если что

Добавлено через 1 час 0 минут
Если интересно редактирование интерфейса - почитай https://forum.zone-game.info/showthread.php?t=32333

(и вообще, модераторы бы закрепляли полезные темы, тот же статик меш реплейсер, интерфейс; а всякие редактирования l2.ini мне кажется давно актуальность потеряли)
Ответ


Возможно похожие темы ...
Тема Автор Ответы Просмотры Последний пост
  Где найти верные статы Tattoo? Dementor 6 1,301 07-17-2015, 12:46 PM
Последний пост: Dementor
  Как русифицировать статы аугментации? AgentRus 2 1,271 06-28-2013, 12:53 AM
Последний пост: AgentRus
  Статы предмета(клиент) itmen 8 118,988 09-16-2012, 04:49 PM
Последний пост: finfan

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


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