广告广告
  加入我的最爱 设为首页 风格修改
首页 首尾
 手机版   订阅   地图  繁体 
您是第 3337 个阅读者
 
<< 上页  1   2   3  下页 >>(共 3 页)
发表文章 发表投票 回覆文章
  可列印版   加为IE收藏   收藏主题   上一主题 | 下一主题   
a7811311622 手机
个人头像
个人文章 个人相簿 个人日记 个人地图
特殊贡献奖 优秀管理员勋章 社区建设奖
头衔:我…在工作了…我…在工作了…
版主
级别: 版主 该用户目前不上站
版区: CS提问区
推文 x771 鲜花 x2152
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

下面是引用 chuchung712 于 2010-07-16 19:43 发表的 : 到引言文
原来如此... = =
那么
复制程式
RegisterHam(Ham_Weapon_PrimaryAttack, weapon_classname[i], "fw_WeapPriAttack")

这个会回传玩家ID值吗?
要分辨也不懂 = =

另外为什么要 new i = 1 而不new id = 1 ?

还有上面HAM那个
到了public 里又要ID吗

好像问太多了...... = =

RegisterHam(Ham_Weapon_PrimaryAttack, "weapon_???", "fw_WeapPriAttack")
回传值并不是只有ID这么单纯…这段回传的内容有点复杂…
「fw_WeapPriAttack(weapon)」里的回传值"weapon"其中的内容包括了武器属名…
例如"weapon_knife"…就算是同样武器…但是所持有的玩家ID值也不同…
所以"weapon"也回传了玩家ID值…但是在这段forward里取得玩家ID值是要用特殊写法:
复制程式
 
 static id 
 id = pev(weapon, pev_owner) 

这段的用意是「取得该武器的持有者ID值」…而这时「持有者ID值」=「玩家ID值」…
所以此时的ID值是这样取得的…

为何要用「new i = 1」…因为有时你的loop所在的forward里面已经定义了"id"参数来
回传玩家ID值…所以为了不互相冲突而假设成"i"…
当然…因为还是个取得玩家ID值的loop…
所以其中一个"i"所取得的玩家ID值会和"id"所取得的玩家ID值相同…
此时就依照需求来判断是否要让「id == i」的情况留下或是排除来达到这loop的目的…



尚无签名,欢迎 [新增个性化签名]
献花 x0 回到顶端 [10 楼] From:台湾中华电信 | Posted:2010-07-16 22:50 |
Rubbish-Nec 手机 会员卡
个人头像
个人文章 个人相簿 个人日记 个人地图
特殊贡献奖 社区建设奖 优秀管理员勋章 特殊贡献奖-2
小有名气
级别: 小有名气 该用户目前不上站
推文 x214 鲜花 x701
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

下面是引用 [AHK]XXX 于 2010-07-15 18:07 发表的 : 到引言文
能解释一下吗@@

依我看来的白目解释是:

survivor_fail()
{
  for (new id = 1; id <= 32; id++) // 新增一个『ID』代表全部人
  {
      if (!is_user_connected(id) || !is_user_alive(id))  // 如果『ID』已连线、还没有死就下去
          continue;    

      if (cs_get_user_team(id) == CS_TEAM_CT) // 如果『ID』是CT
      {
        user_kill(id,0)  // 干掉他
      }
  }
  remove_task(TASK_AMBIENCE_SOUND)
  remove_task(TASK_BOSS_AMBIENCE_SOUND)
  StopSound(0)
  PlaySound(0, SOUND_SURVIVOR_FAIL)
}


已成过去的中二少年。
献花 x0 回到顶端 [11 楼] From:没有资料 | Posted:2010-07-16 23:39 |
chuchung712 会员卡
个人头像
个人文章 个人相簿 个人日记 个人地图
特殊贡献奖 社区建设奖 优秀管理员勋章 特殊贡献奖-2
知名人士
级别: 知名人士 该用户目前不上站
推文 x774 鲜花 x1169
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

