No Deagle Awp Map [Удалено]

Статус
В этой теме нельзя размещать новые ответы.

Grey83

не пишу плагины с весны 2022
Сообщения
8,645
Реакции
5,115
почему не указан автор и источник?
ещё и можно упростить код:
PHP:
#pragma semicolon 1

#include <sdktools_functions>

public Plugin:myinfo =
{
    name        = "GoTT",
    author        = "GoTT",
    description    = "Dell deadle awp lego",
    version        = "1.0.1"
}

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

public Action:OnPlayerSpawn(Handle:event, const String:name[], bool:dontBroadcast)
{
    new client = GetClientOfUserId(GetEventInt(event, "userid"));
    if(IsPlayerAlive(client))
    {
        for(new i, item; i < 6; i++) if((item = GetPlayerWeaponSlot(client, i)) != -1) RemovePlayerItem(client, item);
        GivePlayerItem(client, "weapon_knife");
        GivePlayerItem(client, "weapon_awp");
    }
}
И да, плагин убирает всё оружие у игрока при спавне на всех картах и выдаёт нож с авп.

Чтобы убирало только пистолеты и только на картах awp_lego, то нужно делать так:
PHP:
#include <sdktools_entinput>
#include <sdktools_functions>

new bool:on;

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

public OnMapStart()
{
    decl String:map[64];
    GetCurrentMap(map, sizeof(map));
    on = StrContains(map, "awp_lego") != -1;
}


public Action:EventPlayerSpawn(Handle:event, const String:name[], bool:dontBroadcast)
{
    static client, pistol;
    if(on && (client = GetClientOfUserId(GetEventInt(event, "userid"))) && (pistol = GetPlayerWeaponSlot(client, 1)) != -1 && RemovePlayerItem(client, pistol))
        AcceptEntityInput(pistol, "Kill");
}
 

Boeing 767

заскамили мамонта ни за что, ни про что
Сообщения
524
Реакции
913
почему не указан автор и источник?
ещё и можно упростить код:
PHP:
#pragma semicolon 1

#include <sdktools_functions>

public Plugin:myinfo =
{
    name        = "GoTT",
    author        = "GoTT",
    description    = "Dell deadle awp lego",
    version        = "1.0.1"
}

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

public Action:OnPlayerSpawn(Handle:event, const String:name[], bool:dontBroadcast)
{
    new client = GetClientOfUserId(GetEventInt(event, "userid"));
    if(IsPlayerAlive(client))
    {
        for(new i, item; i < 6; i++) if((item = GetPlayerWeaponSlot(client, i)) != -1) RemovePlayerItem(client, item);
        GivePlayerItem(client, "weapon_knife");
        GivePlayerItem(client, "weapon_awp");
    }
}
И да, плагин убирает всё оружие у игрока при спавне на всех картах и выдаёт нож с авп.

Чтобы убирало только пистолеты и только на картах awp_lego, то нужно делать так:
PHP:
#include <sdktools_entinput>
#include <sdktools_functions>

new bool:on;

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

public OnMapStart()
{
    decl String:map[64];
    GetCurrentMap(map, sizeof(map));
    on = StrContains(map, "awp_lego") != -1;
}


public Action:EventPlayerSpawn(Handle:event, const String:name[], bool:dontBroadcast)
{
    static client, pistol;
    if(on && (client = GetClientOfUserId(GetEventInt(event, "userid"))) && (pistol = GetPlayerWeaponSlot(client, 1)) != -1 && RemovePlayerItem(client, pistol))
        AcceptEntityInput(pistol, "Kill");
}
Можно еще сделать оптимизирование и запретить абсолютно все оружие на awp_ картах , кроме авп и ножа.(код ниже) Единственное, что ak47 можно поднять в моем варианте (хотя на таких картах его вообще быть не должно) , но и это можно пофиксить.
PHP:
#include <sdktools_entinput>

bool g_bEnabled;

public OnMapStart()
{
    char map[5];
    GetCurrentMap(map,5);
    g_bEnabled = (map[0] == 'a' && map[2] == 'p' && map[3] == '_');
}

public void OnEntityCreated(int entity, const char[] classname)
{
    if(!g_bEnabled || classname[0] != 'w' && classname[1] != 'e' || classname[7] == 'a' || classname[7] == 'k')
        return;
    RequestFrame(Delete,entity);
}

void Delete(int entity)
{
    if(IsValidEntity(entity))
        AcceptEntityInput(entity, "kill");
}

Оффтоп
 
Последнее редактирование:

Rabb1t

