Не работает смена моделей

Статус
В этой теме нельзя размещать новые ответы.
Сообщения
7
Реакции
1
Обратите внимание, если вы хотите заключить сделку с этим пользователем, он заблокирован
Ошибка
Можно ли сделать так чтобы когда выбираешь любой ножик он менялся сразу.
Так же при выборе ножа он не меняется. Пробовала создавать отчет с KnifeId[id] = 0, не работает, потом начала подчет с 1, тоже не работает. При респавне игрока без флага он появляется с обычным ножом, при заходе игрока с флагом то он появляется с последним ножом.

В чем проблема. Уже капаюсь час и не могу ничего сделать.
ОС
Linux
Amx Mod X
Amx Mod X ниже 1.9.0
Билд
ReHLDS
ReGamedll
5.9.0.366
Версия Metamod
Metamod -p 1.21p37
Список метамодулей
[ 1] AMX Mod X        RUN   -    amxmodx_mm_i386.  v1.9.0.5  ini   Start ANY  
[ 2] Reunion RUN - reunion_mm_i386. v0.1.0.9 ini Start Never
[ 3] VoiceTranscoder RUN - VoiceTranscoder. v2017RC3 ini ANY ANY
[ 4] CStrike RUN - cstrike_amxx_i38 v1.9.0.5 pl1 ANY ANY
[ 5] FakeMeta RUN - fakemeta_amxx_i3 v1.9.0.5 pl1 ANY ANY
[ 6] Ham Sandwich RUN - hamsandwich_amxx v1.9.0.5 pl1 ANY ANY
[ 7] Fun RUN - fun_amxx_i386.so v1.9.0.5 pl1 ANY ANY
Список плагинов
[  1] Admin Base              1.9.0.5249  AMXX Dev Team     admin.amxx       running  
[ 2] Admin Commands 1.9.0.5249 AMXX Dev Team admincmd.amxx running
[ 3] Slots Reservation 1.9.0.5249 AMXX Dev Team adminslots.amxx running
[ 4] Menus Front-End 1.9.0.5249 AMXX Dev Team menufront.amxx running
[ 5] Commands Menu 1.9.0.5249 AMXX Dev Team cmdmenu.amxx running
[ 6] Players Menu 1.8.2 AMXX Dev Team plmenu.amxx running
[ 7] Maps Menu 1.9.0.5249 AMXX Dev Team mapsmenu.amxx running
[ 8] Plugin Menu 1.9.0.5249 AMXX Dev Team pluginmenu.amxx running
[ 9] Admin Chat 1.9.0.5249 AMXX Dev Team adminchat.amxx running
[ 10] Admin Votes 1.9.0.5249 AMXX Dev Team adminvote.amxx running
[ 11] NextMap 1.9.0.5249 AMXX Dev Team nextmap.amxx running
[ 12] Nextmap Chooser 1.9.0.5249 AMXX Dev Team mapchooser.amxx running
[ 13] TimeLeft 1.9.0.5249 AMXX Dev Team timeleft.amxx running
[ 14] Pause Plugins 1.9.0.5249 AMXX Dev Team pausecfg.amxx running
[ 15] Stats Configuration 1.9.0.5249 AMXX Dev Team statscfg.amxx running
[ 16] KnifeMenu 1.0 Natasha knife.amxx running
Автор плагина
Автор плагина я
Версия плагина
1.0
Исходный код
#include <amxmodx>
#include <amxmisc>
#include <colorchat>
#include <cstrike>
#include <fakemeta>
#include <hamsandwich>
#include <fun>

#define PLUGIN "KnifeMenu"
#define VERSION "1.0"
#define AUTHOR "Natalya"

#define GolD ADMIN_LEVEL_H // Флаг Админа
#define GolD2 ADMIN_LEVEL_H // Флаг Админа
#define GolD3 ADMIN_LEVEL_H // Флаг Админа


new keys = MENU_KEY_1|MENU_KEY_2|MENU_KEY_3|MENU_KEY_4|MENU_KEY_5|MENU_KEY_6|MENU_KEY_0

new szTwoJump[33], szTwoJumpNum[33], szDoTwoJump[33]

new KnifeId[33]

public plugin_precache()
{
precache_model("models/v_knife.mdl") // Обычный нож
precache_model("models/knife_gold/v_knife.mdl") // GOLD Нож
precache_model("models/knife_gold/v_knife.mdl") // GOLD Нож +20hp
precache_model("models/knife_gold/v_m9.mdl") // GOLD Нож +20hp+прыжок


precache_model("models/p_knife.mdl") // Обычный нож
precache_model("models/knife_gold/p_knife.mdl") // GOLD Нож
precache_model("models/knife_gold/p_knife.mdl") // GOLD Нож +20hp
precache_model("models/knife_gold/p_knife.mdl") // GOLD Нож +20hp+прыжок

precache_model("models/player/jailmodels/jailmodels.mdl") // Модель КТ - Папка и название модели должны быть одинаковые.
precache_model("models/player/jailmodels/jailmodels.mdl") // Модель TT - Папка и название модели должны быть одинаковые.

return PLUGIN_CONTINUE
}