回a78大:
那为什么大神的recoil插件要有那Loop?

复制程式
       for (new i = 0; i < sizeof weapon_classname; i++)
       {
              if (strlen(weapon_classname[i]) == 0)
                     continue;
              
              formatex(cvar_string, charsmax(cvar_string), "weap_%s_recoil", weapon_classname[i][7])
              g_weap_recoil[i] = register_cvar(cvar_string, weapon_recoil[i])
              
              RegisterHam(Ham_Weapon_PrimaryAttack, weapon_classname[i], "fw_WeapPriAttack")
              RegisterHam(Ham_Weapon_PrimaryAttack, weapon_classname[i], "fw_WeapPriAttack_Post", 1)
       }

很复杂 >_<


没有理想的世界
献花 x0 回到顶端 [12 楼] From:香港有线宽频 | Posted:2010-07-17 12:00 |
a7811311622 手机
个人头像
个人文章 个人相簿 个人日记 个人地图
特殊贡献奖 优秀管理员勋章 社区建设奖
头衔:我…在工作了…我…在工作了…
版主
级别: 版主 该用户目前不上站
版区: CS提问区
推文 x771 鲜花 x2152
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

下面是引用 chuchung712 于 2010-07-17 12:00 发表的 : 到引言文
回a78大:
那为什么大神的recoil插件要有那Loop?
复制程式
 
       for (new i = 0; i < sizeof weapon_classname; i++) 
       { 
              if (strlen(weapon_classname[i]) == 0) 
                     continue; 
               
              formatex(cvar_string, charsmax(cvar_string), "weap_%s_recoil", weapon_classname[i][7]) 
              g_weap_recoil[i] = register_cvar(cvar_string, weapon_recoil[i]) 
               
              RegisterHam(Ham_Weapon_PrimaryAttack, weapon_classname[i], "fw_WeapPriAttack") 
              RegisterHam(Ham_Weapon_PrimaryAttack, weapon_classname[i], "fw_WeapPriAttack_Post", 1) 
       } 

很复杂 >_<

因为「RegisterHam(Ham_Weapon_PrimaryAttack…)」这段指定的武器只能用一把…
所以才会在前面先用个Array列出所以武器的名称:

// Weapons calssname
new const weapon_classname[][] = { "", "weapon_p228", "", "weapon_scout", "", "weapon_xm1014", "", "weapon_mac10",  "weapon_aug", "", "weapon_elite", "weapon_fiveseven", "weapon_ump45", "weapon_sg550", "weapon_galil", "weapon_famas",  "weapon_usp", "weapon_glock18", "weapon_awp", "weapon_mp5navy", "weapon_m249", "weapon_m3", "weapon_m4a1",  "weapon_tmp", "weapon_g3sg1", "", "weapon_deagle", "weapon_sg552", "weapon_ak47", "", "weapon_p90" }

而大神那段的loop目的是让用写一次「RegisterHam」就读取完全部的武器…
不然如果那段不用个loop的话就会变成每把武器都要写一次「register_cvar」和「RegisterHam」:
复制程式
 
register_cvar("weap_p228_recoil", "-1.0") 
RegisterHam(Ham_Weapon_PrimaryAttack, "weapon_p228", "fw_WeapPriAttack", 1) 

register_cvar("weap_scout_recoil", "-1.0") 
RegisterHam(Ham_Weapon_PrimaryAttack, "weapon_scout", "fw_WeapPriAttack", 1) 

‧ 
‧ 
‧ 

那不是很繁杂吗…?所以才会用个loop来读取…

至于为何loop里会有个「if (strlen(weapon_classname[ i ]) == 0) continue; 」是因为
「weapon_classname[][]」这个Array里面有些是空值「""」…但是这读取并无意义…
所以用这段假设来略过这些空值…

