Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

Нужно добавить функцию

, звездочку возле прицела.
staff2517
сообщение 8.12.2014, 0:04
Сообщение #1
Стаж: 12 лет

Сообщений: 275
Благодарностей: 5
Полезность: 0

Всем привет, ребята добавьте плз в плагин чтобы показывал звездочку возле прицела при нанесении урона.
Код:
#include <amxmodx>
#include <fun>

new pMaxHP, pAddHP, pHsAddHP, pFade, pOnlyAdmins;
new AddHP, HsAddHP, MaxHP, sFade, oAdmins;
new g_HudSyncMsg, g_ScreenMsg;
new killer_HP, killerID;

new g_iAdmin[33];

public plugin_init()
{
#define Version "1.2"
register_plugin("Lite Vampire", Version, "neygomon");
register_cvar("lv_neygomon", Version, FCVAR_SERVER | FCVAR_SPONLY)

register_event("DeathMsg", "eDeathMsg", "a", "1>0");

pMaxHP = register_cvar("lv_maxhp", "100"); // Максимум HP
pAddHP = register_cvar("lv_addhp", "10"); // Добавление за убийство в тело
pHsAddHP = register_cvar("lv_hsaddhp", "20"); // Добавление за убийство в лицо :D
pFade = register_cvar("lv_fade", "0"); // Включить\выключить свечение экрана
pOnlyAdmins = register_cvar("lv_oadmins", "1"); // Все функции плагина только для админов

g_ScreenMsg = get_user_msgid("ScreenFade");
g_HudSyncMsg = CreateHudSyncObj();

set_task(1.5, "Load_Cfg");
}

public Load_Cfg()
{
AddHP = get_pcvar_num(pAddHP);
HsAddHP = get_pcvar_num(pHsAddHP);
MaxHP = get_pcvar_num(pMaxHP);
sFade = get_pcvar_num(pFade);
oAdmins = get_pcvar_num(pOnlyAdmins);
}

public client_putinserver(id)
{
if(oAdmins)
{
if(get_user_flags(id) & ADMIN_LEVEL_D) g_iAdmin[id] = 1;
else g_iAdmin[id] = 0;
}
}

