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 |
|
|
|