Project1

标题: 请问……给角色取名字的时候可不可以用输入法输入呐? [打印本页]

作者: 萝莉凶残    时间: 2011-11-12 02:42
标题: 请问……给角色取名字的时候可不可以用输入法输入呐?
不太喜欢自带的那个啊
取名字的时候可以不可打字呐?
拜托啦dsu_plus_rewardpost_czw
作者: Sonic1997    时间: 2011-11-12 03:22
  1. #==============================================================================
  2. #  
  3. # ■ Code_Input
  4. #  
  5. #------------------------------------------------------------------------------
  6. #  
  7. #  伪·文字输入框  Version 1.1
  8. #  
  9. #==============================================================================


  10. #==============================================================================
  11. #  
  12. #  伪·文字输入框
  13. #  —— By Defanive
  14. #  
  15. #  能够弹出一个InputBox窗口,输入完成后返回值
  16. #
  17. #  Version 1.1 修正:
  18. #  防止窗口进程被杀导致的游戏卡死
  19. #  
  20. #  目前的缺陷:
  21. #  input参数不支持中文
  22. #  
  23. #------------------------------------------------------------------------------
  24. #  
  25. #  使用:
  26. #  变量 = Input(提示, 标题, 默认值)
  27. #  
  28. #==============================================================================


  29. #==============================================================================
  30. #  API Functions
  31. #==============================================================================

  32. Shell=Win32API.new('kernel32','WinExec','pl','l')
  33. M2w=Win32API.new('kernel32','MultiByteToWideChar','ilpipi','i')
  34. W2m=Win32API.new('kernel32','WideCharToMultiByte','ilpipipp','i')
  35. Find=Win32API.new('user32','FindWindowA','p,p','l')
  36. IsWnd=Win32API.new('user32','IsWindow','l','l')


  37. #==============================================================================
  38. #  Main Function
  39. #==============================================================================

  40. def input(text,title,strs)
  41.   tdir=Dir.getwd+"/input.tmp"
  42.   sname='mshta vbscript:createobject("scripting.filesystemobject").opentextfile("'+tdir+'",2,True).write(inputbox("'+text+'","'+title+'","'+strs+'"))(window.close)'
  43.   Shell.call(sname,1)
  44.   sleep(1)
  45.   hw=Find.call(nil,title)
  46.   while true
  47.     Graphics.update
  48.     break if IsWnd.call(hw)==0
  49.   end
  50.   s=text_conv(File.open(tdir).read)
  51.   return s[0,s.size-1]
  52. end


  53. #==============================================================================
  54. #  Convert Function
  55. #==============================================================================

  56. def text_conv(text)
  57.   len=M2w.call(0,0,text,-1,nil,0)
  58.   buf="\0"*(len*2)
  59.   M2w.call(0,0,text,-1,buf,buf.size/2)
  60.   len=W2m.call(65001,0,buf,-1,nil,0,nil,nil)
  61.   ret="\0"*len
  62.   W2m.call(65001,0,buf,-1,ret,ret.size,nil,nil)
  63.   return ret
  64. end
复制代码
再事件中用脚本
  1. acn=input("Type Your Name","Test","Name")
  2. if not acn==""
  3. $game_actors[1].name=acn
  4. end
复制代码
范例: 伪·文字输入框 Version 1.1 by Defanive.rar (244.94 KB, 下载次数: 797)
作者: 小白玩家    时间: 2011-11-12 11:58
不可以
作者: 萝莉凶残    时间: 2011-11-12 12:39
Sonic1997 发表于 2011-11-12 03:22
再事件中用脚本范例:


运行你的范例,出错了……
作者: Sonic1997    时间: 2011-11-12 13:17
萝莉凶残 发表于 2011-11-11 20:39
运行你的范例,出错了……

为什么呢?
那个范例是我手动生成的,你试一下手动生成input.tmp
现在不在家,很难找出问题所在D~{:nm_2:}
作者: 萝莉凶残    时间: 2011-11-12 14:47
Sonic1997 发表于 2011-11-12 13:17
为什么呢?
那个范例是我手动生成的,你试一下手动生成input.tmp
现在不在家,很难找出问题所在D~{:nm_2: ...

谢谢呐~~
另外……可以教我在哪里可以美化那个输入名字时候弹出来的窗口吗?
作者: Sonic1997    时间: 2011-11-12 15:26
萝莉凶残 发表于 2011-11-11 22:47
谢谢呐~~
另外……可以教我在哪里可以美化那个输入名字时候弹出来的窗口吗? ...

那个嘛~跟你的系统主体一致,因为是窗口




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1