法律求助网脚本函数,检查目标武功等级函数用哪一个

已知未来,你知道读取施法者等级的脚本是哪个吗?_无冬之夜吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0可签7级以上的吧50个
本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:16,836贴子:
已知未来,你知道读取施法者等级的脚本是哪个吗?
原来我一直以为getcasterlevel就是这个,没想到一直误会了,这个是施法者的个人等级 听你说过可以按施法者的法师等级取得脚本是哪个?我一直没试出来,谢谢!
陈思成在佟丽娅孕期出轨
2017年第1个火遍网络的...
2016年各家卫视以及网播...
感受指尖上的自然世界
一个视频看懂药娘的世界...
吐槽奇葩室友
北美票房榜吧出品的精品...
作为单纯的书迷的你,是...
三途河畔鬼话生,青梅煮...
爱上宇宙,爱上宇宙吧
杨紫秦俊杰恋情曝光
一晃眼小学生们都开始放...
上海张学友、王菲演唱会一站式购票!票品安全且真票!立即订购!
getcasterlevel在无冬2中影响因素多了几个,法师不选法术相关专长的话应该就是同角色职业等级。但前提是你在法术脚本中用,非法术释放脚本使用这个函数取得值不可预知。或者你的意思不是这个?
呜呼,有点困,先躺下...
回复:2楼就是在法术中作判定,这个函数的缺陷(可能的)是判定“施法”者的等级,而不是“施法者”的等级。 也就是说我一个20级的法师和2级法师/18级,甚至2级法师/2级诗人/14级战士/2级武僧得出的结果都是一样的。都是20 判断施法者等级结果被兼职人物吃瘪的委屈感。
我困死了...
回复:4楼这个函数只有在法术脚本中,也就是标准的法术*_s?_*脚本中才会发挥效果,官方法术取施法者等级也是这个,比如上次那个创造高级不死生物,10级牧师10级战场祭司如果采用GetCharacterLevel(oCaller)作为传入升级函数的参数,那么召唤的就是20级吸血鬼;而使用GetCasterLevel(oCaller)作为传入参数的话,召唤的是19级吸血鬼。该函数在法术脚本中运作的效果是获取所施展法术来源(哪个职业施放的)的施法者等级,而在非法术脚本中,计算方式则不一样,甚至是不可预料的。所以我怀疑,你所说出问题的脚本所属的类型不对,并没有设置成法术,或者法术脚本中某函数受到了重复调用。建议给出代码,以及脚本名以判断。回复:5楼我去,狂暴你没睡@.@?
其实实在不行自己写一个也成吧,这个应该不难。还能去掉官方的那个+施法者等级feat 的bug
顺便膜拜一宿没睡的狂暴。我才22,现在1点都熬不到。
回复:8楼我发现越年轻越容易打瞌睡……我读小学时,每天必须睡11个小时;中学的时候,10个小时;大学,8小时;工作,6小时。
等你们搞定,我就借用……哈哈,把施法者等级改了……
创为律师维权拆迁是要企业拆迁的被拆迁人越拆越富,提供便捷的维权服务
检定下各个职业都是多少级,然后返回那几个施法职业的∑等级再算上feat 不就成了?没用过toolset ,轻砸……
9楼,好吧好吧,你厉害
回复:14楼有,这个不是难点,可以模拟,难的是魔抗鉴定,这瓜娃子是Hardcoded内容,当然我说的是无冬1,2的话不清楚情况。其它都好模拟,但魔法吸收类型必须用系统函数,因为只有这个函数才能和魔法吸收相互作用。
楼上说的没看明白。又不是要写一个法术。只是要算cl。既然能知道是哪本法术书出来的,cl 就知道了,然后传递给法术就成了呗。其他的就是法术函数需要考虑的了…
魔抗函数的传递参数只有两个,攻击者,防御者。具体你进TS就知道问题了。
回复:18楼对,要模拟不是不行,但是要对效果比如Spell Mantle作出反馈就必须用这个函数,然而函数ResistSpell()只要使用就会有反馈,反馈按照默认情况成功、失败、吸收、免疫的情况。所以prc的魔法抵抗反馈是两行,一行废的,另一行才是模拟的实际效果。
最前面的“反馈”指魔法吸收等级的消耗,后面的指返回给PC的信息。
天啊…那游戏自己是怎么处理魔抗问题啊?
那要是自己写个魔抗函数,我记得c++面向对象是不是有个功能说把你写的函数替代游戏原函数,好像叫函数重载是吧?
回复:22楼这是伪C... 长的像而已... 回复:23楼恩,其它都好说,就是反馈的文字看不顺眼试想下,一个法术丢过,两行信息提示:xxx:尝试Resist魔法:成功xxx:尝试Resist魔法:失败这算什么
那无冬到底是解释执行还是编译执行啊?
恩,24楼提出的方法挺好的啊~两行信息,无视前一个就成了。
不清楚,也不重要。
回复:26楼如果我的习惯是无视的话,就不会花大力气用string sString = GetStringByStrRef(63251);string sName = GetName(OBJECT_SELF);sName = StringParse(sString, "&") + sName + StringParse(sString, "&", TRUE);SendMessageToPC(oMaster, sName);代替SendMessageToPC(oMaster, GetStringByStrRef(63251));了。
饿……虽然不清楚那俩函数到底是啥作用。不过大概猜明白怎么事了。话说那个prase的函数到底传递几个参数啊?第三个参数有没有都成?
// FILE: x3_inc_string
FUNCTION: StringParse()//// This function will parse sSource from left to right until it encounters// sDelimiter and will return all the characters it encountered before// the delimiter occurred.// If bRightToLeft is set to TRUE then it will parse from right to left instead.string StringParse(string sSource, string sDelimiter = " ", int bRightToLeft = FALSE)部分函数为了方便保留缺省值,本例中是默认左起,bRightToLeft为TRUE则右起。开Toolset的Script Editor可以在Function中查看语法说明。附加的头文件inc内部也有语法说明,比如这个就是包含于x3_inc_string的函数。
贴吧热议榜
使用签名档&&
保存至快速回贴fatcat1205
& &学习一下!
UID1564204&帖子1&精华0&积分402&资产402 信元&发贴收入5 信元&推广收入0 信元&附件收入0 信元&下载支出38 信元&阅读权限20&在线时间7 小时&注册时间&最后登录&
学习了,谢谢
[通过 QQ、MSN 分享给朋友]
TI信号链专区正式上线,欢迎访问!博客访问: 3347793
博文数量: 1037
博客积分: 12070
博客等级: 上将
技术积分: 11399
注册时间:
IT168企业级官微
微信号:IT168qiye
系统架构师大会
微信号:SACC2013
& 在shell中定义函数可以使代码模块化,便于复用代码。不过脚本本身的变量和函数的变量的作用域问题可能令你费解,在这里梳理一下这个问题。
(1)Shell脚本中定义的变量是global的,其作用域从被定义的地方开始,到shell结束或被显示删除的地方为止。
例1:脚本变量的作用域#!/bin/bash#define the function ltx_funcltx_func(){&& echo $v1&& #modify the variable v1&& v1=200 }#define the variable v1v1=100#call the function ltx_funcltx_funcecho $v1
结果:100200解析:脚本变量v1的作用域从被定义的地方开始,到shell结束。调用函数ltx_func的地方在变量v1的作用域内,所以能够访问并修改变量v1。
(2)Shell函数定义的变量默认是global的,其作用域从“函数被调用时执行变量定义的地方”开始,到shell结束或被显示删除处为止。函数定义的变量可以被显示定义成local的,其作用域局限于函数内。但请注意,函数的参数是local的。
例2:函数定义的global变量#!/bin/bash#define the function ltx_funcltx_func(){&& #define the variable v2&& v2=200 }#call the function ltx_funcltx_funcecho $v2
结果:200解析:函数变量v2默认是global的,其作用域从“函数被调用时执行变量定义的地方”开始,到shell结束为止。注意,不是从定义函数的地方开始,而是从调用函数的地方开始。打印命令在变量v2的作用域内,所以能够访问变量v2。
例3:函数定义的local变量#!/bin/bash#define the function ltx_funcltx_func(){&& #define the local variable v2&& local v2=200 }#call the function ltx_funcltx_funcecho $v2
结果:(空)解析:函数变量v2显示定义为local的,其作用域局限于函数内。打印命令在函数外,不在变量v2的作用域内,所以能够不能访问变量v2。
例4:函数参数是local变量#!/bin/bash#define the function ltx_funcltx_func(){&& echo "param 1: $1"}#call the function ltx_funcltx_func 100
结果:100解析:函数参数是local的,通过位置变量来访问。打印命令输出函数的第一个参数。
(3)如果同名,Shell函数定义的local变量会屏蔽脚本定义的global变量。
例5:同名local变量屏蔽global变量#!/bin/bash#define the function ltx_funcltx_func(){&& echo $v1&& #define the local variable v1&& local v1=200 && echo $v1}#define the global variable v1v1=200 #call the function ltx_funcltx_funcecho $v1
结果:100200100解析:global变量v1的作用域从被定义的地方开始,到shell结束。调用函数ltx_func的地方在变量v1的作用域内,所以能够变量v1。函数又定义了同名的local变量v1,同名local变量屏蔽global变量,所以函数第二次打印访问的是local变量。退出函数后再次打印v1,此时函数定义的local变量已经消失,访问的是global变量。
阅读(2848) | 评论(0) | 转发(0) |
相关热门文章
给主人留下些什么吧!~~
请登录后评论。100659人阅读
Android(6)
这是系统来运行updater-scripts中的函数介绍。
函数都是的Edify语言,当调用这些函数结束的时候,会返回数据给脚本。当然,你也可以使用这些函数的返回值来确认成功与否,例如:
ifelse(mount(&yaffs2&, &MTD&, &system&, &/system&) == &system&, ui_print(&Successfully Mounted!&), ui_print(&Mount Failed!&);
这个命令会尝试去挂载命名为“system”的“MTD”分区到“/system”。如果挂载成功,脚本会显示“Successfully Mounted!”,否则会显示“Mount
Failed!”。
现面是用在Edify的updater-script中的函数例子:
函数名称: mount
函数语法: mount(fs_type, partition_type, location, mount_point)
参数详解: fs_type-----------------&yaffs2&或 &ext4&
partition_type----------&MTD& 或 &EMMC&
location-----------------分区(partition)或
驱动器(device)
mount_poin------------挂载文件系统的目标文件夹(target folder to mount FS)
挂载一个文件系统到指定的挂载点
返回值:挂载成功则返回挂载点,失败返回null
函数示例: mount(&MTD&, &system&, &/system&);挂载system分区,设置返回指针&/system”
mount(&vfat&, &/dev/block/mmcblk1p2&, &/system&); 挂载/dev/block/mmcblk1p2,返回指针&/system”
函数名称: is_mounted
函数语法: is_mounted(mount_point)
参数详解: mount_point-----------字符串,检查是否已经挂载的挂载点
检查文件系统是否挂载
返回值:挂载成功则返回挂载点,失败返回null
函数名称: unmount
函数语法: unmount(mount_point)
参数详解: mount_point-----------字符串,要解除挂载的挂载点
解除文件系统挂载
返回值:解除挂载成功则返回挂载点,失败返回null
unmount(&/system&); 卸载/system分区
函数名称: format
函数语法: format(fs_type, partition_type, location)
参数详解: fs_type-----------------字符串,数据为&yaffs2&或 &ext4&
partition_type----------字符串, &MTD&或 &EMMC&
location-----------------字符串,分区(partition)
或驱动器(device)
格式化为指定的文件系统
format(&MTD&, &system&);格式化system分区
函数名称: delete
函数语法: delete(file1, file2, ..., fileN)
字符串,要删除的文件
删除一个文件。最少指定一个文件;多个文件可以做为多个参数指定
delete(&/data/zipalign.log&);删除文件/data/zipalign.log
函数名称: delete_recursive
函数语法: delete_recursive(dir1, dir2,...,dirN)
字符串,要递归删除的目录
删除文件夹及其包含的所有内容。最少指定1个目录;多个目录可以做为多个参数指定
delete_recursive(&/data/dalvik-cache&);删除文件夹/data/dalvik-cache
函数名称: show_progress
函数语法: show_progress(frac, sec)
参数详解: frac----------------------进度完成数值
Sec----------------------总秒数
显示在Recovery系统中进度
show_progress(0.1, 10);show_progress下面的操作可能进行10s,完成后进度条前进0.1(也就是10%)
函数名称: set_progress
函数语法: set_prograss(frac)
参数详解: frac---------------------进度数值
函数名称: package_extract_dir
函数语法: package_extract_dir(package_path, destination_path)
参数详解: package_path----------字符串,升级包内要提取的目录
destination_path--------字符串,提取文件的目标目录
提取升级包内目录中的所有文件到指定的目标目录
package_extract_dir(&system&, &/system&);释放ROM包里system文件夹下所有文件和子文件夹至/system
函数名称: package_extract_file
函数语法: package_extract_file(package_path)或 package_extract_file(package_path, destination_path)
参数详解: package_path----------字符串,升级包内要提取的文件
destination_path-------字符串,提取文件的目标目录
提取升级包内的单个文件到指定的目标目录
package_extract_file(&my.zip&, &/system&);解压ROM包里的my.zip文件至/system
函数名称: file_getprop
函数语法: file_getprop(file, key)
参数详解: file----------------------字符串,要检查的文件名
Key----------------------字符串,返回数据中的文件的键名字
在格式&key&=&value&的文件中取得文件属性值
函数名称: symlink
函数语法: symlink(target, src1, src2, ..., srcN)
参数详解: target-------------------字符串,符号链接的目标
srcX& && & ---------------------字符串,要创建的符号链接的目标点
在创建新的符号链接之前,要断开已经存在的符号链接
symlink(&toolbox&, &/system/bin/ps&);建立指向toolbox的符号链接/system/bin/ps
函数名称: set_perm
函数语法: set_perm(uid, gid, mode, file1, file2, ..., fileN)
参数详解: uid----------------------用户ID(user id)
Gid----------------------用户组ID(group id)
Mode--------------------权限模式(permission mode)
fileX---------------------要设置许可的文件(file to set permission on)
设置单个文件或一系列文件的权限,最少指定1个文件,前4个参数是必须的
函数示例: set_perm(0,, &system/etc/init.goldfish.sh&);设置手机system中的etc/init.goldfish.sh的用户为root,用户组为shell,所有者以及所属用户组成员可以进行读取和执行操作,其他用户无操作权限)
这里0代表用户为root
2000代表用户组为shell
我们来说明0550这组数据,这组数据的最后三位550,分别代表“所有者\组用户\其他用户”的权限,也就是我们在RE管理中“用户\群组\其他”三行。我们以XXX来表示这三组权限,其中:
×=4 读的权限
×=2 写的权限
×=1 执行的权限
我们必须首先了解用数字表示的属性的含义:0表示没有权限,1表示可执行权限,2表示可写权限,4表示可读权限,然后将其相加。所以数字属性的格式应为3个从0到7的八进制数。
例如,如果想让某个文件的属主有&读/写&二种权限,需要把4(可读)+2(可写)=6(读/写)。若要rwx属性则4+2+1=7;若要rw-属性则4+2=6;若要r-x属性则4+1=5。
常用修改权限的命令:
Set_perm 0 0 0600 ××× (只有所有者有读和写的权限)
Set_perm 0 0 0644 ××× (所有者有读和写的权限,组用户只有读的权限)
Set_perm 0 0 0700 ××× (只有所有者有读和写以及执行的权限)
Set_perm 0 0 0666 ××× (每个人都有读和写的权限)
Set_perm 0 0 0777 ××× (每个人都有读和写以及执行的权限)
函数名称: set_perm_recursive
函数语法: set_perm_recursive(uid, gid, dirmode, filemode, dir1, dir2, ...dirN)
参数详解: uid----------------------用户ID(user id)
Gid----------------------用户组ID(group id)
Dirmode----------------指定目录内的目录的权限
Filemode---------------指定目录内的文件的权限
dirX---------------------要设置权限的目标
设置单个目录或一系列目录的里面的所有文件的权限,最少指定1个目录,5个参数都是必须的
函数示例: set_perm_recursive 0 0
SYSTEM:app;设置手机system/app文件夹及其中文件的用户为root,用户组为root,app文件夹权限为所有者可以进行读、写、执行操作,其他用户可以进行读取和执行操作,其中的文件的权限为所有者可以进行读写操作,其他用户可以进行读取操作
函数名称: getprop
函数语法: getprop(key)
参数详解: key---------------------字符串,想要系统返回的属性
这个函数是用来返指定的属性的值。它是用来从build.props文件中查询手机的信息的。
函数名称: write_raw_image
函数语法: write_raw_image(file, partition)
参数详解: file----------------------字符串,要读取的Img源文件
Partition-----------------字符串,要写入Img文件的目标分区
这个函数是用来写Img文件到分区
write_raw_image(&/tmp/boot.img&, &boot&)将yaffs2格式的boot包直接写入boot分区
函数名称: apply_patch
函数语法: apply_patch(srcfile, tgtfile, tgtsha1, tgtsize, sha1_1, patch_1, ..., sha1_x, patch1_x)
参数详解: srcfile-------------------字符串,要打补丁的源文件(要读入的文件)
Tgtfile-------------------字符串,补丁文件要写入的目标文件
tgtsha1-----------------字符串,写入补丁文件的目标文件的sha1哈希值
sha1_x------------------字符串,要写入目标文件的补丁数据的sha1哈希值
patch1_x----------------字符串,实际上应用到目标文件的补丁
这个函数是用来打补丁到文件。
函数名称: apply_patch_check
函数语法: apply_patch_check(file, sha1_1, ..., sha1_x)
参数详解: file----------------------字符串,要检查的文件
sha1_x------------------要检查的哈希值
检查文件是否已经被打补丁,或者能不能被打补丁。需要检查“applypatch_check
”函数调用的源代码。
函数名称: apply_patch_space
函数语法: apply_patch_space(bytes)
参数详解: bytes-------------------检查的字节的数字
检查缓存来确定是否有足够的空间来写入补丁文件并返回一些数据。
函数名称: read_file
函数语法: read_file(filename)
参数详解: filename----------------字符串,要读取内容的文件名
这个函数返回文件的内容
函数名称: sha1_check
函数语法: sha1_check(data)或 sha1_check(data, sha1_hex, ..., sha1_hexN)
参数详解: data---------------------要计算sha1哈希值的文件的内容-必须是只读文件格式
sha1_hexN--------------文件数据要匹配的特定的十六进制sha1_hex哈希值字符串
如果只指定data参数,这个函数返回data参数的十六进制sha1_hex哈希值字符串。其他参数用来确认你检查的文件是不是列表中的哈希值的一个。它返回匹配的哈希值,或者在没有匹配任何哈希值时返回空。
函数名称: ui_print
函数语法: ui_print(msg1, ..., msgN)
参数详解: msg----------------------字符串,要处理过程中输出给用户的信息
在脚本运行的时候,在控制台显示的信息。最少要指定1个参数,你可以指定额外的msg参数,并且它们会连接起来输了
函数示例: ui_print(&It's
ready!&);屏幕打印It's ready!
函数名称: run_program
函数语法: run_program(prog, arg1, .., argN)
参数详解: prog--------------------字符串,要执行的程序
argN--------------------字符串,要执行的程序的运行参数
以指定的参执行程序
run_program(&/system/xbin/installbusybox.sh&);运行installbusybox.sh脚本文件
函数名称: ifelse
函数语法: ifelse(condition, truecondition, falsecondition)
参数详解: condition----------------要运算的表达式
Truecondition-----------当值为True时执行的 Edify脚本块
Falsecodnition-----------当值为False时执行的 Edify脚本块
这是If-then结构的 Edify脚本语言。在真条件或非条件下语句可以是单条Edify命令或者脚本块。脚本块可以用圆括号来界定,用分号来隔开。
函数名称: abort
函数语法: abort()
中止脚本执行
函数名称: assert
函数语法: assert(condition)
参数详解: condition---------------boolean
如果condition参数的计算结果为False,则停止脚本执行,否则继续执行脚本
函数示例: assert(package_extract_file(&boot.img&,&/tmp/boot.img&),write_raw_image(&/tmp/boot.img&,&boot&),delete(&/tmp/boot.img&))
执行package_extract_file,如果不返回错误则执行write_raw_image,如果write_raw_image不出错则执行delete
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
积分:5026
积分:5026
排名:第4387名
原创:48篇
评论:88条
阅读:665491
(1)(1)(1)(1)(1)(1)(1)(4)(9)(10)(15)(3)

我要回帖

更多关于 求助大神这是什么歌 的文章

 

随机推荐