TC官方合作论坛

标题: 睡前求思路 求师傅 [打印本页]

作者: xenolss    时间: 2012-5-21 07:25
标题: 睡前求思路 求师傅
   首先自我介绍..本人31..逻辑思维能力不错...家境良好..家庭美满幸福..无不良嗜好..有点编程基础 很拼命 目前状态1天12个小时以上tc
   学了tc有2个星期了  感觉进步还行    想求一名师傅 !不用占用您多久时间  只要您肯加我qq  有空的时候能解答一下我的问题  以后能出师了必不相忘!希望有意向的大神能留贴回复!
   下面是我要问的问题..
    目前在做一个多线程多开前台的脚本,窗口的控制,线程的循环控制 都做好了  但是有一个很大的问题困扰着我
    比如目前一个窗口在执行 某功能,做到一半这个时候 角色死了 要求从目前的功能从头做起
    如何能比较方便的实现?目前想到的办法 就是开始执行的目前功能的时候 给一个全局变量赋值,表示目前做到这个功能了 死了之后 结束这个线程 重新开启线程 ,然后一步步判断做到目前功能了 表示从这里开始做 ,就实现了
   但是有没有更好的办法呢,我分的功能比较多也很细  如果每个单du循环内的功能 都给这个全局变量赋值  那是一项非常非常麻烦的事,而且很多子功能还是别的空间里的 给这个全局变量赋值还要跨空间传递过来。。。。虽然实现了  但是代码看着太复杂了  有没有好方法或者思路能解决这个问题 求教!

作者: xenolss    时间: 2012-5-21 07:27
睡觉去了 。。。希望起来看到好消息
作者: TC兔子    时间: 2012-5-21 07:50
你要是采纳我了,就可以在17Q群找到我,花子兔,水平有限,不嫌弃的来
作者: xuhekkll    时间: 2012-5-21 07:56
换个思路吧,尽量使角色不要死,并且不是每个功能都会死吧,分分类,也许会好点,这点的确是很麻烦。
作者: ltsi001    时间: 2012-5-21 08:45
菜鸟表示不是很懂,
我的写法是好处理的死亡返回假再次执行该功能。
处理起来麻烦的虚弱原地,
作者: kitty2008du    时间: 2012-5-21 08:49
31岁
我们的年龄差不多大
在TC中算是大龄的了吧!能碰上可不容易。
本人水平有限。如果不弃,可以到15群,联系我,共同交流!
至于你说的思路,我是没有更好的方法!
但你可以用标签试试,其实和你说的全局变量的思路是一样的!
就是设定一个标签,执行到哪个功能的时候就显示在标签上
如果人物死了,哪么读取这个标签就知道执行到哪一步了!
当然,用记事本或者配置文件都是可以的!
不知道这个方法是不是能简化一下你的代码!


作者: ksap787523    时间: 2012-5-21 09:12
回复 6楼kitty2008du的帖子

擦 杜狼你还水平有限啊

杜狼 做我师父吧 平时基本不打扰的 偶尔问问 昊哥说你都是牛逼的存在啊

作者: tyuyan    时间: 2012-5-21 09:30
用全局变量为判断,应该也算是简单的拉!  目前我也没发现好的方法,呵呵
作者: xj_51love    时间: 2012-5-21 10:14
不用开启多个线程 简单的给你说下吧
namespace 挂机
bool 全局控制 人物死亡

function bool 开始挂机()//////////////////入口
全局控制=true
while(全局控制)
    if(人物死亡==true)
        挂机.死亡处理
  endif
    挂机.打怪()
endwhile
return true
endfunction

functioan bool 打怪()
if(那个条件成立)
    人物死亡=true
endif
renturn true
endfunction

functioan bool 死亡处理()
if(那个条件成立)
    人物死亡=false
endif
renturn true
endfunction

functioan bool 开启线程()
    thread.beginthread("挂机.开始挂机","")
rentutn true
endfunction

functioan bool 结束()
  全局控制=false
rentutn true
endfunction
endnamespace
作者: 灬澄澄丶    时间: 2012-5-21 10:33
TC巨头都出来了,我这菜鸟就不说了,狼兄说的标签还是不错的!我也是用这个!水平有限想不到更好的了!呵呵
作者: 花开花落    时间: 2012-5-21 11:07
来看看  。。 学习下 。
作者: 战斗之神    时间: 2012-5-21 11:33
学习了哦
作者: 无处藏身    时间: 2012-5-21 12:11
瓜瓜的建议不错.
作者: sc2908    时间: 2012-5-21 13:17
回复 1楼xenolss的帖子

楼主 做征途2的么!
作者: 战地之王    时间: 2012-5-21 13:58
  看看。 来学习
作者: TakeBobo    时间: 2012-5-21 14:29
来看看
作者: 无情的冷风    时间: 2012-5-21 14:53
过来混点经验啊
作者: xenolss    时间: 2012-5-21 16:19
回复 6楼kitty2008du的帖子

谢谢 杜狼老大的热心回复 我正好在15群里 想拜您为师!
标签比全局要方便一点,起码不用跨空间传递了
作者: xenolss    时间: 2012-5-21 16:20
回复 4楼xuhekkll的帖子

谢谢瓜瓜的热心回复  基本除了单du偶尔进的副本  其他地方都能死  没有安全区这个概念。。
游戏是征途2  看来只能写一步做一次标签了
作者: xenolss    时间: 2012-5-21 16:25
回复 5楼ltsi001的帖子

因为游戏内的功能太多了  如果每个功能都写入死亡判断。。。很伤 包括一次点击npc 对话框 如果被人杀了 你都要从找npc开始执行 刺探全程那么多对话  如果安全一次  就要从头开始。。这个代码里要写的死亡判断太多了
我是用检测线程检测的死亡状态  如果必须要安全 就直接从目前这个功能的从头开始执行 这样可能会方便点!
作者: xenolss    时间: 2012-5-21 16:27
回复 3楼TC兔子的帖子

谢谢 兔子前辈的关照!我正好在15群里  杜狼老大和我年龄相仿 我先选择他了 不是嫌弃 请多见谅!
作者: xenolss    时间: 2012-5-21 16:36
回复 9楼xj_51love的帖子

感谢这位前辈的指点
我开多线程不是为了控制 这个死亡判断的
单一窗口的单一任务功能是一个线程执行的  但是该线程里有一系列任务
你这样写的我能明白是什么意思
但是我需要的是
function bool 开始挂机()//////////////////入口
全局控制=true
while(全局控制)
    if(人物死亡==true)
        挂机.死亡处理
  endif
    挂机.打怪()
   ------任务1()
   ------任务2()
endwhile

这样  任务1完了 执行任务2   但是任务2死了 要从任务2开始执行
所以还是要引入标签或者全局来做个标记
return true
endfunction
作者: xenolss    时间: 2012-5-21 16:37
回复 14楼sc2908的帖子

一起努力
作者: yvyan    时间: 2012-5-21 16:41
励志贴啊
作者: xenolss    时间: 2012-5-21 16:42
回复 8楼tyuyan的帖子

其实用全局还是前辈在前面的帖子指点我的





欢迎光临 TC官方合作论坛 (http://bbs.52tc.co/) Powered by Discuz! X3.1