先自我介绍下,我是2009年毕业,大学的时候主要学习mfc,经常看侯杰深入浅出那一本书,后来毕业后找工作,第一份工作香港某汇通有限公司,刚开始的时候是股票行情数据交易,当时那一家公司只有4个技术,老大是一个c#程序员来的,我们当时的老板买来一套代码,里面的代码有8万多行,老板让我改造成港股股票软件,那时候下班经常看代码、了解iocp原理、锁、sqlserver数据存储等,花了半年基本上改造成果上线,上线后维护下服务器、客户端功能,公司的业务方向也比较小,没有一个长远的发展,当时广州某石软件也正在招聘游戏开发。
某石软件用的mudos脚本 游戏服务器采用select模型,代码都是纯c,战斗是c++加上lua,mudos可以把脚本生成二次编码,底层再去调用,也可以去做数据存储,总体来说还是一个不错的脚本,但是框架引擎很老,自己封装list hashmap kmp sort 等基础算法。
战斗的脚本是这样
function Boss1( this, target )
–print( " Derek Test hahahahahahaha!" );
return 0;
end
function Boss2( this, target )
local _ndx = math.abs( this.m_iX - target.m_iX );
local _ndy = math.abs( this.m_iY - target.m_iY );
if ( _ndx > 10 and _ndy > 10 ) then ----10步之外,追踪
return 0;
end
if ( _ndx > 5 and _ndy > 5 ) then ----5---10步之外
if target:CanMove( ) then
Attack( this.m_iOid, target.m_iOid, 0, 0, 3 ); ----如果目标可以移动,将目标定住
return 1;
else ----如果目标不能移动,则靠近目标
return 0;
end
end
return 0;A
end
以下是lpc脚本
void TalkTo()
{
array ay = ({}) ;
object playerObj ;
playerObj = getPlayerOb();
ay += ({EASY_DUNGEON_ID,getDungeonLevel(EASY_SURIVAL_DUNGEON_ID)}) ;
ay += ({HARD_DUNGEON_ID,getDungeonLevel(HARD_SURIVAL_DUNGEON_ID)}) ;
sendClose();
sendSocket( playerObj->get_charid(), ({0x2552,CHALLENGE_UI, 2 , 0 }) , ay );
}
语法更像c++ ,它本事编译成中间脚本,可以加快执行效率