public eDeathMsg()
{
if(((killerID = read_data(1)) == read_data(2)) || (oAdmins && !g_iAdmin[killerID]))
return;
killer_HP = get_user_health(killerID);
static TempHP; TempHP = (read_data(3) == 1) ? HsAddHP : AddHP;
set_user_health(killerID, ((killer_HP += TempHP) > MaxHP) ? MaxHP : killer_HP);
set_hudmessage(0, 255, 0, -1.0, 0.15, 0, 1.0, 1.0, 0.1, 0.1, -1);
ShowSyncHudMsg(killerID, g_HudSyncMsg, "Добавлено +%d HP", TempHP);
/* Fade */
if(!sFade)
return;
message_begin(MSG_ONE_UNRELIABLE, g_ScreenMsg, {0, 0, 0}, killerID);
write_short(1<<10);
write_short(1<<10);
write_short(0x0000);
write_byte(0);
write_byte(0);
write_byte(200);
write_byte(75);
message_end();
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
voed
сообщение 8.12.2014, 0:07
Сообщение #2
Стаж: 11 лет

Сообщений: 2593
Благодарностей: 1760
Полезность: 405

Щито? Какую звездочку?
Может вы покажете свои наброски кода, чтоб вам помогли?

Отредактировал: voed, - 8.12.2014, 0:07
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
staff2517
сообщение 8.12.2014, 0:10
Сообщение #3
Стаж: 12 лет

Сообщений: 275
Благодарностей: 5
Полезность: 0

Цитата(voed @ 7.12.2014, 23:03) *
Щито? Какую звездочку?
Может вы покажете свои наброски кода, чтоб вам помогли?

код
public damager(victim, inflicator, attacker, Float:damage)
{
if(!is_user_connected(attacker))
return;

if(victim == attacker || !victim)
return;

if(is_user_alive(attacker))
{
if(damage > 0)
{
if(cs_get_user_team(attacker) == cs_get_user_team(victim))
return;

set_dhudmessage(30, 144, 255, -0.49, -0.51, 0, 0.01, 0.01)
show_dhudmessage(attacker, " * ")
}
}
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
voed
сообщение 8.12.2014, 0:19
Сообщение #4
Стаж: 11 лет

Сообщений: 2593
Благодарностей: 1760
Полезность: 405

staff2517, надо точнее выражаться, а то я тут напридумывал себе какие-то спрайты в виде звезды, а оказывается надо обычный символ в hud:D
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
staff2517
сообщение 8.12.2014, 0:22
Сообщение #5
Стаж: 12 лет

Сообщений: 275
Благодарностей: 5
Полезность: 0

Цитата(voed @ 7.12.2014, 23:15) *
staff2517, надо точнее выражаться, а то я тут напридумывал себе какие-то спрайты в виде звезды, а оказывается надо обычный символ в hud:D

Хорошо, на следующий раз при наличии кода сразу его выложу.
Я пробовал сам запилить, даже скимпилировался с ошибками smile.gif но функция не работала.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
voed
сообщение 8.12.2014, 0:27
Сообщение #6
Стаж: 11 лет

Сообщений: 2593
Благодарностей: 1760
Полезность: 405

Цитата(staff2517 @ 7.12.2014, 23:18) *
Хорошо, на следующий раз при наличии кода сразу его выложу.
Я пробовал сам запилить, даже скимпилировался с ошибками smile.gif но функция не работала.

Чтоб функция работала надо чтоб ее вызывал какой-то эвент. В plugin_init надо добавить Код:
RegisterHam(Ham_TakeDamage,"player","damager",0)

Ну и #include <hamsandwich>
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
staff2517
сообщение 8.12.2014, 0:34
Сообщение #7
Стаж: 12 лет

Сообщений: 275
Благодарностей: 5
Полезность: 0

Цитата(voed @ 7.12.2014, 23:23) *
Чтоб функция работала надо чтоб ее вызывал какой-то эвент. В plugin_init надо добавить Код:
RegisterHam(Ham_TakeDamage,"player","damager",0)

Ну и #include <hamsandwich>

инклуид только hamsandwich добавить ? а dhudmessage не нужен ?

Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
voed
сообщение 8.12.2014, 0:35
Сообщение #8
Стаж: 11 лет

Сообщений: 2593
Благодарностей: 1760
Полезность: 405

Цитата(staff2517 @ 7.12.2014, 23:30) *
инклуид только hamsandwich добавить ? а dhudmessage не нужен ?

Нужен, само собой)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
staff2517
сообщение 8.12.2014, 0:37
Сообщение #9
Стаж: 12 лет

Сообщений: 275
Благодарностей: 5
Полезность: 0

Цитата(voed @ 7.12.2014, 23:31) *
Нужен, само собой)

ну а куда это прописать? Код:
RegisterHam(Ham_TakeDamage,"player","damager",0)

Если не сложно запилите
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
voed
сообщение 8.12.2014, 0:43
Сообщение #10
Стаж: 11 лет

Сообщений: 2593
Благодарностей: 1760
Полезность: 405

Цитата(staff2517 @ 7.12.2014, 23:33) *
ну а куда это прописать? Код:
RegisterHam(Ham_TakeDamage,"player","damager",0)

Если не сложно запилите

Я же написал, в plugin_init
Код:
#include <amxmodx>
#include <fun>
#include <hamsandwich>
#include <cstrike>

new pMaxHP, pAddHP, pHsAddHP, pFade, pOnlyAdmins;
new AddHP, HsAddHP, MaxHP, sFade, oAdmins;
new g_HudSyncMsg, g_ScreenMsg;
new killer_HP, killerID;

new g_iAdmin[33];

