• Для того, чтобы добавить "ресурс" на форум, требуется перейти по ссылке и создать ресурс в нужной категории форума.
Guillotine

Guillotine 1.0

Нет прав для скачивания

RedSMURF

Участник
Сообщения
37
Реакции
51
RedSMURF submitted a new resource:

Guillotine - This plugin adds placeable Guillotines to Counter-Strike 1.6, allowing players to execute themselves

Guillotine​

Description
This plugin adds placeable Guillotines to Counter-Strike 1.6, allowing players to execute themselves or other players with a classic guillotine.
  • Place and configure Guillotines around the map
  • Execute players with a dramatic blade-drop animation
  • Randomize detached head models and launch them in the Guillotine direction
  • Customize blade speed, hold...

Read more about this resource...
 
RedSMURF submitted a new resource:

Guillotine - This plugin adds placeable Guillotines to Counter-Strike 1.6, allowing players to execute themselves



Read more about this resource...
Почему вы указываете в требованиях amxx 1.10, когда у вас и некоторого функционала 1.8.3 не используется, не говоря о 1.9.0 и выше?
get_maxplayers() -> MaxClients (amxconst.inc)
Динамические массивы уничтожаются при смене карты начиная с v1.8.3, необходимости в использовании plugin_end для очистки нет.
Используйте удобный textparce_ini.inc вместо того полотна, что у вас сохранилось со времен 1.8.2.

Если вы уже решили отказаться от reapi, почему бы не использовать fm_create_entity, вместо подключения cstrike?
В то-же время, вы используете cs_create_entity, и, внезапно engfunc(EngFunc_FindEntityByString, iEnt, "classname", szName) взамен
cs_find_ent_by_class(start_index, const classname[]).


Взяли fakemeta за базу - откажитесь от cstrike, engine и fun
 
Последнее редактирование:
i need cstrike to get the player's team
but i'll get rid of fun and engine
i recall some issues happening with previous plugins, the problem was just gone after the user updated to AMXX1.10, so i always write it as a requirement
Thanks for the suggestions
 
i need cstrike to get the player's team
Почти весь функционал cstrike имеет альтернативу.

C-подобный:
#include <amxmodx>
#include <fakemeta>

const OFFSET_CSTEAMS = 114 // m_iTeam
const OFFSET_LINUX = 5 // offsets 5 higher in Linux builds

// CS Teams
enum {
    FM_CS_TEAM_UNASSIGNED = 0,
    FM_CS_TEAM_T,
    FM_CS_TEAM_CT,
    FM_CS_TEAM_SPECTATOR
};

// Get User Team
stock fm_cs_get_user_team(pPlayer) {
    return get_pdata_int(pPlayer, OFFSET_CSTEAMS, OFFSET_LINUX);
}

// Set a Player's Team
stock fm_cs_set_user_team(pPlayer, team) {
    set_pdata_int(pPlayer, OFFSET_CSTEAMS, team, OFFSET_LINUX);

    // Обновляем интерфейс таблицы счёта (TAB), чтобы информация у всех отображалась корректно
    static const szTeamNames[][] = { "UNASSIGNED", "TERRORIST", "CT", "SPECTATOR" };

    static iMsgTeamInfo;
    if(!iMsgTeamInfo) {
        iMsgTeamInfo = get_user_msgid("TeamInfo");
    }

    message_begin(MSG_ALL, iMsgTeamInfo);
    write_byte(pPlayer);
    write_string(szTeamNames[team]);
    message_end();
}
 
Almost all of cstrike’s functionality has an alternative.

C-подобный:
#include <amxmodx>
#include <fakemeta>

const OFFSET_CSTEAMS = 114 // m_iTeam
const OFFSET_LINUX = 5 // offsets 5 higher in Linux builds

// CS Teams
enum {
    FM_CS_TEAM_UNASSIGNED = 0,
    FM_CS_TEAM_T,
    FM_CS_TEAM_CT,
    FM_CS_TEAM_SPECTATOR
};

// Get User Team
stock fm_cs_get_user_team(pPlayer) {
    return get_pdata_int(pPlayer, OFFSET_CSTEAMS, OFFSET_LINUX);
}

// Set a Player's Team
stock fm_cs_set_user_team(pPlayer, team) {
    set_pdata_int(pPlayer, OFFSET_CSTEAMS, team, OFFSET_LINUX);

    //We update the invoice table interface (TAB) so that everyone’s information is displayed correctly
    static const szTeamNames[][] = { "UNASSIGNED", "TERRORIST", "CT", "SPECTATOR" };

    static iMsgTeamInfo;
    if(!iMsgTeamInfo) {
        iMsgTeamInfo = get_user_msgid("TeamInfo");
    }

    message_begin(MSG_ALL, iMsgTeamInfo);
    write_byte(pPlayer);
    write_string(szTeamNames[team]);
    message_end();
}
can't we just use "get_user_team()" ?
 
can't we just use "get_user_team()" ?
Можно. Это в каком-то смысле надёжнее, но не всегда там может быть верное значение (если не был отправлен сетевой пакет)
get_user_team берёт значение локальной переменной, которое кэшируется при отсылке сетевых пакетов, а потом в любой момент это значение можно получить.
meta_api
get_user_team

get_pdata_int берёт значение напрямую из оперативной памяти pvPrivateData (адрес игрока по переданному индексу), работая с указателем, смещая на нужное количество байт (offset + linux_dif) * 4 (4 - так как оффсеты читаются по 4-байтовым ячейкам (int)); здесь всегда будет верное значение номера команды.
get_pdata_int


А лучше используйте reapi в таких случаях, для вас же старались делать удобность, совместимость и всеми любимую оптимизацию.
Я вас не отговариваю использовать cstrike, он свой функционал вполне выполняет.
 
Последнее редактирование:

Кто просматривает тему

  • Loki
Назад
Верх