wromfey 发表于 2011-4-28 11:26:12

想研究下MUD源码

请问下各位老大们,刚开始该如何学习呢

前两天试着改了一个skill
是yh2003里的lunhui-jian的hui 共6个连招 想将各连招之间修改成有延迟效果。。。
问了下说要用到call_out函数
改了N久都没改成功 提示载入失败- -
发现稍微复杂的方法根本看不懂- -

请问下是要先学习lpc呢?还是学其他的呢?

jason 发表于 2011-4-28 11:34:31

本版有教程。

wromfey 发表于 2011-4-28 11:35:26

谢谢啦ttk_11

safeguard 发表于 2011-4-28 12:51:52

先把自己下的mud好好玩一遍,各种pfm都吃透之后,
找一个带延迟效果的pfm,照抄就行了

话说我就只知道照抄

seagate 发表于 2011-4-28 13:26:10

好像网上有初级教程和中级教程,这个版里面都有,找找
还有一个是函数大全
LPC Base Tutorial
LPC Intermediates
都有对应的翻译版本。
吃透这三个基本上就差不多了,其他语言之类和c语言也有相通的地方

wromfey 发表于 2011-4-28 13:49:19

非常感谢各位老大们的解答ttk_15

zgbl 发表于 2011-4-28 21:38:33

有延迟的物理pfm,大致这样的结构
int perform(object me, object target)
{
…………
…………
buff_a=……;
buff_b=……;

player->add_temp("apply/attack",buff_a);
player->add_temp("apply/damage",buff_b);

msg="……";

COMBAT_D->do_attack(player,target,weapon,TYPE_REGULAR,msg);

player->add_temp("apply/attack",-buff_a);
player->add_temp("apply/damage",-buff_b);

call_out("perform2",1,player,target);
}

int perform2(object player,object target)
{
…………
…………
buff_a=……;
buff_b=……;

player->add_temp("apply/attack",buff_a);
player->add_temp("apply/damage",buff_b);

msg="……";

COMBAT_D->do_attack(player,target,weapon,TYPE_REGULAR,msg);

player->add_temp("apply/attack",-buff_a);
player->add_temp("apply/damage",-buff_b);

call_out("perform3",1,player,target);
}

int perform3(object player,object target)
{
…………
…………以此类推

seagate 发表于 2011-5-1 19:21:38

lpc里面没有类似sleep(4)这样子的语句确实非常遗憾,以至于要控制时间就得用call_out或者heart_beat

jason 发表于 2011-5-1 22:36:45

原帖由 seagate 于 2011-5-1 07:21 PM 发表 http://pkuxkx.net/forum/images/common/back.gif
lpc里面没有类似sleep(4)这样子的语句确实非常遗憾,以至于要控制时间就得用call_out或者heart_beat

单线程的,不可能允许sleep。如果能引入协程会方便很多。

reallove 发表于 2011-8-8 13:58:05

原帖由 jason 于 2011-5-1 10:36 PM 发表 http://pkuxkx.net/forum/images/common/back.gif


单线程的,不可能允许sleep。如果能引入协程会方便很多。

不会方便的,只会出现各种bug,宕机。
页: [1]
查看完整版本: 想研究下MUD源码