Knife duel 1vs1
-
eLBuToY
Извън линия - Потребител
- Мнения: 18
- Регистриран на: 24 Авг 2020, 10:57
- Местоположение: S.Brenica
- Се отблагодари: 5 пъти
Knife duel 1vs1
Може ли да ми направите дин knife duel 1vs1 за knife arena моля ако може да ми направите такъв плъгин или да ми дадете линк към него
-
Drea<M>40BG ;]]
Извън линия - Потребител
- Мнения: 750
- Регистриран на: 11 Окт 2016, 11:35
- Се отблагодари: 115 пъти
- Получена благодарност: 63 пъти
- Обратна връзка:
-
eLBuToY
Извън линия - Потребител
- Мнения: 18
- Регистриран на: 24 Авг 2020, 10:57
- Местоположение: S.Brenica
- Се отблагодари: 5 пъти
Knife duel 1vs1
Drea<M>40BG ;]]
Този е когато останат двама от разлицни отботи а.. на мен ми трябва за кнайф мод арена ако се.. сещаш когато пишеш /kdc или /duel
Този е когато останат двама от разлицни отботи а.. на мен ми трябва за кнайф мод арена ако се.. сещаш когато пишеш /kdc или /duel
-
impossible
Извън линия - Потребител
- Мнения: 488
- Регистриран на: 15 Юни 2019, 12:41
- Се отблагодари: 23 пъти
- Получена благодарност: 47 пъти
-
impossible
Извън линия - Потребител
- Мнения: 488
- Регистриран на: 15 Юни 2019, 12:41
- Се отблагодари: 23 пъти
- Получена благодарност: 47 пъти
Knife duel 1vs1
хмм .. този плъгин до колкто виждам е платен
https://amxx-bg.info/forum/viewtopic.php?f=33&t=1469
https://amxx-bg.info/forum/viewtopic.php?f=33&t=1469
-
WaLkZ
Извън линия - Администратор
- Мнения: 799
- Регистриран на: 05 Окт 2016, 21:13
- Местоположение: Варна
- Се отблагодари: 75 пъти
- Получена благодарност: 227 пъти
- Обратна връзка:
Knife duel 1vs1
Може да ползваш тази руска версия. Единствено трябва да си преведеш менюта, съобщения в чата... Иначе добре е написан, не съм го тествал.
-
eLBuToY
Извън линия - Потребител
- Мнения: 18
- Регистриран на: 24 Авг 2020, 10:57
- Местоположение: S.Brenica
- Се отблагодари: 5 пъти
Knife duel 1vs1
може ли някой да ми помогне с превода от руски ма български моля
Код за потвърждение: Избери целия код
#include <amxmodx>
#include <engine>
#include <fakemeta>
#include <hamsandwich>
#if AMXX_VERSION_NUM < 183
#include <dhudmessage>
#endif
new const PLUGIN_NAME[] = "Knife Arena";
new const PLUGIN_VERSION[] = "1.0";
new const PLUGIN_AUTHOR[] = "6u3oH";
const ARENA_SETTINGS_ACCESS = ADMIN_IMMUNITY; // Флаг доступа к меню настроек арены
const ARENA_DUEL_TIMER_PRE = 10; // Время подготовки перед дуэлью (сек)
const ARENA_DUEL_TIMER_FIGHT = 180; // Время битвы на арене (сек)
const ARENA_DUEL_ROUNDS = 10; // Кол-во раундов на арене
const ARENA_DUEL_HEALTH = 50; // Устанавливаемое здоровье дуэлянтам
const ARENA_DUEL_AWARDS = 6000; // Награда за победу
new const ARENA_CLASSNAME[] = "arena";
new const ARENA_PREFIX[] = "Арена";
new const ARENA_MODEL[] = "models/arena/arena.mdl";
new const Float: ARENA_MINSIZE[] = {-337.0, -237.0, -2.5};
new const Float: ARENA_MAXSIZE[] = {337.0, 237.0, 2.5};
const ARENA_SEC_KEY = 0x846;
const TASK_DUEL_PRE = 0x131;
const TASK_ARENA = 0x152;
enum _:
{
DUELANT_ONE = 0,
DUELANT_TWO,
ARENA_STATE_NOT,
ARENA_STATE_EDIT,
ARENA_STATE_READY,
ARENA_STATE_BLOCK
};
new g_iMaxPlayers, g_iArenaSettingsMenu, g_iArenaEnt, g_iArenaState, g_iSpriteBeam;
new g_iDuelantOne, g_iDuelantTwo, g_iDuelRound, g_iDuelTimerPre, g_iDuelTimer, g_iDuelantKillsOne, g_iDuelantKillsTwo;
new g_iTempID[33];
new g_sArenaCfgSaveFile[256];
new HamHook: g_iFwdSpawn, HamHook: g_iFwdKilled, HamHook: g_iFwdTakeDmg;
public plugin_precache()
{
precache_model(ARENA_MODEL);
g_iSpriteBeam = precache_model("sprites/zbeam3.spr");
}
public client_disconnected(id)
{
for(new iPlayer = 1; iPlayer <= g_iMaxPlayers; iPlayer++)
if(g_iTempID[iPlayer] == id)
g_iTempID[iPlayer] = FM_NULLENT;
if(g_iArenaState == ARENA_STATE_BLOCK && id == g_iDuelantOne || id == g_iDuelantTwo)
duel_reset_settings();
}
public plugin_init()
{
register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR);
register_clcmd("arena_settings", "Clcmd_ArenaSettings");
register_clcmd("say /arena", "Clcmd_ArenaMenu");
register_clcmd("say_team /arena", "Clcmd_ArenaMenu");
register_clcmd("say /duel", "Clcmd_ArenaMenu");
register_clcmd("say_team /duel", "Clcmd_ArenaMenu");
DisableHamForward(g_iFwdSpawn = RegisterHam(Ham_Spawn, "player", "fwHam_SpawnPlayer_Post", 1));
DisableHamForward(g_iFwdKilled = RegisterHam(Ham_Killed, "player", "fwHam_KilledPlayer_Post", 1));
DisableHamForward(g_iFwdTakeDmg = RegisterHam(Ham_TakeDamage, "player", "fwHam_TakeDmgPlayer_Pre", 0));
create_menu_arena_settings();
check_cfg_save_file();
g_iMaxPlayers = get_maxplayers();
}
public Clcmd_ArenaSettings(id)
{
if(!is_user_alive(id))
{
color_print(id, "!y[!g%s!y] !yТолько для живых", ARENA_PREFIX);
return;
}
if(~get_user_flags(id) & ARENA_SETTINGS_ACCESS)
{
color_print(id, "!y[!g%s!y] !yУ вас нет доступа", ARENA_PREFIX);
return;
}
if(g_iArenaState == ARENA_STATE_BLOCK)
{
color_print(id, "!y[!g%s!y] !yАрена занята боем", ARENA_PREFIX);
return;
}
menu_display(id, g_iArenaSettingsMenu);
}
public ArenaSettings_Handler(id, iMenu, iItem)
{
if(iItem == MENU_EXIT || g_iArenaState == ARENA_STATE_BLOCK || !is_user_alive(id))
return;
switch(iItem)
{
case 0:
{
if(is_valid_ent(g_iArenaEnt))
{
color_print(id, "!y[!g%s!y] !yАрена уже создана", ARENA_PREFIX);
return;
}
new Float: fOrigin[3];
get_origin_aiming(id, fOrigin);
arena_platform_create(fOrigin);
g_iArenaState = ARENA_STATE_EDIT;
color_print(id, "!y[!g%s!y] !yАрена успешно создана", ARENA_PREFIX);
}
case 1..6:
{
if(!is_valid_ent(g_iArenaEnt))
{
color_print(id, "!y[!g%s!y] !yАрена не создана", ARENA_PREFIX);
return;
}
if(g_iArenaState != ARENA_STATE_EDIT)
{
color_print(id, "!y[!g%s!y] !yАрена должна быть в режиме редактирования", ARENA_PREFIX);
return;
}
static iAxis[6]; iAxis = {0, 0, 1, 1, 2, 2};
static iValue[6]; iValue = {10, -10, 10, -10, 10, -10};
static Float: fOrigin[3];
entity_get_vector(g_iArenaEnt, EV_VEC_origin, fOrigin);
fOrigin[iAxis[iItem-1]] += iValue[iItem-1];
entity_set_vector(g_iArenaEnt, EV_VEC_origin, fOrigin);
}
case 7:
{
if(!is_valid_ent(g_iArenaEnt))
{
color_print(id, "!y[!g%s!y] !yАрена не создана", ARENA_PREFIX);
return;
}
if(entity_get_int(g_iArenaEnt, EV_INT_solid) == SOLID_TRIGGER)
{
color_print(id, "!y[!g%s!y] !yАрена уже сохранена", ARENA_PREFIX);
return;
}
static Float: fOrigin[3], sOrigin[3][8], sData[32];
entity_get_vector(g_iArenaEnt, EV_VEC_origin, fOrigin);
float_to_str(fOrigin[0], sOrigin[0], 7);
float_to_str(fOrigin[1], sOrigin[1], 7);
float_to_str(fOrigin[2], sOrigin[2], 7);
formatex(sData, charsmax(sData), "%s %s %s", sOrigin[0], sOrigin[1], sOrigin[2]);
write_file(g_sArenaCfgSaveFile, sData, 1);
entity_set_int(g_iArenaEnt, EV_INT_solid, SOLID_TRIGGER);
set_rendering(g_iArenaEnt, kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha, 0);
g_iArenaState = ARENA_STATE_READY;
color_print(id, "!y[!g%s!y] !yАрена скрыта, сохранена и готова к боям", ARENA_PREFIX);
}
case 8:
{
if(!is_valid_ent(g_iArenaEnt))
{
color_print(id, "!y[!g%s!y] !yАрена не создана", ARENA_PREFIX);
return;
}
if(g_iArenaState == ARENA_STATE_EDIT)
{
color_print(id, "!y[!g%s!y] !yАрена уже в режиме редактирования", ARENA_PREFIX);
return;
}
entity_set_int(g_iArenaEnt, EV_INT_solid, SOLID_BBOX);
set_rendering(g_iArenaEnt, kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha, 255);
g_iArenaState = ARENA_STATE_EDIT;
color_print(id, "!y[!g%s!y] !yАрена переведена в режим редактирования", ARENA_PREFIX);
}
case 9:
{
if(!is_valid_ent(g_iArenaEnt))
{
color_print(id, "!y[!g%s!y] !yАрена не создана", ARENA_PREFIX);
return;
}
remove_entity(g_iArenaEnt);
write_file(g_sArenaCfgSaveFile, "", 1);
g_iArenaState = ARENA_STATE_NOT;
color_print(id, "!y[!g%s!y] !yАрена удалена", ARENA_PREFIX);
}
}
menu_display(id, g_iArenaSettingsMenu);
}
public Clcmd_ArenaMenu(id)
{
if(!is_user_alive(id))
{
color_print(id, "!y[!g%s!y] !yАрена для живых", ARENA_PREFIX);
return;
}
if(g_iArenaState != ARENA_STATE_READY)
{
color_print(id, "!y[!g%s!y] !yАрена в данный момент недоступна", ARENA_PREFIX);
return;
}
new iTeam = get_user_team(id), iMenu = menu_create("\rВыбор противника для арены\w", "ChooseEnemy_Handler"), iCount;
static sName[32], sID[3];
for(new iPlayer = 1; iPlayer <= g_iMaxPlayers; iPlayer++)
{
if(!is_user_alive(iPlayer))
continue;
if(iTeam == get_user_team(iPlayer))
continue;
get_user_name(iPlayer, sName, charsmax(sName));
num_to_str(iPlayer, sID, charsmax(sID));
menu_additem(iMenu, sName, sID);
iCount++;
}
if(iCount > 0)
{
menu_setprop(iMenu, MPROP_BACKNAME, "Назад");
menu_setprop(iMenu, MPROP_NEXTNAME, "Далее");
menu_setprop(iMenu, MPROP_EXITNAME, "Выход");
menu_display(id, iMenu);
}else{
color_print(id, "!y[!g%s!y] !yНет игроков для битвы на арене", ARENA_PREFIX);
menu_destroy(iMenu);
}
}
public ChooseEnemy_Handler(id, iMenu, iItem)
{
new sID[3], sTemp[1], iPlayer;
menu_item_getinfo(iMenu, iItem, iPlayer, sID, charsmax(sID), sTemp, charsmax(sTemp), iPlayer);
iPlayer = str_to_num(sID);
if(is_user_alive(id) && is_user_alive(iPlayer) && g_iArenaState == ARENA_STATE_READY)
{
static sName[32], sInfo[128];
get_user_name(id, sName, charsmax(sName));
formatex(sInfo, charsmax(sInfo), "\y%s \wвызвал вас на дуэль", sName);
new iMenuEnemy = menu_create(sInfo, "ChooseEnemyAgree_Handler");
g_iTempID[iPlayer] = id;
menu_additem(iMenuEnemy, "Согласиться");
menu_setprop(iMenuEnemy, MPROP_EXITNAME, "Отказаться");
menu_display(iPlayer, iMenuEnemy, 0);
}
menu_destroy(iMenu);
}
public ChooseEnemyAgree_Handler(iPlayer, iMenu, iItem)
{
if(iItem == ITEM_IGNORE && is_user_alive(iPlayer) && is_user_alive(g_iTempID[iPlayer]) && g_iArenaState == ARENA_STATE_READY)
start_duel_pre(g_iTempID[iPlayer], iPlayer);
else if(is_user_connected(g_iTempID[iPlayer]))
color_print(g_iTempID[iPlayer], "!y[!g%s!y] !yБитва на арене отменена", ARENA_PREFIX);
menu_destroy(iMenu);
}
public start_duel_pre(id, iPlayer)
{
g_iArenaState = ARENA_STATE_BLOCK;
g_iDuelantOne = id;
g_iDuelantTwo = iPlayer;
entity_set_int(g_iArenaEnt, EV_INT_solid, SOLID_BBOX);
set_rendering(g_iArenaEnt, kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha, 255);
EnableHamForward(g_iFwdSpawn);
EnableHamForward(g_iFwdKilled);
EnableHamForward(g_iFwdTakeDmg);
ExecuteHamB(Ham_CS_RoundRespawn, id);
ExecuteHamB(Ham_CS_RoundRespawn, iPlayer);
teleport_to_points(id, DUELANT_ONE);
teleport_to_points(iPlayer, DUELANT_TWO);
entity_set_int(id, EV_INT_flags, entity_get_int(id, EV_INT_flags) | FL_FROZEN);
entity_set_int(iPlayer, EV_INT_flags, entity_get_int(iPlayer, EV_INT_flags) | FL_FROZEN);
entity_set_float(id, EV_FL_takedamage, DAMAGE_NO);
entity_set_float(iPlayer, EV_FL_takedamage, DAMAGE_NO);
g_iDuelTimerPre = ARENA_DUEL_TIMER_PRE;
g_iDuelRound = 1;
g_iDuelantKillsOne = g_iDuelantKillsTwo = 0;
set_task(1.0, "Task_DuelPre", TASK_DUEL_PRE, .flags = "b");
}
public Task_DuelPre()
{
if(--g_iDuelTimerPre <= 0)
{
if(is_user_alive(g_iDuelantOne))
{
entity_set_int(g_iDuelantOne, EV_INT_flags, entity_get_int(g_iDuelantOne, EV_INT_flags) & ~FL_FROZEN);
entity_set_float(g_iDuelantOne, EV_FL_takedamage, DAMAGE_YES);
}
if(is_user_alive(g_iDuelantTwo))
{
entity_set_int(g_iDuelantTwo, EV_INT_flags, entity_get_int(g_iDuelantTwo, EV_INT_flags) & ~FL_FROZEN);
entity_set_float(g_iDuelantTwo, EV_FL_takedamage, DAMAGE_YES);
}
remove_task(TASK_DUEL_PRE);
g_iDuelTimer = ARENA_DUEL_TIMER_FIGHT;
set_task(1.0, "Task_Arena", TASK_ARENA, .flags = "b");
return;
}
if(is_user_alive(g_iDuelantOne))
create_beam_cylinder(g_iDuelantOne);
if(is_user_alive(g_iDuelantTwo))
create_beam_cylinder(g_iDuelantTwo);
static sName1[32], sName2[32];
get_user_name(g_iDuelantOne, sName1, charsmax(sName1));
get_user_name(g_iDuelantTwo, sName2, charsmax(sName2));
set_dhudmessage(random_num(0, 255), random_num(0, 255), random_num(0, 255), -1.0, 0.15, 0, 0.1, 1.0, 0.1, 0.1);
show_dhudmessage(g_iDuelantOne, "Дуэль^n[%s vs %s]^nПодготовка: %i сек", sName1, sName2, g_iDuelTimerPre);
show_dhudmessage(g_iDuelantTwo, "Дуэль^n[%s vs %s]^nПодготовка: %i сек", sName1, sName2, g_iDuelTimerPre);
}
public Task_Arena()
{
if(is_user_alive(g_iDuelantOne) && is_user_alive(g_iDuelantTwo))
{
static sTime[32];
g_iDuelTimer--;
if(g_iDuelTimer >= 60)
formatex(sTime, charsmax(sTime), "%i мин %i сек", g_iDuelTimer / 60, g_iDuelTimer % 60);
else if(g_iDuelTimer > 0)
formatex(sTime, charsmax(sTime), "%i сек", g_iDuelTimer);
else
{
duel_arena_end();
duel_reset_settings();
return;
}
static sName1[32], sName2[32];
get_user_name(g_iDuelantOne, sName1, charsmax(sName1));
get_user_name(g_iDuelantTwo, sName2, charsmax(sName2));
set_dhudmessage(255, 0, 0, -1.0, 0.01, 0, 0.1, 1.0, 0.1, 0.1);
show_dhudmessage(0, "Дуэль [%s]^n[%s vs %s]^nРаунд: [%i/%i]^nСчёт: [%i | %i]", sTime, sName1, sName2, g_iDuelRound, ARENA_DUEL_ROUNDS, g_iDuelantKillsOne, g_iDuelantKillsTwo);
check_is_duelant_to_plat(g_iDuelantOne);
check_is_duelant_to_plat(g_iDuelantTwo);
}
}
public fwHam_SpawnPlayer_Post(id)
{
if(id == g_iDuelantOne)
{
entity_set_float(id, EV_FL_health, float(ARENA_DUEL_HEALTH));
fm_strip_user_weapons(id);
fm_give_item(id, "weapon_knife");
teleport_to_points(id, DUELANT_ONE);
}
else if(id == g_iDuelantTwo)
{
entity_set_float(id, EV_FL_health, float(ARENA_DUEL_HEALTH));
fm_strip_user_weapons(id);
fm_give_item(id, "weapon_knife");
teleport_to_points(id, DUELANT_TWO);
}
}
public fwHam_KilledPlayer_Post(id)
{
if(id == g_iDuelantOne)
{
if(++g_iDuelRound > ARENA_DUEL_ROUNDS)
{
duel_arena_end();
duel_reset_settings();
}
if(is_user_connected(g_iDuelantOne))
ExecuteHamB(Ham_CS_RoundRespawn, g_iDuelantOne);
if(is_user_connected(g_iDuelantTwo))
ExecuteHamB(Ham_CS_RoundRespawn, g_iDuelantTwo);
g_iDuelantKillsTwo++;
}
else if(id == g_iDuelantTwo)
{
if(++g_iDuelRound >= ARENA_DUEL_ROUNDS)
{
duel_arena_end();
duel_reset_settings();
}
if(is_user_connected(g_iDuelantOne))
ExecuteHamB(Ham_CS_RoundRespawn, g_iDuelantOne);
if(is_user_connected(g_iDuelantTwo))
ExecuteHamB(Ham_CS_RoundRespawn, g_iDuelantTwo);
g_iDuelantKillsOne++;
}
}
public fwHam_TakeDmgPlayer_Pre(iVictim, iInflictor, iAttacker, Float: fDmg, iTypeDmg)
{
return (iVictim == g_iDuelantOne && iAttacker != g_iDuelantTwo ||
iVictim == g_iDuelantTwo && iAttacker != g_iDuelantOne) ? HAM_SUPERCEDE : HAM_IGNORED;
}
public teleport_to_points(id, iDuelantNum)
{
new Float: fOrigin[3];
entity_get_vector(g_iArenaEnt, EV_VEC_origin, fOrigin);
fOrigin[2] += 40;
switch(iDuelantNum)
{
case DUELANT_ONE: fOrigin[0] -= 300;
case DUELANT_TWO: fOrigin[0] += 300;
}
entity_set_vector(id, EV_VEC_origin, fOrigin);
}
public check_is_duelant_to_plat(id)
{
new iEnt, iTrace, Float: fOriginStart[3], Float: fOriginEnd[3];
entity_get_vector(id, EV_VEC_origin, fOriginStart);
fOriginEnd = fOriginStart; fOriginEnd[2] -= 500;
iTrace = create_tr2();
engfunc(EngFunc_TraceLine, fOriginStart, fOriginEnd, 0, id, iTrace);
iEnt = get_tr2(iTrace, TR_pHit);
if(!pev_valid(iEnt) || entity_get_int(iEnt, EV_INT_iuser1) != ARENA_SEC_KEY)
{
teleport_to_points(g_iDuelantOne, DUELANT_ONE);
teleport_to_points(g_iDuelantTwo, DUELANT_TWO);
}
}
public create_menu_arena_settings()
{
g_iArenaSettingsMenu = menu_create("\rНастройки арены", "ArenaSettings_Handler");
menu_additem(g_iArenaSettingsMenu, "\yУстановить");
menu_additem(g_iArenaSettingsMenu, "\wСместить \yвперёд");
menu_additem(g_iArenaSettingsMenu, "\wСместить \yназад");
menu_additem(g_iArenaSettingsMenu, "\wСместить \yвправо");
menu_additem(g_iArenaSettingsMenu, "\wСместить \yвлево");
menu_additem(g_iArenaSettingsMenu, "\wСместить \yвверх");
menu_additem(g_iArenaSettingsMenu, "\wСместить \yвниз");
menu_additem(g_iArenaSettingsMenu, "Сохранить");
menu_additem(g_iArenaSettingsMenu, "Редактировать");
menu_additem(g_iArenaSettingsMenu, "Удалить");
menu_setprop(g_iArenaSettingsMenu, MPROP_BACKNAME, "\wНазад");
menu_setprop(g_iArenaSettingsMenu, MPROP_NEXTNAME, "Далее");
menu_setprop(g_iArenaSettingsMenu, MPROP_EXITNAME, "Выход");
}
public check_cfg_save_file()
{
if(!dir_exists("addons/amxmodx/data/arena"))
mkdir("addons/amxmodx/data/arena")
new sData[32]; get_mapname(sData, charsmax(sData));
formatex(g_sArenaCfgSaveFile, charsmax(g_sArenaCfgSaveFile), "addons/amxmodx/data/arena/%s.cfg", sData);
write_file(g_sArenaCfgSaveFile, "[Система сохранения координат арены] [by 6u3oH]", 0);
new sOrigin[3][8], Float: fOrigin[3], iLen;
read_file(g_sArenaCfgSaveFile, 1, sData, charsmax(sData), iLen);
if(sData[0] == EOS)
g_iArenaState = ARENA_STATE_NOT;
else
{
parse(sData, sOrigin[0], 7, sOrigin[1], 7, sOrigin[2], 7);
fOrigin[0] = str_to_float(sOrigin[0]);
fOrigin[1] = str_to_float(sOrigin[1]);
fOrigin[2] = str_to_float(sOrigin[2]);
arena_platform_create(fOrigin);
entity_set_int(g_iArenaEnt, EV_INT_solid, SOLID_TRIGGER);
set_rendering(g_iArenaEnt, kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha, 0);
g_iArenaState = ARENA_STATE_READY;
}
}
public arena_platform_create(Float: fOrigin[3])
{
g_iArenaEnt = create_entity("info_null");
entity_set_string(g_iArenaEnt, EV_SZ_classname, ARENA_CLASSNAME);
entity_set_int(g_iArenaEnt, EV_INT_solid, SOLID_BBOX);
entity_set_int(g_iArenaEnt, EV_INT_movetype, MOVETYPE_FLY);
entity_set_int(g_iArenaEnt, EV_INT_iuser1, ARENA_SEC_KEY);
entity_set_vector(g_iArenaEnt, EV_VEC_origin, fOrigin);
entity_set_model(g_iArenaEnt, ARENA_MODEL);
entity_set_size(g_iArenaEnt, ARENA_MINSIZE, ARENA_MAXSIZE);
}
public get_origin_aiming(id, Float: fData[3])
{
new Float: fOrigin[3], Float: fViewOfs[3];
entity_get_vector(id, EV_VEC_origin, fOrigin);
entity_get_vector(id, EV_VEC_view_ofs, fViewOfs);
for(new i; i < 3; i++)
fOrigin[i] += fViewOfs[i];
entity_get_vector(id, EV_VEC_v_angle, fData);
engfunc(EngFunc_MakeVectors, fData);
global_get(glb_v_forward, fData);
for(new i; i < 3; i++)
fData[i] = fData[i] * 9999.0 + fOrigin[i];
engfunc(EngFunc_TraceLine, fOrigin, fData, IGNORE_MONSTERS, id, 0);
get_tr2(0, TR_vecEndPos, fData);
}
public duel_reset_settings()
{
entity_set_int(g_iArenaEnt, EV_INT_solid, SOLID_TRIGGER);
set_rendering(g_iArenaEnt, kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha, 0);
if(is_user_alive(g_iDuelantOne))
{
entity_set_int(g_iDuelantOne, EV_INT_flags, entity_get_int(g_iDuelantOne, EV_INT_flags) & ~FL_FROZEN);
entity_set_float(g_iDuelantOne, EV_FL_takedamage, DAMAGE_YES);
ExecuteHamB(Ham_CS_RoundRespawn, g_iDuelantOne);
}
if(is_user_alive(g_iDuelantTwo))
{
entity_set_int(g_iDuelantTwo, EV_INT_flags, entity_get_int(g_iDuelantTwo, EV_INT_flags) & ~FL_FROZEN);
entity_set_float(g_iDuelantTwo, EV_FL_takedamage, DAMAGE_YES);
ExecuteHamB(Ham_CS_RoundRespawn, g_iDuelantTwo);
}
remove_task(TASK_ARENA);
g_iArenaState = ARENA_STATE_READY;
g_iDuelantOne = FM_NULLENT;
g_iDuelantTwo = FM_NULLENT;
}
public duel_arena_end()
{
static sName1[32], sName2[32];
get_user_name(g_iDuelantOne, sName1, charsmax(sName1));
get_user_name(g_iDuelantTwo, sName2, charsmax(sName2));
if(g_iDuelRound == 0)
color_print(0, "!y[!g%s!y] !g%s !yи !g%s !yза бездействие в дуэли ничего не получают", ARENA_PREFIX, sName1, sName2);
else if(g_iDuelantKillsOne > g_iDuelantKillsTwo)
{
fm_set_user_money(g_iDuelantOne, fm_get_user_money(g_iDuelantOne) + ARENA_DUEL_AWARDS);
color_print(0, "!y[!g%s!y] !g%s !yпобедил !g%s !yв дуэли и получает !g%i$", ARENA_PREFIX, sName1, sName2, ARENA_DUEL_AWARDS);
}
else if(g_iDuelantKillsOne < g_iDuelantKillsTwo)
{
fm_set_user_money(g_iDuelantTwo, fm_get_user_money(g_iDuelantTwo) + ARENA_DUEL_AWARDS);
color_print(0, "!y[!g%s!y] !g%s !yпобедил !g%s !yв дуэли и получает !g%i$", ARENA_PREFIX, sName2, sName1, ARENA_DUEL_AWARDS);
}else{
fm_set_user_money(g_iDuelantOne, fm_get_user_money(g_iDuelantOne) + ARENA_DUEL_AWARDS / 2);
fm_set_user_money(g_iDuelantTwo, fm_get_user_money(g_iDuelantTwo) + ARENA_DUEL_AWARDS / 2);
color_print(0, "!y[!g%s!y] !g%s !yи !g%s !yсыграли в ничью на дуэли и получают !g%i$", ARENA_PREFIX, sName1, sName2, ARENA_DUEL_AWARDS / 2);
}
}
public create_beam_cylinder(id)
{
new Float: fOrigin[3];
entity_get_vector(id, EV_VEC_origin, fOrigin);
engfunc(EngFunc_MessageBegin, MSG_PVS, SVC_TEMPENTITY, fOrigin, 0);
write_byte(TE_BEAMCYLINDER);
engfunc(EngFunc_WriteCoord, fOrigin[0]);
engfunc(EngFunc_WriteCoord, fOrigin[1]);
engfunc(EngFunc_WriteCoord, fOrigin[2]);
engfunc(EngFunc_WriteCoord, fOrigin[0]);
engfunc(EngFunc_WriteCoord, fOrigin[1]);
engfunc(EngFunc_WriteCoord, fOrigin[2] + 400.0);
write_short(g_iSpriteBeam);
write_byte(0);
write_byte(0);
write_byte(4);
write_byte(60);
write_byte(0);
switch(get_user_team(id))
{
case 1:
{
write_byte(255);
write_byte(0);
write_byte(0);
}
case 2:
{
write_byte(0);
write_byte(0);
write_byte(255);
}
default:
{
write_byte(0);
write_byte(255);
write_byte(0);
}
}
write_byte(200);
write_byte(0);
message_end()
}
public fm_get_user_money(id)
{
return get_pdata_int(id, 0x73);
}
public fm_set_user_money(id, iMoney)
{
static iMsg;
if(!iMsg)
iMsg = get_user_msgid("Money");
set_pdata_int(id, 0x73, iMoney);
message_begin(MSG_ONE, iMsg, {0, 0, 0}, id);
write_long(iMoney);
write_byte(1);
message_end();
}
public fm_strip_user_weapons(id)
{
new iEnt = create_entity("player_weaponstrip");
dllfunc(DLLFunc_Spawn, iEnt);
dllfunc(DLLFunc_Use, iEnt, id);
engfunc(EngFunc_RemoveEntity, iEnt);
}
public fm_give_item(id, const sItem[])
{
new iEnt = create_entity(sItem);
new Float: fOrigin[3];
entity_get_vector(id, EV_VEC_origin, fOrigin);
entity_set_vector(iEnt, EV_VEC_origin, fOrigin);
entity_set_int(iEnt, EV_INT_spawnflags, entity_get_int(iEnt, EV_INT_spawnflags) | SF_NORESPAWN);
dllfunc(DLLFunc_Spawn, iEnt);
dllfunc(DLLFunc_Touch, iEnt, id);
}
public color_print(const id, const input[], any:...)
{
new count = 1, players[32]; static msg[191], iMsg;
if(!iMsg)
iMsg = get_user_msgid("SayText");
vformat(msg, 190, input, 3);
replace_all(msg, 190, "!g", "^4"); // Green Color
replace_all(msg, 190, "!y", "^1"); // Default Color
replace_all(msg, 190, "!t", "^3"); // Team Color
if(id)
players[0] = id;
else
get_players(players, count, "ch");
for(new i = 0; i < count; i++)
{
if(is_user_connected(players[i]))
{
message_begin(MSG_ONE_UNRELIABLE, iMsg, _, players[i]);
write_byte(players[i]);
write_string(msg);
message_end();
}
}
}
Последно промяна от OciXCrom на 25 Авг 2020, 21:18, променено общо 1 път.
Причина: Ползвай [code] таг.
Причина: Ползвай [code] таг.
-
- Подобни теми
- Отговори
- Преглеждания
- Последно мнение
-
- 5 Отговори
- 2271 Преглеждания
-
Последно мнение от Just
-
- 3 Отговори
- 359 Преглеждания
-
Последно мнение от Siska
-
- 0 Отговори
- 290 Преглеждания
-
Последно мнение от HeatoN
-
- 12 Отговори
- 605 Преглеждания
-
Последно мнение от Siska
-
- 1 Отговори
- 2249 Преглеждания
-
Последно мнение от erra1881
-
- 5 Отговори
- 541 Преглеждания
-
Последно мнение от HeatoN
-
- 0 Отговори
- 739 Преглеждания
-
Последно мнение от Tofua
Кой е на линия
Потребители разглеждащи този форум: Bing [Bot], Google [Bot] и 10 госта