[CS:GO] Выдача нестандартного ножа

khilkevich

Участник
Сообщения
9
Реакции
0
Планирую написать небольшой плагин для зомби сервера. Суть: если игрок зомби, он получает один нож, если игрок человек ему выдаётся другой нож.

Как при возрождение/заражении, заменить обычный weapon_knife на weapon_knife_karambit и т.п ? Знаю только про GivePlayerItem, но врятли он заменит обычный нож.
 

gibs

Фитиль народного волненья
Сообщения
722
Реакции
407
Мошенник
старый удалить и новый выдать
 

AlmazON

Не путать с самим yand3xmail
Сообщения
5,099
Реакции
2,755
Каким образом удалить
PHP:
#include <sdktools_functions>
#include <sdktools_entinput>

new slot = GetPlayerWeaponSlot(client, 2);
if(slot != -1)
{
	RemovePlayerItem(client, slot);
	AcceptEntityInput(slot, "Kill");
}
GivePlayerItem(client, "weapon_knife_karambit");
Только не помню, бывает ли в этом слоте ещё какое-то оружие... Ну, для ZM, думаю там наверняка лишь нож.
 

khilkevich

Участник
Сообщения
9
Реакции
0
Исправьте ошибки, не компилируется.

PHP:
#include <sdktools_functions>
#include <sdktools_entinput>
#include <zombiereloaded>

public OnPluginStart()
{
	HookEvent("player_spawn", OnPlayerSpawn);
}

public OnPlayerSpawn(Handle:event, const String:name[], bool:dontBroadcast)
{
	new client = GetClientOfUserId(GetEventInt(event, "userid"));
	new slot = GetPlayerWeaponSlot(client, 2);
	if(slot != -1)
	{
		RemovePlayerItem(client, slot);
		AcceptEntityInput(slot, "Kill");
		
		if(ZR_IsClientHuman(client))
		{
			GivePlayerItem(client, "weapon_knife_huntsman");
		}
		else
		{
			GivePlayerItem(client, "weapon_knife_karambit");
		}
	}
}

public ZR_OnClientInfect(Handle:event, const String:name[], bool:dontBroadcast)
{
	new slot = GetPlayerWeaponSlot(client, 2);
	if(slot != -1)
	{
		RemovePlayerItem(client, slot);
		AcceptEntityInput(slot, "Kill");
		GivePlayerItem(client, "weapon_knife_karambit");
	}
}
 

komashchenko

Идиот
Сообщения
916
Реакции
2,570
От очень простой способ
PHP:
#pragma semicolon 1
#include <sdkhooks>
#include <zombiereloaded>

public OnClientPutInServer(iClient) SDKHook(iClient, SDKHook_WeaponEquipPost, OnPostWeaponEquip);

public Action:OnPostWeaponEquip(iClient, weapon) 
{
    if(IsClientInGame(iClient) && IsPlayerAlive(iClient))
    {
        new y = GetEntProp(weapon, Prop_Send, "m_iItemDefinitionIndex");
        if(y == 42 || y == 59) 
        {
            if(ZR_IsClientZombie(iClient)) SetEntProp(weapon, Prop_Send, "m_iItemDefinitionIndex", 507);
            else SetEntProp(weapon, Prop_Send, "m_iItemDefinitionIndex", 509);
        }
    }
}

от ид ножей
Section 500, name weapon_bayonet
Section 505, name weapon_knife_flip
Section 506, name weapon_knife_gut
Section 507, name weapon_knife_karambit
Section 508, name weapon_knife_m9_bayonet
Section 509, name weapon_knife_tactical
Section 515, name weapon_knife_butterfly
 
Сверху Снизу