而「formatex(cvar_string, charsmax(cvar_string), "weap_%s_recoil", weapon_classname[ i ][7])」
这段的目的是将武器的名称读取出来…因为字串是可以用Array读取的…
所以「weapon_classname[ i ][7]」这个假设就是读取字串位置用的…而字串对上的Array位置如下:
weapon_
0123456
「weapon_classname[ i ][0]」对应「w」…「weapon_classname[ i ][1]」对应「e」…以此类推…
所以想读取武器名称时自然是从「weapon_classname[ i ][7]」开始读取后面的字串…


[ 此文章被a7811311622在2010-07-17 13:54重新编辑 ]


尚无签名,欢迎 [新增个性化签名]
献花 x0 回到顶端 [13 楼] From:台湾中华电信 | Posted:2010-07-17 13:48 |
chuchung712 会员卡
个人头像
个人文章 个人相簿 个人日记 个人地图
特殊贡献奖 社区建设奖 优秀管理员勋章 特殊贡献奖-2
知名人士
级别: 知名人士 该用户目前不上站
推文 x774 鲜花 x1169
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

喔~

我明白了.......

即是如果只指定一个武器就不用loop了

辛苦大大了~   表情


话说可再问一个问题吗
set_pev(owner, pev_punchangle, Float:{0.0, 0.0, 0.0})
以上后座力设定指令...
那一个才是倍数?


没有理想的世界
献花 x0 回到顶端 [14 楼] From:香港有线宽频 | Posted:2010-07-17 14:47 |
a7811311622 手机
个人头像
个人文章 个人相簿 个人日记 个人地图
特殊贡献奖 优秀管理员勋章 社区建设奖
头衔:我…在工作了…我…在工作了…
版主
级别: 版主 该用户目前不上站
版区: CS提问区
推文 x771 鲜花 x2152
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

下面是引用 chuchung712 于 2010-07-17 14:47 发表的 : 到引言文
喔~

我明白了.......

即是如果只指定一个武器就不用loop了

辛苦大大了~   表情


话说可再问一个问题吗
set_pev(owner, pev_punchangle, Float:{0.0, 0.0, 0.0})
以上后座力设定指令...
那一个才是倍数?

这样是单纯的不让画面晃动而造成的无后座力效果…
严格来说那三个"0.0"目前并不算是倍数…只是个定值而已…
至于倍数的写法…大略举例如下:
复制程式
 
 static Float:punchangle[3] // 假设Array 
 pev(owner, pev_punchangle, punchangle) // 将画面的角度导入假设的Array中 
 punchangle[0] *= 1.0 // 倍数 
 punchangle[1] *= 1.0 // 倍数 
 punchangle[2] *= 1.0 // 倍数 
 /* 
 如果觉得倍数的写法三行太啰唆想缩短成一行的话就用个loop 
 for (new i = 0;i <= 2;i++) punchangle[ i ] *= 1.0 
 */ 
 set_pev(owner, pev_punchangle, punchangle) // 将改变后的数值回传 

这样才算是倍数…如果直接输入数值就不算是倍数了…


尚无签名,欢迎 [新增个性化签名]
献花 x0 回到顶端 [15 楼] From:台湾中华电信 | Posted:2010-07-17 21:11 |
chuchung712 会员卡
个人头像
个人文章 个人相簿 个人日记 个人地图
特殊贡献奖 社区建设奖 优秀管理员勋章 特殊贡献奖-2
知名人士
级别: 知名人士 该用户目前不上站
推文 x774 鲜花 x1169
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

这样是单纯的不让画面晃动而造成的无后座力效果…
因此实际上仍有后座力?!

严格来说那三个"0.0"目前并不算是倍数…只是个定值而已…
至于倍数的写法…大略举例如下:
复制程式  
static Float:punchangle[3] // 假设Array
pev(owner, pev_punchangle, punchangle) // 将画面的角度导入假设的Array中
punchangle[0] *= 1.0 // 倍数
punchangle[1] *= 1.0 // 倍数
punchangle[2] *= 1.0 // 倍数
/*
如果觉得倍数的写法三行太啰唆想缩短成一行的话就用个loop
for (new i = 0;i <= 2;i++) punchangle[ i ] *= 1.0
*/
set_pev(owner, pev_punchangle, punchangle) // 将改变后的数值回传
这样才算是倍数…如果直接输入数值就不算是倍数了…
看上去好像跟14楼的指令差不多 = ="