public plugin_init()
{
#define Version "1.2"
register_plugin("Lite Vampire", Version, "neygomon");
register_cvar("lv_neygomon", Version, FCVAR_SERVER | FCVAR_SPONLY)

register_event("DeathMsg", "eDeathMsg", "a", "1>0");
RegisterHam(Ham_TakeDamage,"player","damager",0)

pMaxHP = register_cvar("lv_maxhp", "100"); // Максимум HP
pAddHP = register_cvar("lv_addhp", "10"); // Добавление за убийство в тело
pHsAddHP = register_cvar("lv_hsaddhp", "20"); // Добавление за убийство в лицо :D
pFade = register_cvar("lv_fade", "0"); // Включить\выключить свечение экрана
pOnlyAdmins = register_cvar("lv_oadmins", "1"); // Все функции плагина только для админов

g_ScreenMsg = get_user_msgid("ScreenFade");
g_HudSyncMsg = CreateHudSyncObj();

set_task(1.5, "Load_Cfg");
}

public Load_Cfg()
{
AddHP = get_pcvar_num(pAddHP);
HsAddHP = get_pcvar_num(pHsAddHP);
MaxHP = get_pcvar_num(pMaxHP);
sFade = get_pcvar_num(pFade);
oAdmins = get_pcvar_num(pOnlyAdmins);
}

public client_putinserver(id)
{
if(oAdmins)
{
if(get_user_flags(id) & ADMIN_LEVEL_D) g_iAdmin[id] = 1;
else g_iAdmin[id] = 0;
}
}

public eDeathMsg()
{
if(((killerID = read_data(1)) == read_data(2)) || (oAdmins && !g_iAdmin[killerID]))
return;
killer_HP = get_user_health(killerID);
static TempHP; TempHP = (read_data(3) == 1) ? HsAddHP : AddHP;
set_user_health(killerID, ((killer_HP += TempHP) > MaxHP) ? MaxHP : killer_HP);
set_hudmessage(0, 255, 0, -1.0, 0.15, 0, 1.0, 1.0, 0.1, 0.1, -1);
ShowSyncHudMsg(killerID, g_HudSyncMsg, "Добавлено +%d HP", TempHP);
/* Fade */
if(!sFade)
return;
message_begin(MSG_ONE_UNRELIABLE, g_ScreenMsg, {0, 0, 0}, killerID);
write_short(1<<10);
write_short(1<<10);
write_short(0x0000);
write_byte(0);
write_byte(0);
write_byte(200);
write_byte(75);
message_end();
}

public damager(victim, inflicator, attacker, Float:damage)
{
if(!is_user_connected(attacker))
return;

if(victim == attacker || !victim)
return;

if(is_user_alive(attacker))
{
if(damage > 0)
{
if(cs_get_user_team(attacker) == cs_get_user_team(victim))
return;

set_dhudmessage(30, 144, 255, -0.49, -0.51, 0, 0.01, 0.01)
show_dhudmessage(attacker, " * ")
}
}
}

У меня amxmodx 1.8.3, инклуд dhudmessage не понадобился, в старых версиях, по идее, надо
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
staff2517
сообщение 8.12.2014, 0:48
Сообщение #11
Стаж: 12 лет

Сообщений: 275
Благодарностей: 5
Полезность: 0

Шикарно, спасибочку дал. thank_you2.gif
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
staff2517
сообщение 8.12.2014, 11:32
Сообщение #12
Стаж: 12 лет

Сообщений: 275
Благодарностей: 5
Полезность: 0

voed, Еще такой вопросик возник, в этом плагине есть квар "lv_oadmins" который делает все функции для админов. Так вот вы не знаете как сделать чтобы при (lv_oadmins 1) свечение экрана было для всех ?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
voed
сообщение 8.12.2014, 15:15
Сообщение #13
Стаж: 11 лет

Сообщений: 2593
Благодарностей: 1760
Полезность: 405

