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

Тема в разделе "Программирование / Скриптинг", создана пользователем khilkevich, 29 апр 2015.

  1. khilkevich

    khilkevich

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

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

    gibs Фитиль народного волненья

    Сообщения:
    542
    Симпатии:
    139
    старый удалить и новый выдать
     
  3. khilkevich

    khilkevich

    Сообщения:
    9
    Симпатии:
    0
    Каким образом удалить*

     
  4. AlmazON

    AlmazON деревянный © yand3xmail

    Сообщения:
    4.588
    Симпатии:
    1.995
    PHP:
    #include <sdktools_functions>
    #include <sdktools_entinput>

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

    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(client2);
        if(
    slot != -1)
        {
            
    RemovePlayerItem(clientslot);
            
    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(client2);
        if(
    slot != -1)
        {
            
    RemovePlayerItem(clientslot);
            
    AcceptEntityInput(slot"Kill");
            
    GivePlayerItem(client"weapon_knife_karambit");
        }
    }
     
  6. komashchenko

    komashchenko

    Сообщения:
    479
    Симпатии:
    421
    От очень простой способ
    PHP:
    #pragma semicolon 1
    #include <sdkhooks>
    #include <zombiereloaded>

    public OnClientPutInServer(iClientSDKHook(iClientSDKHook_WeaponEquipPostOnPostWeaponEquip);

    public 
    Action:OnPostWeaponEquip(iClientweapon
    {
        if(
    IsClientInGame(iClient) && IsPlayerAlive(iClient))
        {
            new 
    GetEntProp(weaponProp_Send"m_iItemDefinitionIndex");
            if(
    == 42 || == 59
            {
                if(
    ZR_IsClientZombie(iClient)) SetEntProp(weaponProp_Send"m_iItemDefinitionIndex"507);
                else 
    SetEntProp(weaponProp_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
     
    khilkevich нравится это.