话说14楼的是从ZP无后座M4抽出的 表情


没有理想的世界
献花 x0 回到顶端 [16 楼] From:香港有线宽频 | Posted:2010-07-18 11:23 |
a7811311622 手机
个人头像
个人文章 个人相簿 个人日记 个人地图
特殊贡献奖 优秀管理员勋章 社区建设奖
头衔:我…在工作了…我…在工作了…
版主
级别: 版主 该用户目前不上站
版区: CS提问区
推文 x771 鲜花 x2152
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

下面是引用 chuchung712 于 2010-07-18 11:23 发表的 : 到引言文
因此实际上仍有后座力?!


看上去好像跟14楼的指令差不多 = ="

话说14楼的是从ZP无后座M4抽出的 表情

如果真的没后座力的话…
为何调成无后座力时子弹没法一直准确的命中在准心中心点…?

如果真的和14楼的差不多…你倒是可以试试
「set_pev(owner, pev_punchangle, Float:{1.0, 1.0, 1.0})」是否为「原后座力」…
测试完就明白所谓的「定值」和「变数」是不同的概念…
表情 表情 表情


尚无签名,欢迎 [新增个性化签名]
献花 x0 回到顶端 [17 楼] From:台湾中华电信 | Posted:2010-07-18 13:09 |
chuchung712 会员卡
个人头像
个人文章 个人相簿 个人日记 个人地图
特殊贡献奖 社区建设奖 优秀管理员勋章 特殊贡献奖-2
知名人士
级别: 知名人士 该用户目前不上站
推文 x774 鲜花 x1169
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

如果真的没后座力的话…
为何调成无后座力时子弹没法一直准确的命中在准心中心点…?

如果真的和14楼的差不多…你倒是可以试试
「set_pev(owner, pev_punchangle, Float:{1.0, 1.0, 1.0})」是否为「原后座力」…
测试完就明白所谓的「定值」和「变数」是不同的概念…
用了「定值」1.0后
只是画面震动
没原后座...

用「变数」后
不论调1.0, 0.5, 0.1 还是 0.0
最终也是原后座力 = =" Orz


是我的问题吗


没有理想的世界
献花 x1 回到顶端 [18 楼] From:香港有线宽频 | Posted:2010-07-18 14:48 |
a7811311622 手机
个人头像
个人文章 个人相簿 个人日记 个人地图
特殊贡献奖 优秀管理员勋章 社区建设奖
头衔:我…在工作了…我…在工作了…
版主
级别: 版主 该用户目前不上站
版区: CS提问区
推文 x771 鲜花 x2152
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

下面是引用 chuchung712 于 2010-07-18 14:48 发表的 : 到引言文

用了「定值」1.0后
只是画面震动
没原后座...

用「变数」后
不论调1.0, 0.5, 0.1 还是 0.0
最终也是原后座力 = =" Orz


是我的问题吗

你确定你是放在
复制程式
RegisterHam(Ham_Weapon_PrimaryAttack, "weapon_???", "fw_WeapPriAttack", 1)
这段forward里面的吗…?别说你把后面的那个「, 1」拿掉喔…表情


尚无签名,欢迎 [新增个性化签名]
献花 x1 回到顶端 [19 楼] From:台湾中华电信 | Posted:2010-07-18 15:48 |

<< 上页  1   2   3  下页 >>(共 3 页)
首页  发表文章 发表投票 回覆文章
Powered by PHPWind v1.3.6
Copyright © 2003-04 PHPWind
Processed in 0.065604 second(s),query:16 Gzip disabled
本站由 瀛睿律师事务所 担任常年法律顾问 | 免责声明 | 本网站已依台湾网站内容分级规定处理 | 连络我们 | 访客留言