public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
register_menu("Menu 1", keys, "menu_knife")
register_clcmd("say /knife", "knife_menu")
register_clcmd("say_team /knife", "knife_menu")
register_clcmd("knife", "knife_menu")
register_clcmd("knifes", "knife_menu")
RegisterHam(Ham_Item_Deploy, "weapon_knife", "SetKnife", 1)
RegisterHam(Ham_Item_Holster, "weapon_knife", "KnifeSet", 1)
RegisterHam(Ham_TakeDamage, "player", "EventDamage", 0)
RegisterHam(Ham_TakeDamage, "player", "TakeDamage", .Post = true)
RegisterHam(Ham_Killed, "player", "KilledPost", .Post = true)
RegisterHam(Ham_Player_Jump, "player", "PreTwoJump")
register_event("ResetHUD", "resetModel", "b")
RegisterHam(Ham_Spawn,"player","player_respawn")
register_logevent("round_start",2,"1=Round_Start")
}

public round_start(id)
{
client_cmd(id, "knife")
KnifeId[id] = 0
}
public player_respawn(id)
{
client_cmd(id, "knife")
KnifeId[id] = 0
}

public resetModel(id, level, cid)
{
if(get_user_flags(id) & GolD3)
{
new CsTeams:userTeam = cs_get_user_team(id)
if (userTeam == CS_TEAM_T)
{
cs_set_user_model(id, "jailmodels") // Модель ТТ
}
else if(userTeam == CS_TEAM_CT) {
cs_set_user_model(id, "jailmodels") // Модель КТ
}
else
{
cs_reset_user_model(id)
}
}
return PLUGIN_CONTINUE
}

public client_connect(id)
{
KnifeId[id] = 0
}

public client_disconnect(nClientIndex)
{
remove_task(nClientIndex)
}

public knife_menu(id)
{
static menu[650], iLen
iLen = 0
iLen = formatex(menu[iLen], charsmax(menu) - iLen, "\yВыберите \rличный \yнож^nВ продаже есть еще \rличный префикс\r/СКИН игрока\r/\yTOP-1 место^nПокупать на нашем сайте^n^n")

if(!is_user_connected(id))
return PLUGIN_CONTINUE

iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\y1. \wОбчный нож^n")
keys |= MENU_KEY_1

if(get_user_flags(id) & GolD)
{
iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\y2. \wGOLD нож + Урон 2x = 50р/навсегда^n")
keys |= MENU_KEY_2
}
else
{
iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\y2. \wGOLD нож + Урон 2x = 50р/навсегда \r[Не куплен]^n")
}

if(get_user_flags(id) & GolD2)
{
iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\y3. \wGOLD нож + Урон 2x + 20hp = 75р/навсегда^n")
keys |= MENU_KEY_3
}
else
{
iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\y3. \wGOLD нож + Урон 2x + 20hp = 75р/навсегда \r[Не куплен]^n")
}
if(get_user_flags(id) & GolD3)
{
iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\y4. \wGOLD нож + Урон 2x + 20hp + прыжок = 100р/навсегда^n^n")
keys |= MENU_KEY_4
}
else
{
iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\y4. \wGOLD нож + Урон 2x + 20hp + прыжок = 100р/навсегда \r[Не куплен]^n^n")
}


iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\y0. \wВыход^n")
keys |= MENU_KEY_0

show_menu(id, keys, menu, -1, "Menu 1")
return PLUGIN_HANDLED
}

public menu_knife(id, key)
{
new health[32]
switch(key)
{
case 0:
{
KnifeId[id] = 0
ColorChat(id, GREEN, "[^4Ножи^1] ^4Вы взяли обычный нож")
}
case 1:
{
if(get_user_flags(id) & GolD)
{
health[id] = get_user_health(id)
set_user_health(id,health[id] + 20)
KnifeId[id] = 1
ColorChat(id, GREEN, "[^4Ножи^1] GOLD: ^42x урон")
}
}
case 2:
{
if(get_user_flags(id) & GolD2)
{
health[id] = get_user_health(id)
set_user_health(id,health[id] + 20)
KnifeId[id] = 2
}
}
case 3:
{
if(get_user_flags(id) & GolD3)
{
health[id] = get_user_health(id)
set_user_health(id,health[id] + 20)
KnifeId[id] = 3
ColorChat(id, GREEN, "[^4Ножи^1] GOLD 3: ^42x урон + 20hp + 2x прыжок")
}
}
}
return PLUGIN_HANDLED
}