Цитата(staff2517 @ 8.12.2014, 10:28) *
voed, Еще такой вопросик возник, в этом плагине есть квар "lv_oadmins" который делает все функции для админов. Так вот вы не знаете как сделать чтобы при (lv_oadmins 1) свечение экрана было для всех ?

Скрытый текст
Код:
#include <amxmodx>
#include <fun>
#include <hamsandwich>
#include <cstrike>

new pMaxHP, pAddHP, pHsAddHP, pFade, pOnlyAdmins;
new AddHP, HsAddHP, MaxHP, sFade, oAdmins;
new g_HudSyncMsg, g_ScreenMsg;
new killer_HP, killerID;

new g_iAdmin[33];

public plugin_init()
{
#define Version "1.2"
register_plugin("Lite Vampire", Version, "neygomon");
register_cvar("lv_neygomon", Version, FCVAR_SERVER | FCVAR_SPONLY)

register_event("DeathMsg", "eDeathMsg", "a", "1>0");
RegisterHam(Ham_TakeDamage,"player","damager",0)

pMaxHP = register_cvar("lv_maxhp", "100"); // Максимум HP
pAddHP = register_cvar("lv_addhp", "10"); // Добавление за убийство в тело
pHsAddHP = register_cvar("lv_hsaddhp", "20"); // Добавление за убийство в лицо :D
pFade = register_cvar("lv_fade", "0"); // Включить\выключить свечение экрана
pOnlyAdmins = register_cvar("lv_oadmins", "1"); // Все функции плагина только для админов

g_ScreenMsg = get_user_msgid("ScreenFade");
g_HudSyncMsg = CreateHudSyncObj();

set_task(1.5, "Load_Cfg");
}

public Load_Cfg()
{
AddHP = get_pcvar_num(pAddHP);
HsAddHP = get_pcvar_num(pHsAddHP);
MaxHP = get_pcvar_num(pMaxHP);
sFade = get_pcvar_num(pFade);
oAdmins = get_pcvar_num(pOnlyAdmins);
}

public client_putinserver(id)
{
if(oAdmins)
{
if(get_user_flags(id) & ADMIN_LEVEL_D) g_iAdmin[id] = 1;
else g_iAdmin[id] = 0;
}
}

public eDeathMsg()
{
if((killerID = read_data(1)) == read_data(2))
return;
if(!oAdmins || (oAdmins && g_iAdmin[killerID]))
{
killer_HP = get_user_health(killerID);
static TempHP; TempHP = (read_data(3) == 1) ? HsAddHP : AddHP;
set_user_health(killerID, ((killer_HP += TempHP) > MaxHP) ? MaxHP : killer_HP);
set_hudmessage(0, 255, 0, -1.0, 0.15, 0, 1.0, 1.0, 0.1, 0.1, -1);
ShowSyncHudMsg(killerID, g_HudSyncMsg, "Добавлено +%d HP", TempHP);
}

/* Fade */
if(!sFade)
return;
message_begin(MSG_ONE_UNRELIABLE, g_ScreenMsg, {0, 0, 0}, killerID);
write_short(1<<10);
write_short(1<<10);
write_short(0x0000);
write_byte(0);
write_byte(0);
write_byte(200);
write_byte(75);
message_end();
}

public damager(victim, inflicator, attacker, Float:damage)
{
if(!is_user_connected(attacker))
return;

if(victim == attacker || !victim)
return;

if(is_user_alive(attacker))
{
if(damage > 0)
{
if(cs_get_user_team(attacker) == cs_get_user_team(victim))
return;

set_dhudmessage(30, 144, 255, -0.49, -0.51, 0, 0.01, 0.01)
show_dhudmessage(attacker, " * ")
}
}
}


