📄 chartclient.gml
字号:
//提示文字
<sys include=$.\public.gml>
#define USEPORT 10020
#define NBU <ChartUser ownername=%1;name=%2;pos=%3,%4>
#define NBOB <ChartOther ownername=%1;name=%2;pos=%3,%4;frame=%5>
#define NBOG <ChartOther ownername=%1;name=%2;walk=!%3,%4,%5,%6,150,22>
<sys import=desktop,$.\mapact.gml>
<sys import=desktop,$.\..\maps\vrchengshi.gml>
<style>
//人物
.ChartMan:ChartManBase{
OnCgo={<: walk=!$[ep],85,15,20,walk>};
Onrun={<: walk=!$[ep],210,10,25,run>};
}
//用户--------------------------------------------------------
.ChartUser:ChartMan{
//绘生命条和fen
draw#life=9{wv();org(238,5);TextOut(140,0,姓名:$[ownername],#FFFFFF);};
draw#main={wv();ellipse(0,0,22,12,R230G220B100,0);};
OnCreate#user={<:$[pid] viewfollow=$[id];msgobj=$[id];><:desktop msgobj=$[id];>
// <:lifebar mainmanid=$[id]><:charedit show=1;active=1;>
};
OnPlayAni={<: OnPathEnd=null;walk=null;anikind=*ep0;paramCtrl=loopt(ep1,anisteps,0,anistepmax+ep2,1,ep3);
netbroadcast=PlayAni,$[ep];>};
OnCgo#1={<:$[pid] viewfollow=$[id];>};
OnWalkend#1={<:$[pid] viewfollow=mouse;>};
}
//其他人-------------------------------------------------------
.ChartOther:ChartMan{
//绘生命条和fen
draw#life=9{wv();TextOut(10,-20,$[ownername],#FFFFFF);};
}
</style>
<:mymap cache=true;pathfinder=true;
zorder=0;
OnLButtonDown={ <:$[msgobj] neteventToS=sto,$[mousepos]>};
Onlbuttondblclk={<:$[msgobj] neteventToS=srun,$[mousepos]>};
OnSize={<: size=pid.width,pid.height-20>};
viewfollow=mouse;
>
//<sys import=desktop,$.\maprain.gml>
//标题----------------------------------------------------
<:desktop bkimg=null;OnSize={<: enumsub={<: eve=size>}>};event=Size>
//======;生成socket;启动游戏;=================================================================
<style>
.sockettext:Text{
pid=desktop;
draw={wv();ellipsea(0,0,width,height,#EFDF9F,0);}
anti=true;align=center,center;color=#000070;
font=隶书,12,28;show=false;zorder=top;
OnSize={<: pos=pid.width/2,pid.height/2>};
}
.MCLIENTSOCKET:socketc{
defsocket=true;//默认通讯
port=#(USEPORT);
// debug=1;
autoconnectlist="169.254.159.182,169.254.159.182";
loginname=Auto;
OnCreate#text={<sockettext name=txt$[id] ;src=正在连接服务器;eve=size;show=1>}
OnConnected={<: login=*loginname><:txt$[id] show=0>}
OnAutoConnect={<:txt$[id] if=($[portmagic])?{src='正在转接服务器 $[connectnumleft]'}:{src='正在连接服务器 $[connectnumleft]'};
show=1;Onclick=null>}
OnConnectErr={<:txt$[id] src=连接服务器失败(重试);show=1;Onclick={<:$[id] retryconnect=1>}>};
OnNetErr={<:txt$[id] src=网络错误;show=1>};
OnChatsys={<Chattxt srcex='[系统]:$[chatmsgex]';color=R250G130B100><:ChatList eve=msgshow>};
OnChatself={<Chattxt srcex='[我]:$[chatmsgex]';color=R250G230B150><:ChatList eve=msgshow>};
OnChatother={<Chattxt srcex='[$[chatfrom]]:$[chatmsgex]';color=R150G230B250><:ChatList eve=msgshow>};
OnDestroy={<:txt$[id] del=1>}
}
</style>
//=========================== chat ==================================
<Wedit size=pid.width-160,16;
name=charedit;
pos=90,pid.height-20;
OnEnter={<:mysocket sendChat='$[src]'><: src="">};
OnSize={<: pos=90,pid.height-20>};
>
<style>
.Chattxt:text{
autopos=true;showstyle=3;
pid=ChatList;pos=0,-100;
}
.ActBtn:TextBtn{
autopos=true;
}
</style>
<list name=ChatList;pos=0,20;size=400,160;bkimg=dark(8);
autosubpos=vert(15,3,1,1,20);
Onmsgshow={<: show=1;voffset=0,-8000;paramctrl=loopcmd(1,10000,1,{<: show=0>});>};
></list>
//-----------------------------------
//Auto;Run
#define REGPOS pos=*regstr(%1,%2);OnDestroy#pos={<: regstr(%1)="$[pos]">}
<MCLIENTSOCKET name=mysocket>
<div name=ActBroad;//#(REGPOS,actpos,"10,10");
pos=100,100;
class=dragclass;
size=160,80;bkimg=dark(4);
autosubpos=vert(14,2,2,3,20);
>
<ActBtn src="坐下";Onclick={<:$[&desktop.msgobj] eve=PlayAni,坐,1,0,90>};>
<ActBtn src="踢人";Onclick={<:$[&desktop.msgobj] eve=PlayAni,踢,1,1,80>};>
<ActBtn src="做鬼脸";Onclick={<:$[&desktop.msgobj] eve=PlayAni,鬼脸,3,0,100>};>
<ActBtn src="打耳光";Onclick={<:$[&desktop.msgobj] eve=PlayAni,耳光,1,1,90>};>
<ActBtn src="晕倒";Onclick={<:$[&desktop.msgobj] eve=PlayAni,晕倒,1,0,100>};>
</div>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -