Здравейте имам проблем със рази руска версия viewtopic.php?t=9603
на кнайф дуел проблема е там че като сложа дуела той си тръгва но арената е само една a би трябвало да е повече от една другия проблем е че като се пуснем двама във дуел ни пуска завъртяни не едни срещу друг а със гръб към противника и това е при всеки респаун ако някой може да ми помогне да го оправя имам и sma файла мога да го дам и него ако проблема е от мапа и мапа мога да дам
Проблем със кнайф дуел
-
HeatoN
Извън линия - Потребител
- Мнения: 232
- Регистриран на: 04 Фев 2022, 16:16
- Местоположение: Elhovo - Las Vegas
- Се отблагодари: 35 пъти
- Получена благодарност: 2 пъти
- Обратна връзка:
Проблем със кнайф дуел
Здравейте, Ние сме Dark-Star Counter-Strike базирана верига стремяща се да предостави качествени сървъри на своитепотребители
〢☆ При нас може да намерите:
〢☆ активен и помагащ STAFF
〢☆ Качествени сървъри.
〢☆ 24/7 поддръжка.
〢☆ Нашият дискорд: https://discord.gg/cPw8xauRPq
〢☆ При нас може да намерите:
〢☆ активен и помагащ STAFF
〢☆ Качествени сървъри.
〢☆ 24/7 поддръжка.
〢☆ Нашият дискорд: https://discord.gg/cPw8xauRPq
-
HeatoN
Извън линия - Потребител
- Мнения: 232
- Регистриран на: 04 Фев 2022, 16:16
- Местоположение: Elhovo - Las Vegas
- Се отблагодари: 35 пъти
- Получена благодарност: 2 пъти
- Обратна връзка:
Проблем със кнайф дуел
Това е кода
- Прикачени файлове
-
- knife_arena.sma
- (21.71 KiB) Свалено 35 пъти
- knife_arena.sma
- (21.71 KiB) Свалено 35 пъти
Здравейте, Ние сме Dark-Star Counter-Strike базирана верига стремяща се да предостави качествени сървъри на своитепотребители
〢☆ При нас може да намерите:
〢☆ активен и помагащ STAFF
〢☆ Качествени сървъри.
〢☆ 24/7 поддръжка.
〢☆ Нашият дискорд: https://discord.gg/cPw8xauRPq
〢☆ При нас може да намерите:
〢☆ активен и помагащ STAFF
〢☆ Качествени сървъри.
〢☆ 24/7 поддръжка.
〢☆ Нашият дискорд: https://discord.gg/cPw8xauRPq
-
TryAgain
Извън линия - Потребител
- Мнения: 182
- Регистриран на: 25 Яну 2017, 16:59
- Се отблагодари: 1 път
- Получена благодарност: 26 пъти
Проблем със кнайф дуел
Пробвай и кажи дали е така.
Код за потвърждение: Избери целия код
// Автор плагина: 6u3oH (https://vk.com/6u3oh)
// Еще больше плагинов в группе: https://vk.com/plugins_store
// При возникновении багов пишите в тему: https://vk.com/topic-53135352_39904406
#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[] = "Al Capone";
const ARENA_SETTINGS_ACCESS = ADMIN_IMMUNITY; // Флаг доступа к меню настроек арены
const ARENA_DUEL_TIMER_PRE = 10; // Время подготовки перед дуэлью (сек)
const ARENA_DUEL_TIMER_FIGHT = 180; // Время битвы на арене (сек)
const ARENA_DUEL_ROUNDS = 20; // Кол-во раундов на арене
const ARENA_DUEL_HEALTH = 35; // Устанавливаемое здоровье дуэлянтам
const ARENA_DUEL_AWARDS = 6000; // Награда за победу
new const ARENA_CLASSNAME[] = "arena";
new const ARENA_PREFIX[] = "Arena";
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] !yOnly for the living", ARENA_PREFIX);
return;
}
if(~get_user_flags(id) & ARENA_SETTINGS_ACCESS)
{
color_print(id, "!y[!g%s!y] !yYou don't have access", ARENA_PREFIX);
return;
}
if(g_iArenaState == ARENA_STATE_BLOCK)
{
color_print(id, "!y[!g%s!y] !yThe arena is busy", 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] !yThe arena has already been created", 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] !yArena has been created successfully", ARENA_PREFIX);
}
case 1..6:
{
if(!is_valid_ent(g_iArenaEnt))
{
color_print(id, "!y[!g%s!y] !yThe arena is not created", ARENA_PREFIX);
return;
}
if(g_iArenaState != ARENA_STATE_EDIT)
{
color_print(id, "!y[!g%s!y] !yArena must be in edit mode", 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] !yThe arena is not created", ARENA_PREFIX);
return;
}
if(entity_get_int(g_iArenaEnt, EV_INT_solid) == SOLID_TRIGGER)
{
color_print(id, "!y[!g%s!y] !yThe arena is already reserved", 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] !yThe arena is hidden, saved and ready to fight", ARENA_PREFIX);
}
case 8:
{
if(!is_valid_ent(g_iArenaEnt))
{
color_print(id, "!y[!g%s!y] !yArena not created", ARENA_PREFIX);
return;
}
if(g_iArenaState == ARENA_STATE_EDIT)
{
color_print(id, "!y[!g%s!y] !yArena is already in edit mode", 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] !yArena switched to edit mode", ARENA_PREFIX);
}
case 9:
{
if(!is_valid_ent(g_iArenaEnt))
{
color_print(id, "!y[!g%s!y] !yArena not created", ARENA_PREFIX);
return;
}
remove_entity(g_iArenaEnt);
write_file(g_sArenaCfgSaveFile, "", 1);
g_iArenaState = ARENA_STATE_NOT;
color_print(id, "!y[!g%s!y] !yArena removed", ARENA_PREFIX);
}
}
menu_display(id, g_iArenaSettingsMenu);
}
public Clcmd_ArenaMenu(id)
{
if(!is_user_alive(id))
{
color_print(id, "!y[!g%s!y] !yarena for the living", ARENA_PREFIX);
return;
}
if(g_iArenaState != ARENA_STATE_READY)
{
color_print(id, "!y[!g%s!y] !yArena is currently unavailable", ARENA_PREFIX);
return;
}
new iTeam = get_user_team(id), iMenu = menu_create("\rChoose an opponent for a duel\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, "Back");
menu_setprop(iMenu, MPROP_NEXTNAME, "Further");
menu_setprop(iMenu, MPROP_EXITNAME, "Exit");
menu_display(id, iMenu);
}else{
color_print(id, "!y[!g%s!y] !yThere are no players to fight in the arena", 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] !yArena battle canceled", 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, "Duel^n[%s vs %s]^nPreparation: %i сек", sName1, sName2, g_iDuelTimerPre);
show_dhudmessage(g_iDuelantTwo, "Duel^n[%s vs %s]^nPreparation: %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 min %i sec", g_iDuelTimer / 60, g_iDuelTimer % 60);
else if(g_iDuelTimer > 0)
formatex(sTime, charsmax(sTime), "%i sec", 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, "Duel [%s]^n[%s vs %s]^nRound: [%i/%i]^nScore: [%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)
{
static Float:Angel[3];
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);
Angel[1] += 180.0;
set_pev(id, pev_angles, Angel);
}
}
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("\rArena settings", "ArenaSettings_Handler");
menu_additem(g_iArenaSettingsMenu, "\yInstall");
menu_additem(g_iArenaSettingsMenu, "\wDisplace \yвперёд");
menu_additem(g_iArenaSettingsMenu, "\wDisplace \yназад");
menu_additem(g_iArenaSettingsMenu, "\wDisplace \yвправо");
menu_additem(g_iArenaSettingsMenu, "\wDisplace \yвлево");
menu_additem(g_iArenaSettingsMenu, "\wDisplace \yвверх");
menu_additem(g_iArenaSettingsMenu, "\wDisplace \yвниз");
menu_additem(g_iArenaSettingsMenu, "Save");
menu_additem(g_iArenaSettingsMenu, "Edit");
menu_additem(g_iArenaSettingsMenu, "Delete");
menu_setprop(g_iArenaSettingsMenu, MPROP_BACKNAME, "\wBack");
menu_setprop(g_iArenaSettingsMenu, MPROP_NEXTNAME, "Further");
menu_setprop(g_iArenaSettingsMenu, MPROP_EXITNAME, "Exit");
}
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, "[The system kept the coordinates of the arena] [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 !yfor inaction in duels they get nothing", 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 !yWin vs !g%s !yin a duel and gets !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 !yWin vs !g%s !yin a duel and gets !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 !yplayed a draw in a duel and get !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();
}
}
}
-
HeatoN
Извън линия - Потребител
- Мнения: 232
- Регистриран на: 04 Фев 2022, 16:16
- Местоположение: Elhovo - Las Vegas
- Се отблагодари: 35 пъти
- Получена благодарност: 2 пъти
- Обратна връзка:
Проблем със кнайф дуел
Пак е както преди и показва информацията за дуела на играчи който не са във дуел
Здравейте, Ние сме Dark-Star Counter-Strike базирана верига стремяща се да предостави качествени сървъри на своитепотребители
〢☆ При нас може да намерите:
〢☆ активен и помагащ STAFF
〢☆ Качествени сървъри.
〢☆ 24/7 поддръжка.
〢☆ Нашият дискорд: https://discord.gg/cPw8xauRPq
〢☆ При нас може да намерите:
〢☆ активен и помагащ STAFF
〢☆ Качествени сървъри.
〢☆ 24/7 поддръжка.
〢☆ Нашият дискорд: https://discord.gg/cPw8xauRPq
-
- Подобни теми
- Отговори
- Преглеждания
- Последно мнение
-
- 7 Отговори
- 3638 Преглеждания
-
Последно мнение от WaLkZ
-
- 5 Отговори
- 299 Преглеждания
-
Последно мнение от Turb0
-
- 4 Отговори
- 424 Преглеждания
-
Последно мнение от furia
-
- 4 Отговори
- 1713 Преглеждания
-
Последно мнение от investigative
-
- 0 Отговори
- 842 Преглеждания
-
Последно мнение от YankoNL
-
- 0 Отговори
- 788 Преглеждания
-
Последно мнение от tom1k
-
- 4 Отговори
- 1254 Преглеждания
-
Последно мнение от KARASKO
Кой е на линия
Потребители разглеждащи този форум: Google [Bot] и 6 госта