public SetKnife(weapon)
{
new id = get_pdata_cbase(weapon, 41, 4)

if(!is_user_connected(id))
return PLUGIN_CONTINUE

if(KnifeId[id] == 0)
{
set_pev(id, pev_viewmodel2, "models/v_knife.mdl")
set_pev(id, pev_weaponmodel2, "models/p_knife.mdl")
set_pdata_float(weapon, 58, 250.0)
set_pev(id, pev_gravity, 1.0)
szTwoJump[id] = false
}
if(KnifeId[id] == 1 || get_user_flags(id) & GolD)
{
set_pev(id, pev_viewmodel2, "models/knife_gold/v_knife.mdl")
set_pev(id, pev_weaponmodel2, "models/knife_gold/p_knife.mdl")
set_pdata_float(weapon, 58, 250.0)
set_pev(id, pev_gravity, 1.0)
szTwoJump[id] = false
}
if(KnifeId[id] == 2 || get_user_flags(id) & GolD2)
{
set_pev(id, pev_viewmodel2, "models/knife_gold/v_knife.mdl")
set_pev(id, pev_weaponmodel2, "models/knife_gold/p_knife.mdl")
set_pdata_float(weapon, 58, 250.0)
set_pev(id, pev_gravity, 1.0)
szTwoJump[id] = false
}

if(KnifeId[id] == 3 || get_user_flags(id) & GolD3)
{
set_pev(id, pev_viewmodel2, "models/knife_gold/v_m9.mdl")
set_pev(id, pev_weaponmodel2, "models/knife_gold/p_knife.mdl")
set_pdata_float(weapon, 58, 250.0)
set_pev(id, pev_gravity, 1.0)
szTwoJump[id] = true
}
return PLUGIN_HANDLED
}

public KilledPost(nClientIndex)
{
remove_task(nClientIndex)
}


public KnifeSet(ent)
{
set_pev(get_pdata_cbase(ent, 41, 4), pev_gravity, 1.0)
}

public EventDamage(victim, inflicator, attacker, Float:damage)
{
if(!is_user_connected(attacker))
return PLUGIN_HANDLED;

if(victim == attacker || !victim)
return PLUGIN_HANDLED;

if(get_user_team(attacker) != get_user_team (victim) && attacker != victim && get_user_weapon(attacker) == CSW_KNIFE && (KnifeId[attacker] == 1 || KnifeId[attacker] == 2 || KnifeId[attacker] == 3))
SetHamParamFloat(4, damage * 2.0)
return PLUGIN_HANDLED;
}

public TakeDamage(nClientIndex)
{
if(is_user_alive(nClientIndex))
{
task_exists(nClientIndex)
}
}

public PreTwoJump(id)
{
if(szTwoJump[id] && get_user_weapon(id) == CSW_KNIFE)
{
new szButton = pev(id, pev_button)
new szOldButton = pev(id, pev_oldbuttons)

if((szButton & IN_JUMP) && !(pev(id, pev_flags) & FL_ONGROUND) && !(szOldButton & IN_JUMP))
{
if(szTwoJumpNum[id] < 1)
{
szDoTwoJump[id] = true
szTwoJumpNum[id]++

PostTwoJump(id)

return PLUGIN_CONTINUE
}
}
if((szButton & IN_JUMP) && (pev(id, pev_flags) & FL_ONGROUND))
{
szTwoJumpNum[id] = 0
}
}
return PLUGIN_CONTINUE
}

public PostTwoJump(id)
{
if(szTwoJump[id])
{
if(!is_user_alive(id))
return PLUGIN_CONTINUE

if(szDoTwoJump[id])
{
new Float:szVelocity[3]
pev(id, pev_velocity, szVelocity)

szVelocity[2] = random_float(295.0,305.0)
set_pev(id, pev_velocity, szVelocity)

szDoTwoJump[id] = false

return PLUGIN_CONTINUE
}
}
return PLUGIN_CONTINUE
}
Можно ли сделать так чтобы когда выбираешь любой ножик он менялся сразу.
Так же при выборе ножа он не меняется. Пробовала создавать отчет с KnifeId[id] = 0, не работает, потом начала подчет с 1, тоже не работает. При респавне игрока без флага он появляется с обычным ножом, при заходе игрока с флагом то он появляется с последним ножом.

В чем проблема. Уже капаюсь час и не могу ничего сделать.
 

Вложения

Сообщения
3,049
Реакции
1,739
Помог
80 раз(а)
Natalya86, не все поля заполнены правильно + тему нужно создать в "создание и модификация"
 
Статус
В этой теме нельзя размещать новые ответы.

Пользователи, просматривающие эту тему

Сейчас на форуме нет ни одного пользователя.
Сверху Снизу