城镇角色移动初步完成 PVF引用类型字符串查询修复BUG
This commit is contained in:
parent
ddf3166eae
commit
11bc42ddac
BIN
Yosin_Engine.exe
BIN
Yosin_Engine.exe
Binary file not shown.
|
|
@ -0,0 +1,106 @@
|
||||||
|
/*
|
||||||
|
文件名:CanvasObject.nut
|
||||||
|
路径:Core/BaseClass/CanvasObject.nut
|
||||||
|
创建日期:2025-01-05 21:43
|
||||||
|
文件用途:画布类
|
||||||
|
*/
|
||||||
|
class CL_CanvasObject extends CL_BaseObject {
|
||||||
|
|
||||||
|
//宽
|
||||||
|
CanvasWidth = 0;
|
||||||
|
//高
|
||||||
|
CanvasHeight = 0;
|
||||||
|
//上下文
|
||||||
|
Context = null;
|
||||||
|
|
||||||
|
function _typeof() {
|
||||||
|
return "canvas";
|
||||||
|
}
|
||||||
|
|
||||||
|
constructor(...) {
|
||||||
|
local C_Object;
|
||||||
|
//创建空精灵
|
||||||
|
if (vargv.len() == 0) {
|
||||||
|
C_Object = Canvas_Create();
|
||||||
|
base.constructor(C_Object);
|
||||||
|
}
|
||||||
|
//通过精灵指针创建
|
||||||
|
else if (vargv.len() == 1) {
|
||||||
|
C_Object = vargv[0];
|
||||||
|
base.constructor(C_Object, true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//重设大小并清空
|
||||||
|
function ResizeAndClear(W, H) {
|
||||||
|
CanvasWidth = W;
|
||||||
|
CanvasHeight = H;
|
||||||
|
Canvas_ResizeAndClear(this.C_Object, W, H);
|
||||||
|
RefreshContext();
|
||||||
|
}
|
||||||
|
|
||||||
|
//清空画布
|
||||||
|
function Clear() {
|
||||||
|
Canvas_ResizeAndClear(this.C_Object, CanvasWidth, CanvasHeight);
|
||||||
|
RefreshContext();
|
||||||
|
}
|
||||||
|
|
||||||
|
//刷新上下文
|
||||||
|
function RefreshContext() {
|
||||||
|
Context = Canvas_GetContext2D(this.C_Object);
|
||||||
|
}
|
||||||
|
|
||||||
|
//开始绘制
|
||||||
|
function BeginDraw() {
|
||||||
|
if (!Context) error("请先刷新上下文");
|
||||||
|
Canvas_BeginDraw(Context);
|
||||||
|
}
|
||||||
|
|
||||||
|
//结束绘制
|
||||||
|
function EndDraw() {
|
||||||
|
if (!Context) error("请先刷新上下文");
|
||||||
|
Canvas_EndDraw(Context);
|
||||||
|
}
|
||||||
|
|
||||||
|
//绘制演员
|
||||||
|
function DrawActor(Actor, XPos, YPos) {
|
||||||
|
if (!Context) error("请先刷新上下文");
|
||||||
|
Canvas_DrawActor(this.C_Object, Context, Actor.C_Object, XPos, YPos);
|
||||||
|
}
|
||||||
|
|
||||||
|
//绘制精灵帧
|
||||||
|
function DrawSpriteFrame(SpriteFrame, XPos, YPos) {
|
||||||
|
if (!Context) error("请先刷新上下文");
|
||||||
|
Canvas_DrawSpriteFrame(Context, SpriteFrame.C_Object, XPos, YPos);
|
||||||
|
}
|
||||||
|
|
||||||
|
//设置填充画刷
|
||||||
|
function SetFillBrush(Color) {
|
||||||
|
if (!Context) error("请先刷新上下文");
|
||||||
|
Canvas_SetFillBrush(Context, Color);
|
||||||
|
}
|
||||||
|
|
||||||
|
//设置轮廓画刷
|
||||||
|
function SetStrokeBrush(Color) {
|
||||||
|
if (!Context) error("请先刷新上下文");
|
||||||
|
Canvas_SetStrokeBrush(Context, Color);
|
||||||
|
}
|
||||||
|
|
||||||
|
//画线段
|
||||||
|
function DrawLine(X1, Y1, X2, Y2) {
|
||||||
|
if (!Context) error("请先刷新上下文");
|
||||||
|
Canvas_DrawLine(Context, X1, Y1, X2, Y2);
|
||||||
|
}
|
||||||
|
|
||||||
|
//画圆
|
||||||
|
function DrawCircle(X, Y, R) {
|
||||||
|
if (!Context) error("请先刷新上下文");
|
||||||
|
Canvas_DrawCircle(Context, X, Y, R);
|
||||||
|
}
|
||||||
|
|
||||||
|
//画矩形
|
||||||
|
function DrawRect(X, Y, W, H) {
|
||||||
|
if (!Context) error("请先刷新上下文");
|
||||||
|
Canvas_DrawRect(Context, X, Y, W, H);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -157,14 +157,22 @@ class GlobaData {
|
||||||
}
|
}
|
||||||
|
|
||||||
function UnpackData(IO, i) {
|
function UnpackData(IO, i) {
|
||||||
local out = "";
|
|
||||||
IO.seek(i); //内容指示位
|
IO.seek(i); //内容指示位
|
||||||
local currentByte = IO.readn('c'); //内容指示位
|
local currentByte = IO.readn('c'); //内容指示位
|
||||||
local after = IO.GetInt();
|
local after = IO.GetInt();
|
||||||
switch (currentByte) {
|
switch (currentByte) {
|
||||||
|
case 9: {
|
||||||
|
local NewcurrentByte = IO.readn('c'); //内容指示位
|
||||||
|
local Newafter = IO.GetInt();
|
||||||
|
local Buf = getroottable()._Script_Data_.GetBinString(Newafter);
|
||||||
|
if (!Buf) {
|
||||||
|
Buf = "";
|
||||||
|
} else {
|
||||||
|
Buf = getroottable()._Script_Data_.GetLoadString(Buf);
|
||||||
|
}
|
||||||
|
return Buf;
|
||||||
|
}
|
||||||
case 10: {
|
case 10: {
|
||||||
IO.seek(i - 4);
|
|
||||||
local Before = IO.GetInt();
|
|
||||||
local Buf = getroottable()._Script_Data_.GetBinString(after);
|
local Buf = getroottable()._Script_Data_.GetBinString(after);
|
||||||
if (!Buf) {
|
if (!Buf) {
|
||||||
Buf = "";
|
Buf = "";
|
||||||
|
|
@ -179,12 +187,12 @@ class GlobaData {
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
case 4: {
|
case 4: {
|
||||||
local Bbuf = blob(4);
|
// local Bbuf = blob(4);
|
||||||
Bbuf.writen(after, 'i');
|
// Bbuf.writen(after, 'i');
|
||||||
Bbuf.seek(0);
|
// Bbuf.seek(0);
|
||||||
local Buf = Bbuf.readn('f');
|
// local Buf = Bbuf.readn('f');
|
||||||
out += after + '\t';
|
// out += after + '\t';
|
||||||
break;
|
return after;
|
||||||
}
|
}
|
||||||
case 6:
|
case 6:
|
||||||
case 8:
|
case 8:
|
||||||
|
|
@ -195,11 +203,9 @@ class GlobaData {
|
||||||
return Buf;
|
return Buf;
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
out += "";
|
return "";
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return out;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -161,21 +161,18 @@ class Yosin_EmeStretch extends Yosin_CommonUi {
|
||||||
|
|
||||||
//横向
|
//横向
|
||||||
if (Direction) {
|
if (Direction) {
|
||||||
//获取中间部分的宽度
|
|
||||||
local ScaleW = (W - SpriteList[0].GetSize().w - SpriteList[2].GetSize().w);
|
local ScaleW = (W - SpriteList[0].GetSize().w - SpriteList[2].GetSize().w);
|
||||||
//计算缩放比例
|
|
||||||
local ScaleRate = ScaleW / SpriteList[1].GetSize().w;
|
local ScaleRate = ScaleW / SpriteList[1].GetSize().w;
|
||||||
|
|
||||||
//设置位置和缩放
|
SpriteList[1].SetPosition(SpriteList[0].GetSize().w, 0.0);
|
||||||
SpriteList[1].SetPosition(SpriteList[0].GetSize().w, 0);
|
|
||||||
|
|
||||||
SpriteList[1].SetScale(ScaleRate, 1.0);
|
SpriteList[1].SetScale(ScaleRate, 1.0);
|
||||||
SpriteList[2].SetPosition(SpriteList[0].GetSize().w + ScaleW, 0);
|
SpriteList[2].SetPosition(SpriteList[0].GetSize().w + ScaleW, 0.0);
|
||||||
}
|
}
|
||||||
//纵向
|
//纵向
|
||||||
else {
|
else {
|
||||||
local ScaleH = (H - SpriteList[0].GetSize().h - SpriteList[2].GetSize().h);
|
local ScaleH = (H - SpriteList[0].GetSize().h - SpriteList[2].GetSize().h);
|
||||||
local ScaleRate = ScaleH / SpriteList[1].GetSize().h;
|
local ScaleRate = ScaleH / SpriteList[1].GetSize().h;
|
||||||
|
|
||||||
SpriteList[1].SetPosition(0, SpriteList[0].GetSize().h);
|
SpriteList[1].SetPosition(0, SpriteList[0].GetSize().h);
|
||||||
SpriteList[1].SetScale(1.0, ScaleRate);
|
SpriteList[1].SetScale(1.0, ScaleRate);
|
||||||
SpriteList[2].SetPosition(0, SpriteList[0].GetSize().h + ScaleH);
|
SpriteList[2].SetPosition(0, SpriteList[0].GetSize().h + ScaleH);
|
||||||
|
|
@ -383,6 +380,7 @@ class Yosin_TopTitle extends Yosin_CommonUi {
|
||||||
local BackgroundBright = CL_SpriteObject("sprite/interface/lenheartwindowcommon.img", 483);
|
local BackgroundBright = CL_SpriteObject("sprite/interface/lenheartwindowcommon.img", 483);
|
||||||
local scaleW = (W / BackgroundBright.GetSize().w).tofloat();
|
local scaleW = (W / BackgroundBright.GetSize().w).tofloat();
|
||||||
BackgroundBright.SetScale(scaleW, 1);
|
BackgroundBright.SetScale(scaleW, 1);
|
||||||
|
BackgroundBright.SetPosition(0, 1);
|
||||||
Addchild(BackgroundBright);
|
Addchild(BackgroundBright);
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -499,18 +497,43 @@ class titleButton extends Yosin_BaseButton {
|
||||||
|
|
||||||
|
|
||||||
// 拉伸标题按钮
|
// 拉伸标题按钮
|
||||||
class Yosin_StretchTitleButton extends Yosin_SplicingButton {
|
class Yosin_StretchTitleButton extends Yosin_CommonUi {
|
||||||
|
|
||||||
index = null;
|
index = null;
|
||||||
select = false;
|
//按钮状态
|
||||||
cacheSelect = false;
|
State = 0;
|
||||||
LBDownOnClick = null;
|
//ui的当前状态
|
||||||
|
uiState = 0;
|
||||||
|
|
||||||
|
cecheY = null;
|
||||||
|
|
||||||
titleText = null;
|
titleText = null;
|
||||||
|
|
||||||
constructor(X, Y, W, H, Path, Idx, title, ) {
|
SpriteList = null;
|
||||||
base.constructor(X, Y, W, H, Path, Idx, true, false)
|
|
||||||
|
|
||||||
|
// 鼠标左键按下时的回调
|
||||||
|
LBDownOnClick = null;
|
||||||
|
|
||||||
|
constructor(X, Y, W, H, Path, Idx, title) {
|
||||||
|
base.constructor(X, Y, W, H)
|
||||||
|
|
||||||
|
cecheY = Y;
|
||||||
|
SpriteList = array(3);
|
||||||
|
|
||||||
|
//普通态
|
||||||
|
SpriteList[0] = Yosin_EmeStretch(0, 0, W, H, Path, Idx);
|
||||||
|
AddUIChild(SpriteList[0]);
|
||||||
|
|
||||||
|
//悬停态
|
||||||
|
SpriteList[1] = Yosin_EmeStretch(0, 0, W, H, Path, Idx + 3);
|
||||||
|
SpriteList[1].SetVisible(false)
|
||||||
|
AddUIChild(SpriteList[1]);
|
||||||
|
//按下态
|
||||||
|
SpriteList[2] = Yosin_EmeStretch(0, 0, W, H, Path, Idx + 6);
|
||||||
|
SpriteList[2].SetVisible(false)
|
||||||
|
AddUIChild(SpriteList[2]);
|
||||||
|
|
||||||
|
// 文字
|
||||||
titleText = FontAssetManager.GenerateNormal(title, true, {
|
titleText = FontAssetManager.GenerateNormal(title, true, {
|
||||||
color = sq_RGBA(130, 114, 84, 255)
|
color = sq_RGBA(130, 114, 84, 255)
|
||||||
});
|
});
|
||||||
|
|
@ -524,30 +547,58 @@ class Yosin_StretchTitleButton extends Yosin_SplicingButton {
|
||||||
cacheSelect = select;
|
cacheSelect = select;
|
||||||
})
|
})
|
||||||
|
|
||||||
titleText.SetPosition(9, 2);
|
titleText.SetPosition(W / 2 - titleText.GetSize().w / 2, 2);
|
||||||
Addchild(titleText);
|
Addchild(titleText);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function Proc(Dt) {
|
// 设置为选中状态
|
||||||
if (select) return;
|
function SetSelect(select) {
|
||||||
|
if (select) {
|
||||||
if (State != 3 && isLBDown) {
|
|
||||||
State = 2;
|
State = 2;
|
||||||
select = true;
|
ChangeFrame();
|
||||||
|
} else {
|
||||||
|
State = 0;
|
||||||
|
ChangeFrame();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function ChangeFrame() {
|
||||||
|
//状态更改 刷新精灵帧
|
||||||
|
if (State != uiState) {
|
||||||
|
if (State == 2) {
|
||||||
|
SyncPos(X, cecheY - 1);
|
||||||
|
} else {
|
||||||
|
SyncPos(X, cecheY);
|
||||||
|
}
|
||||||
|
uiState = State;
|
||||||
|
|
||||||
|
for (local i = 0; i< SpriteList.len(); i++) {
|
||||||
|
SpriteList[i].SetVisible(i == uiState);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function Proc(Dt) {
|
||||||
|
if (State == 2) return;
|
||||||
|
|
||||||
|
//按下
|
||||||
|
if (isLBDown) {
|
||||||
if (LBDownOnClick != null) {
|
if (LBDownOnClick != null) {
|
||||||
LBDownOnClick(this);
|
LBDownOnClick(this);
|
||||||
}
|
}
|
||||||
|
State = 2;
|
||||||
}
|
}
|
||||||
if (State == 2) {
|
//悬停
|
||||||
Y -= 1;
|
else if (isInRect) {
|
||||||
SyncPos(X, Y);
|
State = 1;
|
||||||
} else if (SpriteState == 2) {
|
|
||||||
Y += 1;
|
|
||||||
SyncPos(X, Y);
|
|
||||||
}
|
}
|
||||||
|
//普通
|
||||||
base.Proc(Dt);
|
else {
|
||||||
|
State = 0;
|
||||||
|
}
|
||||||
|
ChangeFrame();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
@ -557,16 +608,17 @@ class Yosin_StretchTitleButton extends Yosin_SplicingButton {
|
||||||
class Yosin_RowMoreTitleBtn extends Yosin_CommonUi {
|
class Yosin_RowMoreTitleBtn extends Yosin_CommonUi {
|
||||||
|
|
||||||
LBDownOnClick = null;
|
LBDownOnClick = null;
|
||||||
btns = [];
|
btns = null;
|
||||||
tests = [];
|
tests = null;
|
||||||
|
|
||||||
constructor(X, Y, titles, baseWidth = 44, path = "sprite/interface/lenheartwindowcommon.img", idx = 160) {
|
constructor(X, Y, titles, selectIndex = 0, baseWidth = 34, path = "sprite/interface/lenheartwindowcommon.img", idx = 160) {
|
||||||
this.tests = titles;
|
this.tests = titles;
|
||||||
|
btns = [];
|
||||||
local btnX = 0;
|
local btnX = 0;
|
||||||
for (local i = 0; i< titles.len(); i++) {
|
for (local i = 0; i< titles.len(); i++) {
|
||||||
|
|
||||||
local textW = FontAssetManager.GenerateNormal(titles[i], true).GetSize().w + 20;
|
local textW = FontAssetManager.GenerateNormal(titles[i], true).GetSize().w + 10;
|
||||||
local btnW = baseWidth + 20;
|
local btnW = baseWidth + 10;
|
||||||
btnW = textW > btnW ? textW : btnW;
|
btnW = textW > btnW ? textW : btnW;
|
||||||
|
|
||||||
local titleBtn = Yosin_StretchTitleButton(btnX, 1, btnW, 19, path, idx, titles[i]);
|
local titleBtn = Yosin_StretchTitleButton(btnX, 1, btnW, 19, path, idx, titles[i]);
|
||||||
|
|
@ -576,11 +628,11 @@ class Yosin_RowMoreTitleBtn extends Yosin_CommonUi {
|
||||||
btn.Parent.LBDownOnClick(this, btn.index);
|
btn.Parent.LBDownOnClick(this, btn.index);
|
||||||
|
|
||||||
for (local i = 0; i< btn.Parent.btns.len(); i++) {
|
for (local i = 0; i< btn.Parent.btns.len(); i++) {
|
||||||
btn.Parent.btns[i].select = false;
|
btn.Parent.btns[i].SetSelect(false);
|
||||||
btn.Parent.btns[i].titleText.SetFillColor(sq_RGBA(130, 114, 84, 255));
|
btn.Parent.btns[i].titleText.SetFillColor(sq_RGBA(130, 114, 84, 255));
|
||||||
}
|
}
|
||||||
|
|
||||||
btn.select = true;
|
btn.SetSelect(true);
|
||||||
btn.Parent.btns[btn.index].titleText.SetFillColor(sq_RGBA(187, 176, 149, 255));
|
btn.Parent.btns[btn.index].titleText.SetFillColor(sq_RGBA(187, 176, 149, 255));
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
@ -595,6 +647,8 @@ class Yosin_RowMoreTitleBtn extends Yosin_CommonUi {
|
||||||
AddUIChild(btns[i]);
|
AddUIChild(btns[i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
btns[0].SetSelect(true);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
@ -15,6 +15,7 @@ l:\Yosin_Engine\Yosin&Kiwano_DOF\sqr\Core\BaseClass\StageClass.nut
|
||||||
l:\Yosin_Engine\Yosin&Kiwano_DOF\sqr\Core\BaseClass\ActorObject.nut
|
l:\Yosin_Engine\Yosin&Kiwano_DOF\sqr\Core\BaseClass\ActorObject.nut
|
||||||
l:\Yosin_Engine\Yosin&Kiwano_DOF\sqr\Core\BaseClass\LayerObject.nut
|
l:\Yosin_Engine\Yosin&Kiwano_DOF\sqr\Core\BaseClass\LayerObject.nut
|
||||||
l:\Yosin_Engine\Yosin&Kiwano_DOF\sqr\Core\BaseClass\UserStorage.nut
|
l:\Yosin_Engine\Yosin&Kiwano_DOF\sqr\Core\BaseClass\UserStorage.nut
|
||||||
|
l:\Yosin_Engine\Yosin&Kiwano_DOF\sqr\Core\BaseClass\CanvasObject.nut
|
||||||
l:\Yosin_Engine\Yosin&Kiwano_DOF\sqr\Core\BaseClass\SpriteObject\SpriteFrameClass.nut
|
l:\Yosin_Engine\Yosin&Kiwano_DOF\sqr\Core\BaseClass\SpriteObject\SpriteFrameClass.nut
|
||||||
l:\Yosin_Engine\Yosin&Kiwano_DOF\sqr\Core\BaseClass\SpriteObject\SpriteClass.nut
|
l:\Yosin_Engine\Yosin&Kiwano_DOF\sqr\Core\BaseClass\SpriteObject\SpriteClass.nut
|
||||||
l:\Yosin_Engine\Yosin&Kiwano_DOF\sqr\Core\BaseClass\TextObject\Font.nut
|
l:\Yosin_Engine\Yosin&Kiwano_DOF\sqr\Core\BaseClass\TextObject\Font.nut
|
||||||
|
|
|
||||||
|
|
@ -197,7 +197,7 @@ class _AssetManager_ {
|
||||||
while (!Data.Eof()) {
|
while (!Data.Eof()) {
|
||||||
local Pack = Data.Get();
|
local Pack = Data.Get();
|
||||||
//名称 grade 套装Id
|
//名称 grade 套装Id
|
||||||
if (Pack == "[name]" || Pack == "[part set index]" || Pack == "[grade]" || Pack == "[minimum level]") {
|
if (Pack == "[name]" || Pack == "[part set index]" || Pack == "[grade]" || Pack == "[rarity]" || Pack == "[minimum level]") {
|
||||||
local RealKey = Pack.slice(1, -1);
|
local RealKey = Pack.slice(1, -1);
|
||||||
DataTable[RealKey] <- Data.Get();
|
DataTable[RealKey] <- Data.Get();
|
||||||
}
|
}
|
||||||
|
|
@ -214,7 +214,7 @@ class _AssetManager_ {
|
||||||
else if (Pack == "[icon]") {
|
else if (Pack == "[icon]") {
|
||||||
DataTable.icon <- {};
|
DataTable.icon <- {};
|
||||||
local Ret = Data.Get();
|
local Ret = Data.Get();
|
||||||
DataTable.icon.path <- Ret.tolower();
|
DataTable.icon.path <- "sprite/" + Ret.tolower();
|
||||||
Ret = Data.Get();
|
Ret = Data.Get();
|
||||||
DataTable.icon.index <- Ret.tointeger();
|
DataTable.icon.index <- Ret.tointeger();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,64 @@
|
||||||
创建日期:2024-12-12 19:03
|
创建日期:2024-12-12 19:03
|
||||||
文件用途:
|
文件用途:
|
||||||
*/
|
*/
|
||||||
|
//装备信息窗口
|
||||||
|
class GameItem.EquipmentInfo extends Yosin_Window {
|
||||||
|
|
||||||
|
//装备
|
||||||
|
Equipment = null;
|
||||||
|
//画布
|
||||||
|
Canvas = null;
|
||||||
|
//稀有度边框颜色对应Idx表
|
||||||
|
RarityColorIdx = [
|
||||||
|
0, //白装 普通
|
||||||
|
1, //蓝装 高级
|
||||||
|
2, //紫装 稀有
|
||||||
|
4, //粉装 神器
|
||||||
|
6, //金装 史诗
|
||||||
|
3, //红装 勇者
|
||||||
|
5, //橙装 传说
|
||||||
|
];
|
||||||
|
|
||||||
|
constructor(Equipment) {
|
||||||
|
this.Equipment = Equipment.weakref();
|
||||||
|
base.constructor(clock() + "EquipmentInfo" + Equipment.Idx, 0, 0, 0, 0, 0);
|
||||||
|
|
||||||
|
local background = Yosin_NineBoxStretch(0, 0, 210, 50, "sprite/interface/lenheartwindowcommon.img", 213);
|
||||||
|
AddUIChild(background);
|
||||||
|
//210
|
||||||
|
Init();
|
||||||
|
}
|
||||||
|
|
||||||
|
function Init() {
|
||||||
|
Canvas = CL_CanvasObject();
|
||||||
|
Canvas.ResizeAndClear(210, 600);
|
||||||
|
Canvas.SetFillBrush(sq_RGBA(255, 255, 255, 250));
|
||||||
|
Canvas.SetStrokeBrush(sq_RGBA(255, 255, 255, 250));
|
||||||
|
Canvas.BeginDraw();
|
||||||
|
|
||||||
|
//构造图标 及图标边框
|
||||||
|
if (Equipment.Icon) {
|
||||||
|
local Icon = CL_SpriteFrameObject(Equipment.Icon.path, Equipment.Icon.index);
|
||||||
|
Canvas.DrawSpriteFrame(Icon, 7, 7);
|
||||||
|
|
||||||
|
local IconFrame = CL_SpriteFrameObject("sprite/item/iconmark.img", 62 + RarityColorIdx[Equipment.Rarity]);
|
||||||
|
Canvas.DrawSpriteFrame(IconFrame, 7, 7);
|
||||||
|
}
|
||||||
|
|
||||||
|
//绘制装备名称
|
||||||
|
if (Equipment.Name.len() > 0) {
|
||||||
|
local EquName = FontAssetManager.GenerateNormal(Equipment.Name, true, {
|
||||||
|
color = sq_RGBA(255, 0, 255 255)
|
||||||
|
});
|
||||||
|
Canvas.DrawActor(EquName, 41, 7);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Canvas.EndDraw();
|
||||||
|
Addchild(Canvas);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
class GameItem.Equipment extends GameItem.Item {
|
class GameItem.Equipment extends GameItem.Item {
|
||||||
//装备ID
|
//装备ID
|
||||||
Idx = -1;
|
Idx = -1;
|
||||||
|
|
@ -17,10 +75,12 @@ class GameItem.Equipment extends GameItem.Item {
|
||||||
Minimum_level = -1;
|
Minimum_level = -1;
|
||||||
//装备等级组
|
//装备等级组
|
||||||
Grade = null;
|
Grade = null;
|
||||||
|
//装备稀有度
|
||||||
|
Rarity = 0;
|
||||||
//装备可穿戴职业
|
//装备可穿戴职业
|
||||||
Job = 0;
|
Job = 0;
|
||||||
//装备图标
|
//装备图标
|
||||||
Icon = "";
|
Icon = null;
|
||||||
//动画
|
//动画
|
||||||
Animation_Job = null;
|
Animation_Job = null;
|
||||||
//装备描述
|
//装备描述
|
||||||
|
|
@ -45,11 +105,19 @@ class GameItem.Equipment extends GameItem.Item {
|
||||||
local EquInfo = AssetManager.GetEquipment(vargv[0]);
|
local EquInfo = AssetManager.GetEquipment(vargv[0]);
|
||||||
if (EquInfo) {
|
if (EquInfo) {
|
||||||
Idx = vargv[0];
|
Idx = vargv[0];
|
||||||
|
//名称
|
||||||
if (EquInfo.rawin("name")) Name = EquInfo["name"];
|
if (EquInfo.rawin("name")) Name = EquInfo["name"];
|
||||||
|
//类型
|
||||||
if (EquInfo.rawin("type")) GetRealEquipmentType(EquInfo["type"].path);
|
if (EquInfo.rawin("type")) GetRealEquipmentType(EquInfo["type"].path);
|
||||||
|
//最低使用等级
|
||||||
if (EquInfo.rawin("minimum level")) Minimum_level = EquInfo["minimum level"];
|
if (EquInfo.rawin("minimum level")) Minimum_level = EquInfo["minimum level"];
|
||||||
|
//等级组
|
||||||
if (EquInfo.rawin("grade")) Grade = EquInfo["grade"];
|
if (EquInfo.rawin("grade")) Grade = EquInfo["grade"];
|
||||||
|
//稀有度
|
||||||
|
if (EquInfo.rawin("rarity")) Rarity = EquInfo["rarity"];
|
||||||
|
//职业
|
||||||
if (EquInfo.rawin("usable_job")) Job = EquInfo["usable_job"];
|
if (EquInfo.rawin("usable_job")) Job = EquInfo["usable_job"];
|
||||||
|
//图标
|
||||||
if (EquInfo.rawin("icon")) Icon = EquInfo["icon"];
|
if (EquInfo.rawin("icon")) Icon = EquInfo["icon"];
|
||||||
if (EquInfo.rawin("Ani")) Animation_Job = EquInfo["Ani"];
|
if (EquInfo.rawin("Ani")) Animation_Job = EquInfo["Ani"];
|
||||||
if (EquInfo.rawin("DirPath")) DirPath = EquInfo["DirPath"];
|
if (EquInfo.rawin("DirPath")) DirPath = EquInfo["DirPath"];
|
||||||
|
|
@ -79,6 +147,15 @@ class GameItem.Equipment extends GameItem.Item {
|
||||||
else if (EType == "aurora avatar") SetRealEquipmentType("aurora", "aurora");
|
else if (EType == "aurora avatar") SetRealEquipmentType("aurora", "aurora");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//获取装备信息窗口
|
||||||
|
function GetEquipmentInfoWindow() {
|
||||||
|
if (Property) {
|
||||||
|
|
||||||
|
} else {
|
||||||
|
return GameItem.EquipmentInfo(this);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//穿戴装备回调
|
//穿戴装备回调
|
||||||
function OnWearStart() {
|
function OnWearStart() {
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -62,6 +62,8 @@ class Object_Controller {
|
||||||
Move_Instruction_Horizontal = null;
|
Move_Instruction_Horizontal = null;
|
||||||
//纵向移动方向List
|
//纵向移动方向List
|
||||||
Move_Instruction_Vertical = null;
|
Move_Instruction_Vertical = null;
|
||||||
|
//最终角色移动方向
|
||||||
|
MoveFlag = DIRECTION.NONE;
|
||||||
//检查按键与移动方向
|
//检查按键与移动方向
|
||||||
function CheckMove(Key, Flag, Buffer) {
|
function CheckMove(Key, Flag, Buffer) {
|
||||||
//上 0 下 1 左 2 右 3
|
//上 0 下 1 左 2 右 3
|
||||||
|
|
@ -90,8 +92,34 @@ class Object_Controller {
|
||||||
else if (Move_Horizontal == 3) X = 1;
|
else if (Move_Horizontal == 3) X = 1;
|
||||||
if (Move_Vertical == 0) Y = -1;
|
if (Move_Vertical == 0) Y = -1;
|
||||||
else if (Move_Vertical == 1) Y = 1;
|
else if (Move_Vertical == 1) Y = 1;
|
||||||
//至少有一个方向才会调用
|
|
||||||
Parent.Move(Dt, X, Y);
|
// 根据 X 和 Y 赋值给 MoveFlagBuf
|
||||||
|
local MoveFlagBuf;
|
||||||
|
if (X == 0 && Y == -1) {
|
||||||
|
MoveFlagBuf = DIRECTION.UP;
|
||||||
|
} else if (X == 0 && Y == 1) {
|
||||||
|
MoveFlagBuf = DIRECTION.DOWN;
|
||||||
|
} else if (X == -1 && Y == 0) {
|
||||||
|
MoveFlagBuf = DIRECTION.LEFT;
|
||||||
|
} else if (X == 1 && Y == 0) {
|
||||||
|
MoveFlagBuf = DIRECTION.RIGHT;
|
||||||
|
} else if (X == -1 && Y == -1) {
|
||||||
|
MoveFlagBuf = DIRECTION.UP_LEFT;
|
||||||
|
} else if (X == 1 && Y == -1) {
|
||||||
|
MoveFlagBuf = DIRECTION.UP_RIGHT;
|
||||||
|
} else if (X == -1 && Y == 1) {
|
||||||
|
MoveFlagBuf = DIRECTION.DOWN_LEFT;
|
||||||
|
} else if (X == 1 && Y == 1) {
|
||||||
|
MoveFlagBuf = DIRECTION.DOWN_RIGHT;
|
||||||
|
} else {
|
||||||
|
MoveFlagBuf = DIRECTION.NONE;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (MoveFlagBuf != this.MoveFlag) {
|
||||||
|
this.MoveFlag = MoveFlagBuf;
|
||||||
|
|
||||||
|
TOWN_PACKET.SendTownMoveStatePacket(this.Parent.X, this.Parent.Y, this.MoveFlag);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//控制器更新
|
//控制器更新
|
||||||
|
|
|
||||||
|
|
@ -145,30 +145,72 @@ class GameObject.Character extends GameObject.ActiveObject {
|
||||||
base.SetName(Name);
|
base.SetName(Name);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//是否为客户端玩家
|
||||||
|
function IsClientPlayer() {
|
||||||
|
if (ClientCharacter && this.Cid == ClientCharacter.Cid)
|
||||||
|
return true;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
//移动速度
|
//移动速度
|
||||||
Move_Speed = 500;
|
Move_Speed = 500;
|
||||||
|
//移动Flag
|
||||||
|
MoveFlag = DIRECTION.NONE;
|
||||||
|
//设置移动状态
|
||||||
|
function SetMoveFlag(Flag) {
|
||||||
|
//状态有更改
|
||||||
|
if (Flag != this.MoveFlag) {
|
||||||
|
this.MoveFlag = Flag;
|
||||||
|
//站立状态
|
||||||
|
if (this.MoveFlag == DIRECTION.NONE) {
|
||||||
|
AnimationManager.SetAnimation("RestAni");
|
||||||
|
}
|
||||||
|
//移动状态
|
||||||
|
else {
|
||||||
|
AnimationManager.SetAnimation("MoveAni");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
//移动逻辑
|
//移动逻辑
|
||||||
function Move(Dt, X, Y) {
|
function MoveLogic(Dt) {
|
||||||
if (!Parent) return;
|
if (!Parent) return;
|
||||||
|
//没有移动状态
|
||||||
|
if (MoveFlag == DIRECTION.NONE) return;
|
||||||
//在城镇里
|
//在城镇里
|
||||||
if (typeof Parent == "townmap") {
|
if (typeof Parent == "townmap") {
|
||||||
if (X == 0 && Y == 0) {
|
// 根据 MoveFlag 解出 X 和 Y
|
||||||
//设置回站立动画
|
local MX, MY;
|
||||||
if (AnimationManager.CurrentAni != AnimationManager.RestAni) {
|
if (MoveFlag == DIRECTION.UP) {
|
||||||
AnimationManager.SetAnimation("RestAni");
|
MX = 0;
|
||||||
}
|
MY = -1;
|
||||||
} else {
|
} else if (MoveFlag == DIRECTION.DOWN) {
|
||||||
//设置移动动画
|
MX = 0;
|
||||||
if (AnimationManager.CurrentAni != AnimationManager.MoveAni) {
|
MY = 1;
|
||||||
AnimationManager.SetAnimation("MoveAni");
|
} else if (MoveFlag == DIRECTION.LEFT) {
|
||||||
}
|
MX = -1;
|
||||||
//设置人物朝向
|
MY = 0;
|
||||||
if (X > 0) SetDirection(DIRECTION.RIGHT);
|
} else if (MoveFlag == DIRECTION.RIGHT) {
|
||||||
else if (X< 0) SetDirection(DIRECTION.LEFT);
|
MX = 1;
|
||||||
MoveBy(Dt * X * Move_Speed * 0.001, Dt * Y * Move_Speed * 0.001 * 0.71, 0);
|
MY = 0;
|
||||||
|
} else if (MoveFlag == DIRECTION.UP_LEFT) {
|
||||||
|
MX = -1;
|
||||||
|
MY = -1;
|
||||||
|
} else if (MoveFlag == DIRECTION.UP_RIGHT) {
|
||||||
|
MX = 1;
|
||||||
|
MY = -1;
|
||||||
|
} else if (MoveFlag == DIRECTION.DOWN_LEFT) {
|
||||||
|
MX = -1;
|
||||||
|
MY = 1;
|
||||||
|
} else if (MoveFlag == DIRECTION.DOWN_RIGHT) {
|
||||||
|
MX = 1;
|
||||||
|
MY = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//设置人物朝向
|
||||||
|
if (MX > 0) SetDirection(DIRECTION.RIGHT);
|
||||||
|
else if (MX< 0) SetDirection(DIRECTION.LEFT);
|
||||||
|
|
||||||
|
MoveBy(Dt * MX * Move_Speed * 0.001, Dt * MY * Move_Speed * 0.001 * 0.71, 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -179,6 +221,8 @@ class GameObject.Character extends GameObject.ActiveObject {
|
||||||
base.OnUpdate(Dt);
|
base.OnUpdate(Dt);
|
||||||
//控制器逻辑更新
|
//控制器逻辑更新
|
||||||
if (Controller) Controller.OnUpdate(Dt);
|
if (Controller) Controller.OnUpdate(Dt);
|
||||||
|
//移动逻辑更新
|
||||||
|
MoveLogic(Dt);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -198,4 +242,18 @@ GameObject.CreateCharacter <- function(Job = 0, EquIdList = [], IsPlayer = false
|
||||||
//设置站立模式Ani
|
//设置站立模式Ani
|
||||||
Character.SetAnimation("RestAni");
|
Character.SetAnimation("RestAni");
|
||||||
return Character;
|
return Character;
|
||||||
|
}
|
||||||
|
|
||||||
|
//通过Cid获取当前地图的角色
|
||||||
|
GameObject.GetCharacterByCid <- function(cid) {
|
||||||
|
//从全局地图中找到城镇并设置角色移动状态
|
||||||
|
if (GlobalTownManager.CurrentMap) {
|
||||||
|
//遍历所有角色
|
||||||
|
foreach(obj in GlobalTownManager.CurrentMap.PlayerList) {
|
||||||
|
//角色对象
|
||||||
|
if (typeof obj == "character" && obj.Cid == cid) {
|
||||||
|
return obj;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -13,6 +13,9 @@ class Map extends Actor {
|
||||||
//图层对象Map
|
//图层对象Map
|
||||||
LayerObject = null;
|
LayerObject = null;
|
||||||
|
|
||||||
|
//角色列表
|
||||||
|
PlayerList = null;
|
||||||
|
|
||||||
//所属城镇
|
//所属城镇
|
||||||
m_town = 0;
|
m_town = 0;
|
||||||
//地图编号
|
//地图编号
|
||||||
|
|
@ -291,6 +294,7 @@ class Map extends Actor {
|
||||||
obj.Parent.Removechild(obj);
|
obj.Parent.Removechild(obj);
|
||||||
}
|
}
|
||||||
LayerObject.normal.Addchild(obj);
|
LayerObject.normal.Addchild(obj);
|
||||||
|
PlayerList[obj.Cid] <- obj;
|
||||||
obj.MySelfMap = this.weakref();
|
obj.MySelfMap = this.weakref();
|
||||||
//如果是玩家自己
|
//如果是玩家自己
|
||||||
if (IsPlayer) {
|
if (IsPlayer) {
|
||||||
|
|
@ -309,7 +313,10 @@ class Map extends Actor {
|
||||||
|
|
||||||
//移除对象
|
//移除对象
|
||||||
function RemoveObject(obj) {
|
function RemoveObject(obj) {
|
||||||
|
//图层对象中移除玩家
|
||||||
LayerObject.normal.Removechild(obj);
|
LayerObject.normal.Removechild(obj);
|
||||||
|
//玩家列表中移除玩家
|
||||||
|
PlayerList.rawdelete(obj.Cid);
|
||||||
//角色对象
|
//角色对象
|
||||||
if (typeof obj == "character") {
|
if (typeof obj == "character") {
|
||||||
//将地图信息写入角色中
|
//将地图信息写入角色中
|
||||||
|
|
@ -319,7 +326,7 @@ class Map extends Actor {
|
||||||
|
|
||||||
//移除地图中所有的角色对象
|
//移除地图中所有的角色对象
|
||||||
function RemoveAllCharacterObject() {
|
function RemoveAllCharacterObject() {
|
||||||
foreach(obj in LayerObject.normal.Children) {
|
foreach(obj in PlayerList) {
|
||||||
//角色对象
|
//角色对象
|
||||||
if (typeof obj == "character") {
|
if (typeof obj == "character") {
|
||||||
RemoveObject(obj);
|
RemoveObject(obj);
|
||||||
|
|
@ -376,6 +383,7 @@ class Map extends Actor {
|
||||||
}
|
}
|
||||||
//将角色添加到地图的normal图层
|
//将角色添加到地图的normal图层
|
||||||
LayerObject.normal.Addchild(obj);
|
LayerObject.normal.Addchild(obj);
|
||||||
|
PlayerList[obj.Cid] <- obj;
|
||||||
//设置坐标
|
//设置坐标
|
||||||
obj.SetPosition(pos);
|
obj.SetPosition(pos);
|
||||||
//将地图信息写入角色中
|
//将地图信息写入角色中
|
||||||
|
|
@ -384,6 +392,7 @@ class Map extends Actor {
|
||||||
}
|
}
|
||||||
|
|
||||||
constructor(arg) {
|
constructor(arg) {
|
||||||
|
PlayerList = {};
|
||||||
base.constructor();
|
base.constructor();
|
||||||
|
|
||||||
if (typeof arg == "integer") {
|
if (typeof arg == "integer") {
|
||||||
|
|
|
||||||
|
|
@ -110,7 +110,8 @@ class BaseObject extends Actor {
|
||||||
Z += vargv[1];
|
Z += vargv[1];
|
||||||
}
|
}
|
||||||
SetZOrder(Y);
|
SetZOrder(Y);
|
||||||
MySelfMap.CheckMovableAreaTransmit(this, X, Y);
|
//如果是客户端玩家 则判断移动城镇
|
||||||
|
if (IsClientPlayer()) MySelfMap.CheckMovableAreaTransmit(this, X, Y);
|
||||||
}
|
}
|
||||||
|
|
||||||
//设置方向
|
//设置方向
|
||||||
|
|
|
||||||
|
|
@ -16,6 +16,7 @@ function RegisterFunctionalPack() {
|
||||||
local name = Pack.Get_String(namelen);
|
local name = Pack.Get_String(namelen);
|
||||||
local job = Pack.Get_Byte();
|
local job = Pack.Get_Byte();
|
||||||
local lv = Pack.Get_Byte();
|
local lv = Pack.Get_Byte();
|
||||||
|
local moveflag = Pack.Get_Byte();
|
||||||
local posx = Pack.Get_Int();
|
local posx = Pack.Get_Int();
|
||||||
local posy = Pack.Get_Int();
|
local posy = Pack.Get_Int();
|
||||||
local posz = 0;
|
local posz = 0;
|
||||||
|
|
@ -32,6 +33,11 @@ function RegisterFunctionalPack() {
|
||||||
if (GlobalTownManager.CurrentMap) {
|
if (GlobalTownManager.CurrentMap) {
|
||||||
GlobalTownManager.CurrentMap.AddObject(Charc);
|
GlobalTownManager.CurrentMap.AddObject(Charc);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//设置角色移动状态
|
||||||
|
if (moveflag != DIRECTION.NONE) {
|
||||||
|
Charc.SetMoveFlag(moveflag);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
//城镇中移除角色的回包
|
//城镇中移除角色的回包
|
||||||
|
|
@ -39,7 +45,7 @@ function RegisterFunctionalPack() {
|
||||||
//从全局地图中找到城镇并移除角色
|
//从全局地图中找到城镇并移除角色
|
||||||
if (GlobalTownManager.CurrentMap) {
|
if (GlobalTownManager.CurrentMap) {
|
||||||
//遍历所有角色
|
//遍历所有角色
|
||||||
foreach(obj in GlobalTownManager.CurrentMap.LayerObject.normal.Children) {
|
foreach(obj in GlobalTownManager.CurrentMap.PlayerList) {
|
||||||
//角色对象
|
//角色对象
|
||||||
if (typeof obj == "character" && obj.Cid == Jso.cid) {
|
if (typeof obj == "character" && obj.Cid == Jso.cid) {
|
||||||
GlobalTownManager.CurrentMap.RemoveObject(obj);
|
GlobalTownManager.CurrentMap.RemoveObject(obj);
|
||||||
|
|
@ -54,4 +60,32 @@ function RegisterFunctionalPack() {
|
||||||
local MapObj = GlobalTownManager.TownList[Jso.town].map[Jso.region];
|
local MapObj = GlobalTownManager.TownList[Jso.town].map[Jso.region];
|
||||||
MapObj.AddObjectByChangeTown(ClientCharacter, Jso.pos);
|
MapObj.AddObjectByChangeTown(ClientCharacter, Jso.pos);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
//城镇中角色移动的回包
|
||||||
|
MySocket.RegisterBinaryHandler(PACKET_ID.TOWN_CHARACTER_MOVE_CALLBACK, function(Binary) {
|
||||||
|
local Pack = Packet(Binary);
|
||||||
|
Pack.Get_Int();
|
||||||
|
local cid = Pack.Get_Int();
|
||||||
|
local MoveFlag = Pack.Get_Byte();
|
||||||
|
local X = Pack.Get_Int();
|
||||||
|
local Y = Pack.Get_Int();
|
||||||
|
//获取角色对象
|
||||||
|
local obj = GameObject.GetCharacterByCid(cid);
|
||||||
|
if (obj) {
|
||||||
|
obj.SetPosition(X, Y, 0);
|
||||||
|
obj.SetMoveFlag(MoveFlag);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
//城镇包
|
||||||
|
TOWN_PACKET <- {
|
||||||
|
//城镇角色移动改变状态包
|
||||||
|
function SendTownMoveStatePacket(X, Y, MoveFlag) {
|
||||||
|
local Pack = Packet();
|
||||||
|
Pack.Put_Byte(MoveFlag);
|
||||||
|
Pack.Put_Int(X);
|
||||||
|
Pack.Put_Int(Y);
|
||||||
|
MySocket.Send(PACKET_ID.TOWN_CHARACTER_MOVE, Pack.Data);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -20,22 +20,22 @@ class Packet {
|
||||||
|
|
||||||
//字节
|
//字节
|
||||||
function Put_Byte(Value) {
|
function Put_Byte(Value) {
|
||||||
this.Data.writen('c', Value);
|
this.Data.writen(Value, 'c');
|
||||||
}
|
}
|
||||||
|
|
||||||
//短整型
|
//短整型
|
||||||
function Put_Short(Value) {
|
function Put_Short(Value) {
|
||||||
this.Data.writen('s', Value);
|
this.Data.writen(Value, 's');
|
||||||
}
|
}
|
||||||
|
|
||||||
//整型
|
//整型
|
||||||
function Put_Int(Value) {
|
function Put_Int(Value) {
|
||||||
this.Data.writen('i', Value);
|
this.Data.writen(Value, 'i');
|
||||||
}
|
}
|
||||||
|
|
||||||
//浮点型
|
//浮点型
|
||||||
function Put_Float(Value) {
|
function Put_Float(Value) {
|
||||||
this.Data.writen('f', Value);
|
this.Data.writen(Value, 'f');
|
||||||
}
|
}
|
||||||
|
|
||||||
//字符串
|
//字符串
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,14 @@ function TestStage() {
|
||||||
T.Enter();
|
T.Enter();
|
||||||
|
|
||||||
|
|
||||||
local Window = Sq_CreateWindow(_Login_Window, "登录界面窗口", 0, 0, 1066, 600, 0);
|
// local Window = Sq_CreateWindow(_Login_Window, "登录界面窗口", 0, 0, 1066, 600, 0);
|
||||||
|
|
||||||
|
|
||||||
|
local Equ = GameItem.Equipment(27675);
|
||||||
|
local Window = Equ.GetEquipmentInfoWindow();
|
||||||
|
Window.SetPosition(300, 80);
|
||||||
|
Window.ResetFocus();
|
||||||
|
|
||||||
|
|
||||||
// local Window = Sq_CreateWindow(_Inventory, "背包窗口", 150, 12, 257, 555, 20);
|
// local Window = Sq_CreateWindow(_Inventory, "背包窗口", 150, 12, 257, 555, 20);
|
||||||
// //大背景
|
// //大背景
|
||||||
|
|
|
||||||
|
|
@ -129,6 +129,7 @@ class _Login_Window extends Yosin_Window {
|
||||||
RegisterTextActor.SetPosition(26, 4);
|
RegisterTextActor.SetPosition(26, 4);
|
||||||
RegisterButton.Addchild(RegisterTextActor);
|
RegisterButton.Addchild(RegisterTextActor);
|
||||||
AddUIChild(RegisterButton);
|
AddUIChild(RegisterButton);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function RegisterDraw() {
|
function RegisterDraw() {
|
||||||
|
|
|
||||||
|
|
@ -361,6 +361,7 @@ class _Select_Character_Window extends Yosin_Window {
|
||||||
local Info = Jso.charac;
|
local Info = Jso.charac;
|
||||||
local TownObj = Town(Info.town);
|
local TownObj = Town(Info.town);
|
||||||
local Charc = GameObject.CreateCharacter(Info.job, Info.equ, true);
|
local Charc = GameObject.CreateCharacter(Info.job, Info.equ, true);
|
||||||
|
Charc.Cid = Info.cid;
|
||||||
TownObj.AddObject(Charc, true);
|
TownObj.AddObject(Charc, true);
|
||||||
ClientCharacter = Charc;
|
ClientCharacter = Charc;
|
||||||
}.bindenv(this));
|
}.bindenv(this));
|
||||||
|
|
|
||||||
|
|
@ -143,6 +143,16 @@ enum DIRECTION {
|
||||||
UP = 2
|
UP = 2
|
||||||
//下
|
//下
|
||||||
DOWN = 3
|
DOWN = 3
|
||||||
|
//左上
|
||||||
|
UP_LEFT = 4
|
||||||
|
//右上
|
||||||
|
UP_RIGHT = 5
|
||||||
|
//左下
|
||||||
|
DOWN_LEFT = 6
|
||||||
|
//右下
|
||||||
|
DOWN_RIGHT = 7
|
||||||
|
//无
|
||||||
|
NONE = 8
|
||||||
}
|
}
|
||||||
|
|
||||||
//基础状态枚举表
|
//基础状态枚举表
|
||||||
|
|
|
||||||
|
|
@ -28,6 +28,8 @@ enum PACKET_ID {
|
||||||
|
|
||||||
//城镇移动切换区域
|
//城镇移动切换区域
|
||||||
CHANGE_TOWN_AREA = 10001
|
CHANGE_TOWN_AREA = 10001
|
||||||
|
//城镇中角色移动
|
||||||
|
TOWN_CHARACTER_MOVE = 10004
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -45,4 +47,6 @@ enum PACKET_ID {
|
||||||
TOWN_ADD_CHARACTER_CALLBACK = 10002
|
TOWN_ADD_CHARACTER_CALLBACK = 10002
|
||||||
//城镇中移除角色的回包
|
//城镇中移除角色的回包
|
||||||
TOWN_REMOVE_CHARACTER_CALLBACK = 10003
|
TOWN_REMOVE_CHARACTER_CALLBACK = 10003
|
||||||
|
//城镇中角色移动的回包
|
||||||
|
TOWN_CHARACTER_MOVE_CALLBACK = 10004
|
||||||
}
|
}
|
||||||
|
|
@ -253,5 +253,11 @@
|
||||||
},
|
},
|
||||||
"User/Socket/FunctionalPack.nut": {
|
"User/Socket/FunctionalPack.nut": {
|
||||||
"description": "功能数据包"
|
"description": "功能数据包"
|
||||||
|
},
|
||||||
|
"Core/BaseClass/CanvasObject.nut": {
|
||||||
|
"description": "画布类"
|
||||||
|
},
|
||||||
|
"Core/BaseClass/AudioClass.nut": {
|
||||||
|
"description": "音频类"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Loading…
Reference in New Issue