Амбассадор
Сообщения
2,968
Реакции
1,429
  • Команда форума
  • #4
@Samoletik1337, можно отлов тега карты проще сделать, наверное, @Kr1kuzya мне кидал недавно:
PHP:
public void OnMapStart()
{
    char szMapName[32];
    GetCurrentMap(szMapName, sizeof(szMapName));
    if (strncmp(szMapName, "awp_", 4, false) == 0)
        // Карта awp_...
    else
        // Любая другая карта

}
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,645
Реакции
5,115
@Samoletik1337, не будет ли проблем, если выдать игроку пистолет во время работы такого плагина?
И да, в таком случае нужно убивать любое оружие на такой карте, кроме АВП
И имя карты может быть в верхнем регистре (интересно, в таком случае GetCurrentMap() указывает имя карты в каком регистре?).
PHP:
#include <sdktools_entinput>

bool g_bEnabled;

public OnMapStart()
{
    char map[5];
    GetCurrentMap(map, 5);
    g_bEnabled = map[0] == 'a' && map[1] == 'w' && map[2] == 'p' && map[3] == '_';
}

public void OnEntityCreated(int entity, const char[] class)
{
    if(g_bEnabled && class[0] == 'w' && class[1] == 'e' && (!(class[7] == 'a' && class[8] == 'w') && class[7] != 'k'))
        RequestFrame(Delete, entity);
}

void Delete(int entity)
{
    if(IsValidEntity(entity))
        AcceptEntityInput(entity, "kill");
}
И да, этот плагин будет корректно работать только на КСС, но не КСГО (там слишком много ножей с разными именами) и на всех картах с текстом "awp_" в первых 4 символах названия карты
--- Добавлено позже ---
@Rabb1t, он и так проще сделал, просто написано длиннее
И вообще тогда лучше так:
PHP:
bool on;

public void OnMapStart()
{
    char map[5];    // нам не требуется массив большего размера, т.к. будут сравниваться только 4 первых символа
    GetCurrentMap(map, sizeof(map));
    on = !strncmp(szMapName, "awp_", 4, false);    // в случаях отличных от нуля (символы и/или их порядок не совпадают) значение переменной 'on'  будет равняться false
}
 
Последнее редактирование:

Boeing 767

заскамили мамонта ни за что, ни про что
Сообщения
524
Реакции
913
@Samoletik1337, не будет ли проблем, если выдать игроку пистолет во время работы такого плагина?
И да, в таком случае нужно убивать любое оружие на такой карте, кроме АВП
И имя карты может быть в верхнем регистре (интересно, в таком случае GetCurrentMap() указывает имя карты в каком регистре?).
PHP:
#include <sdktools_entinput>

bool g_bEnabled;

public OnMapStart()
{
    char map[5];
    GetCurrentMap(map, 5);
    g_bEnabled = map[0] == 'a' && map[1] == ''w" && map[2] == 'p' && map[3] == '_';
}

public void OnEntityCreated(int entity, const char[] class)
{
    if(g_bEnabled && class[0] == 'w' && class[1] == 'e' && (!(class[7] == 'a' && class[8] == 'w') && class[7] != 'k'))
        RequestFrame(Delete, entity);
}

void Delete(int entity)
{
    if(IsValidEntity(entity))
        AcceptEntityInput(entity, "kill");
}
И да, этот плагин будет корректно работать только на КСС, но не КСГО (там слишком много ножей с разными именами) и на всех картах с текстом "awp_" в первых 4 символах названия карты
Если выдать любое оружие кроме авп и ножа во время работы такого плагина, оно просто даже не появится, удалится практически сразу. Игрок лишь услышит звук поднятия оружия , но в руках ничего не будет. Насчет того что имя карты может быть в верхнем регистре, да такое может быть, и плагин работать на таких не будет, но таких я лично пока что не встречал. Ну и в ксго он адекватно работать не будет из-за разных названий ножей, лишь ксс. Но как по мне это пофиксить не такая большая проблема, добавив пару проверок на названия.

@Samoletik1337, можно отлов тега карты проще сделать, наверное, @Kr1kuzya мне кидал недавно:
PHP:
public void OnMapStart()
{
    char szMapName[32];
    GetCurrentMap(szMapName, sizeof(szMapName));
    if (strncmp(szMapName, "awp_", 4, false) == 0)
        // Карта awp_...
    else
        // Любая другая карта

}
Не сказал бы что проще, просто более понятнее и только имхо.
 

jackn1ke.

Участник
Сообщения
85
Реакции
7
Этот ресурс был удалён и более недоступен для скачивания.
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу