Rubbish-Nec
|
分享:
▲
▼
下面是引用 [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 |
|
|
a7811311622
我…在工作了…
级别: 版主
版区: CS提问区
x771
x2152
|
分享:
▲
▼
下面是引用 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 |
|
|
|