Кстати, звездочка показывается всем. Чтоб показывалась только админам надо сделать так
Код:
public damager(victim, inflicator, attacker, Float:damage)
{
if(!is_user_connected(attacker))
return;

if(victim == attacker || !victim)
return;

if(is_user_alive(attacker) && !(oAdmins || (oAdmins && g_iAdmin[attacker])))
{
if(damage > 0)
{
if(cs_get_user_team(attacker) == cs_get_user_team(victim))
return;

set_dhudmessage(30, 144, 255, -0.49, -0.51, 0, 0.01, 0.01)
show_dhudmessage(attacker, " * ")
}
}
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
staff2517
сообщение 10.12.2014, 14:58
Сообщение #14
Стаж: 12 лет

Сообщений: 275
Благодарностей: 5
Полезность: 0

voed, Спасибо.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
staff2517
сообщение 11.12.2014, 20:02
Сообщение #15
Стаж: 12 лет

Сообщений: 275
Благодарностей: 5
Полезность: 0

voed, Здравствуйте, к вам такой вопрос: можете вытащить только одну функцию с плагина и сделать отдельный плагин только с одной этой функцией?
Есть плагин который простым игрокам показывает звездочку, а игрокам с флагом "t" показывает урон цифрами возле прицела. Так вот мне нужно вытащить код который показывает именно циферки так-как в этом плагине они выскакивают таким образом что не мешают игроку и еще циферки разноцветные. Чуть не забыл, нужно чтобы эти самые циферки показывались для всех. Я БУДУ ВАМ ОЧЕНЬ БЛАГОДАРЕН.
Код:
////////////////////////////////////
// Original plugin:
// Amx_Killer //
// by Xhonor for stefkone //
// Skype: xhonor_39 //
////////////////////////////////////

/* Автор плагина - Leo_[BH]
*
* Список моих плагинов для продажи:
* http://vk.com/page-68026790_47253936
*
* Также занимаюсь написание плагинов под заказ!
*
* Skype: bcnl_leon
* http://vk.com/id64427766
*/

#include <amxmodx>
#include <amxmisc>
#include <hamsandwich>
#include <dhudmessage>
#include <fakemeta>
#include <cstrike>

#define PLUGIN "AMX Killer!"
#define VERSION "1.2"
#define AUTHOR "Leo_[BH] & Xhonor/asd edit"

#pragma tabsize 0

#define MAX_PLAYERS 32

#define COLOR1 224
#define COLOR2 0

#define TIME1 2.0
#define TIME2 1.0

#define FLAG_DMG_MONEY (ADMIN_LEVEL_H)

#define ICON_SHOW 1
#define ICON_HIDE 0

new kill_num[33]
new gMsgID

new const Float:g_flCoords[][] =
{
{0.50, 0.40},
{0.56, 0.44},
{0.60, 0.50},
{0.56, 0.56},
{0.50, 0.60},
{0.44, 0.56},
{0.40, 0.50},
{0.44, 0.44}
}

new g_iPlayerPos[MAX_PLAYERS+1]

new g_iMaxPlayers
new g_pCvarEnabled

public plugin_init()
{
register_plugin( PLUGIN, VERSION, AUTHOR );

register_event( "DeathMsg", "hook_death", "a", "1>0" )
RegisterHam( Ham_TakeDamage,"player","damager",0 )

RegisterHam(Ham_Killed, "player", "ham_PlayerKilled")
RegisterHam(Ham_Spawn, "player", "ham_PlayerSpawned_Post", 1);

gMsgID = get_user_msgid("StatusIcon")

g_pCvarEnabled = register_cvar("bullet_damage", "1")

register_event("Damage", "Event_Damage", "b", "2>0", "3=0")

g_iMaxPlayers = get_maxplayers()
}

public ham_PlayerSpawned_Post(id)
{
if (is_user_alive(id))
{
ammo_hud(id, 0)
kill_num[id] = 0
ammo_hud(id, 1)
}
}

public ham_PlayerKilled(victim, attacker)
{
static selfkill;

selfkill = (victim == attacker || !is_user_connected(attacker)) ? true : false;

if(!selfkill)
{
ammo_hud(attacker, 0)
kill_num[attacker] += 1
ammo_hud(attacker, 1)
}
}

ammo_hud(id, sw)
{
if(is_user_bot(id) || !is_user_alive(id))
return

new s_sprite[33]
format(s_sprite, 32, "number_%d", kill_num[id])
if(sw && is_user_alive(id))
{
message_begin( MSG_ONE, gMsgID, {0,0,0}, id )
write_byte( ICON_SHOW )
write_string( s_sprite )
write_byte( 30 )
write_byte( 144 )
write_byte( 255 )
message_end()
} else {
message_begin( MSG_ONE, gMsgID, {0,0,0}, id )
write_byte( ICON_HIDE )
write_string( s_sprite )
write_byte( 30 )
write_byte( 144 )
write_byte( 255 )
message_end()
}

if(kill_num[id] <= 0 && is_user_alive(id))
{
message_begin( MSG_ONE, gMsgID, {0,0,0}, id )
write_byte( ICON_HIDE )
write_string( s_sprite )
write_byte( 30 )
write_byte( 144 )
write_byte( 255 )
message_end()
}
}

public hook_death()
{
new iKiller = read_data(1)
new iVictim = read_data(2)

if(is_user_alive(iKiller))
{
message_begin(MSG_ONE, get_user_msgid("ScreenFade"), {0,0,0}, iKiller)
write_short(1<<10)
write_short(1<<10)
write_short(0x0000)
write_byte( 30 )
write_byte( 144 )
write_byte( 255 )
write_byte(100)
message_end()
}
new s_sprite[33]
format(s_sprite, 32, "number_%d", kill_num[iVictim])

message_begin( MSG_ONE, gMsgID, {0,0,0}, iVictim )
write_byte( ICON_HIDE )
write_string( s_sprite )
write_byte( 30 )
write_byte( 144 )
write_byte( 255 )
message_end()
}

public damager(victim, inflictor, attacker, Float:damage)
{
if(!is_user_connected(attacker))
return

if(victim == attacker || !victim)
return

if(is_user_alive(attacker))
{
if(damage > 0)
{
if(cs_get_user_team(attacker) == cs_get_user_team(victim))
return

if(get_user_flags(attacker) & ADMIN_LEVEL_H)
{
return
}
else
{
set_dhudmessage(30, 144, 255, -0.49, -0.51, 0, 0.01, 0.01)
show_dhudmessage(attacker, "")
show_hudmessage(attacker, "")
show_dhudmessage(attacker, " * ")
}
}
}
}

public Event_Damage( iVictim )
{
if( get_pcvar_num(g_pCvarEnabled) && (read_data(4) || read_data(5) || read_data(6)) )
{
new id = get_user_attacker(iVictim)
if( (1 <= id <= g_iMaxPlayers) && is_user_connected(id) )
{
new iPos = ++g_iPlayerPos[id]
if( iPos == sizeof(g_flCoords) )
{
iPos = g_iPlayerPos[id] = 0
}

if(get_user_flags(id) & FLAG_DMG_MONEY)
{
new color_info = random_num(0,3)
switch (color_info)
{
case 0: set_hudmessage(COLOR1, COLOR1, COLOR1, Float:g_flCoords[iPos][0], Float:g_flCoords[iPos][1], 0, 0.1, TIME1, 0.02, TIME2, -1) // white
case 1: set_hudmessage(COLOR2, COLOR1, COLOR2, Float:g_flCoords[iPos][0], Float:g_flCoords[iPos][1], 0, 0.1, TIME1, 0.02, TIME2, -1) // green
case 2: set_hudmessage(COLOR2, COLOR1, COLOR1, Float:g_flCoords[iPos][0], Float:g_flCoords[iPos][1], 0, 0.1, TIME1, 0.02, TIME2, -1) // bir
case 3: set_hudmessage(COLOR1, COLOR1, COLOR2, Float:g_flCoords[iPos][0], Float:g_flCoords[iPos][1], 0, 0.1, TIME1, 0.02, TIME2, -1) // yellow
}
show_hudmessage(id, "%d", read_data(2))
}
}
}
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: