a7811311622
我…在工作了…
级别: 版主
版区: CS提问区
x771
x2152
|
分享:
▲
▼
下面是引用 史来姆 于 2010-07-20 09:55 发表的 : 果然是太难了吗 不过也谢谢大大你了 唯有我自己努力 希望终日弄到选择后就会变的吧 如果你想改…我就教你吧… 1.先假设变数: 复制程式
2.到「zombieme(id, infector, nemesis, specialmode)」里增加: 复制程式
3.将「public menu_zclass(id, key)」里的: // Store selection for the next infection g_zombieclassnext[id] = ZCLASSES_SELECTION;
换成 复制程式
// Store selection for the next infection
if (!g_be_infected[id])
{
g_zombieclassnext[id] = ZCLASSES_SELECTION;
}
else
{
g_zombieclass[id] = ZCLASSES_SELECTION;
改变人物模组和V档模组的内容…
g_be_infected[id] = false;
}
中间改变模组的内容全是复制ZP里的内容… 以下是我懒着过滤内容直接复制贴上的…(暂时只图结果…) 复制程式
// Store selection for the next infection
if (!g_be_infected[id])
{
g_zombieclassnext[id] = ZCLASSES_SELECTION;
}
else
{
g_zombieclass[id] = ZCLASSES_SELECTION;
// Set the right model, after checking that we don't already have it
static currentmodel[32], already_has_model, i, iRand
already_has_model = false
// Get current model and compare it with current one
fm_get_user_model(id, currentmodel, sizeof currentmodel - 1)
if (g_nemesis[id])
{
for (i = 0; i < sizeof model_nemesis; i++)
if (equal(model_nemesis[i], currentmodel)) already_has_model = true;
if (!already_has_model)
{
iRand = random_num(0, sizeof model_nemesis -1)
copy(g_playermodel[id], sizeof g_playermodel[] - 1, model_nemesis[iRand])
#if defined SET_MODELINDEX_OFFSET
fm_set_user_model_index(id, g_modelindex_nemesis[iRand])
#endif
}
}
else
{
if (get_pcvar_num(cvar_adminmodelszombie) && get_user_flags(id) & ACCESS_FLAG3)
{
for (i = 0; i < sizeof model_admin_zombie; i++)
if (equal(model_admin_zombie[i], currentmodel)) already_has_model = true;
if (!already_has_model)
{
iRand = random_num(0, sizeof model_admin_zombie -1)
copy(g_playermodel[id], sizeof g_playermodel[] - 1, model_admin_zombie[iRand])
#if defined SET_MODELINDEX_OFFSET
fm_set_user_model_index(id, g_modelindex_admin_zombie[iRand])
#endif
}
}
else
{
if (equal(g_zclass_model[g_zombieclass[id]], currentmodel)) already_has_model = true;
if (!already_has_model)
{
copy(g_playermodel[id], sizeof g_playermodel[] - 1, g_zclass_model[g_zombieclass[id]])
#if defined SET_MODELINDEX_OFFSET
fm_set_user_model_index(id, g_zclass_modelindex[g_zombieclass[id]])
#endif
}
}
}
// Need to change the model?
if (!already_has_model)
{
// An additional delay is offset at round start
// since SVC_BAD is more likely to be triggered there
if (g_newround)
set_task(5.0*MODELCHANGE_DELAY, "fm_user_model_update", id+TASK_MODEL)
else
fm_user_model_update(id+TASK_MODEL)
}
switch (g_currentweapon[id])
{
case CSW_KNIFE: // Custom knife models
{
if (g_zombie[id] && !g_newround && !g_endround)
{
if (g_nemesis[id]) // Nemesis
{
set_pev(id, pev_viewmodel2, model_vknife_nemesis)
set_pev(id, pev_weaponmodel2, "")
}
else // Zombies
{
static mdl[100]
formatex(mdl, sizeof mdl - 1, "models/zombie_plague/%s", g_zclass_clawmodel[g_zombieclass[id]])
set_pev(id, pev_viewmodel2, mdl)
set_pev(id, pev_weaponmodel2, "")
}
}
else // Humans
{
set_pev(id, pev_viewmodel2, model_vknife_human)
set_pev(id, pev_weaponmodel2, "models/p_knife.mdl")
}
}
case CSW_M249: // Survivor's M249
{
if (g_survivor[id])
set_pev(id, pev_viewmodel2, model_vm249_survivor)
}
case CSW_HEGRENADE: // Infection bomb or fire grenade
{
if (g_zombie[id] && !g_newround && !g_endround)
set_pev(id, pev_viewmodel2, model_grenade_infect)
else
set_pev(id, pev_viewmodel2, model_grenade_fire)
}
case CSW_FLASHBANG: // Frost grenade
{
set_pev(id, pev_viewmodel2, model_grenade_frost)
}
case CSW_SMOKEGRENADE: // Flare grenade
{
set_pev(id, pev_viewmodel2, model_grenade_flare)
}
}
#if defined HANDLE_MODELS_ON_SEPARATE_ENT
fm_set_weaponmodel_ent(id)
#endif
g_be_infected[id] = false;
}
示范影片: 按这里检视影片,登入论坛可以直接观看知道为何我会嫌麻烦了吧…
|
|
x3
[12 楼]
From:台湾中华电信 | Posted:2010-07-20 16:52 |
|
|
史来姆
|
分享:
▲
▼
大大你真是太强了 让你这么麻烦,真是抱歉啦 我也回你一花吧 不过有两个warning该怎办?无视吗? loose indentation喔.. 还有我好像发现了一个bug 果然真够麻烦当转换疆尸时,模组变了,但是,好像速度,重力和血量没变,技能也有些少影响 就以我为例,我的是个仿cso的zp 原本是莎菈疆尸的(低重力,高速) 之后转成达叔(高重力,低速)后 除了转了模组,重力,速度以及血量也如之前一样(就是低重力,高速) 并且,说我已经没有陷阱可用了(明明我弄了20个陷阱-3-) 除了达叔的技能有问题之外,其他僵尸的技能也没问题 只是全部的重力和速度,以及血量有些问题 看来"即时变"真的太麻烦了
[ 此文章被史来姆在2010-07-20 17:45重新编辑 ]
|
|
x1
[13 楼]
From:香港网上行 | Posted:2010-07-20 17:18 |
|
|
a7811311622
我…在工作了…
级别: 版主
版区: CS提问区
x771
x2152
|
分享:
▲
▼
下面是引用 史来姆 于 2010-07-20 17:18 发表的 : 大大你真是太强了 让你这么麻烦,真是抱歉啦 我也回你一花吧
不过有两个warning该怎办?无视吗? loose indentation喔..
还有我好像发现了一个bug 果然真够麻烦 当转换疆尸时,模组变了,但是,好像速度,重力和血量没变,技能也有些少影响 就以我为例,我的是个仿cso的zp 原本是莎菈疆尸的(低重力,高速) 之后转成达叔(高重力,低速)后 除了转了模组,重力,速度以及血量也如之前一样(就是低重力,高速) 并且,说我已经没有陷阱可用了(明明我弄了20个陷阱-3-)
除了达叔的技能有问题之外,其他僵尸的技能也没问题 只是全部的重力和速度,以及血量有些问题
看来"即时变"真的太麻烦了 我是用ZP 4.2 的说…速度是没问题…我测试过了… 重力的确是忘记加条件了…而且我好像也忘了设定血量… 只要在刚才那段超长的里面加上: 复制程式
fm_set_user_health(id, g_zclass_hp[g_zombieclass[id]])
set_pev(id, pev_gravity, g_zclass_grav[g_zombieclass[id]]) 即可将血量和重力同步改变… 速度照理来说是随时都会被侦测并加以修正的… 所以我不确是是不是ZP版本还是其他的预料外状况… 而击退率也是同步修正的…不用理会…
|
|
x1
[14 楼]
From:台湾中华电信 | Posted:2010-07-20 17:56 |
|
|
a7811311622
我…在工作了…
级别: 版主
版区: CS提问区
x771
x2152
|
分享:
▲
▼
下面是引用 史来姆 于 2010-07-20 18:17 发表的 : 我肯定是zp4.2的了 技能是会转变没错 只不过就是达叔按r使用时 center弹出一句[你没有陷阱了] 像其他的僵尸,以雷比亚进化体为例 变了他后,确实光波是射出的 就是说只有达叔的技能出了点错误
此外,血量那里 本来第一只僵尸是会血量x3的,就是僵尸sma里设定2000,会变成6000 转了僵尸后,变了该僵尸的血量(3500),但是却没有x3
第一只僵尸只得3500,31个bot不用5秒便杀了我 那把「fm_set_user_health(id, g_zclass_hp[g_zombieclass[id]])」改成: 复制程式
fm_set_user_health(id, g_firstzombie[id] ? floatround(g_zclass_hp[g_zombieclass[id]]*get_pcvar_float(cvar_zombiefirsthp)) : g_zclass_hp[g_zombieclass[id]]) 这样就能判断第一只僵尸的血量了… 感觉以上内容都能发到教学区了…
|
|
x1
[18 楼]
From:台湾中华电信 | Posted:2010-07-20 18:23 |
|
|
|