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

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

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

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

Combo Sprtes

Статус пользователя TwinG
сообщение 13.12.2015, 16:29
Сообщение #1
Стаж: 10 лет

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

Здравствуйте. Имеется данный код, при убийстве показывает спрайт над жертвой (показывает всем), подскажите пожалуйста как сделать, чтобы игроки видели только свои килы (спрайты)

Код:
/* 
Plugin generated by AMXX-Studio

Plugin: ComboSprites
Creator: Chrescoe1
Version: 0.5

Changelog:
v.0.1 - First code
v.0.2 - First Release
v.0.3 - 0.4 - Testing...
v.0.5 - BugFixing - optimize code - New Release

if you find bugs - please write me
Skype: Xailer24


Visit to Next21.ru

*/

#include <amxmodx>
#include <fakemeta>

#define PLUGIN "ComboSprites"
#define VERSION "0.5"
#define AUTHOR "Chrescoe1" //Thanks for sprites Thomas von Winkler


//Cvar's
const Float:ComboTime=5.0 //Time to combo ending


//Engine forward register
native register_think(const classname[],const func[])

//Resource
new const sprite_score[]="sprites/npc/kills1-19.spr"
new const sprite_bonus[]="sprites/npc/ef_zombiekill.spr"
new const sprite_classname[]="ef_combo"

new info_target
new sprindex_combo[33],sprindex_head[33],sprindex_knife[33],spriteindex_grenade[33],
Float:LastKill[33],kill_count[33]

enum
{

Combo=0,
Head,
Knife,
Grenade
}

public plugin_precache()precache_model(sprite_score),precache_model(sprite_bonus)
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)

info_target=engfunc(EngFunc_AllocString, "info_target")
register_think(sprite_classname,"delete")

register_message(get_user_msgid("DeathMsg"), "message_DeathMsg")

// Add your code here...
}
//Engine
public delete(ent)if(pev_valid(ent))engfunc(EngFunc_RemoveEntity, ent)

//Msg
public message_DeathMsg()
{
static Weapon_Msg[16], attacker, victim,head,bool:grenade
attacker=read_data(1)
victim=read_data(2)
head=read_data(3)
read_data(4,Weapon_Msg,charsmax(Weapon_Msg))
//client_print(0,print_chat,"%d %d %d %s",attacker,victim,head,Weapon_Msg) //my test message

//Killing with grenade?
contain(Weapon_Msg,"grenade")!=-1?(grenade=true):(grenade=false)

if(!is_user_connected(attacker))return
if(!is_user_connected(victim))return

static Float:Origin[3],Float:RGB[3],i
pev(victim,pev_origin,Origin);Origin[2]=Origin[2]+90.0

//Random color
for(i=0;i<3;i++)RGB[i]=random_float(0.0,255.0)

//Don't dark color!
if(RGB[0]<150.0&&RGB[1]<150.0&&RGB[2]<150.0)RGB[random_num(0,2)]=255.0

//Remove old sprites
static ent
ent=sprindex_head[attacker];if(ef_valid(ent,attacker))engfunc(EngFunc_RemoveEnti
ty, ent)
ent=sprindex_knife[attacker];if(ef_valid(ent,attacker))engfunc(EngFunc_RemoveEnt
ity, ent)
if(!grenade) //Don't remove old sprites after GrenadeKill
{
ent=sprindex_combo[attacker];if(ef_valid(ent,attacker))engfunc(EngFunc_RemoveEnt
ity, ent)
ent=spriteindex_grenade[attacker];if(ef_valid(ent,attacker))engfunc(EngFunc_Remo
veEntity, ent)
}
static Float:gametime;gametime=get_gametime()
if(LastKill[attacker]-gametime>0.0)kill_count[attacker]++;else kill_count[attacker]=1
LastKill[attacker]=gametime+ComboTime

//Combo Sprite
sprindex_combo[attacker]=ef_spr(Combo,Origin,kill_count[attacker]<20?(kill_count[attacker]-1.0):(19.0),RGB,attacker)

//Bonus Sprite
RGB[0]=255.0;RGB[1]=0.0;RGB[2]=0.0 //Red Color!
if (grenade)
Origin[2]=Origin[2]-30.0,
spriteindex_grenade[attacker]=ef_spr(Grenade,Origin,2.0,RGB,attacker)
else
{
if(head)
Origin[2]=Origin[2]-30.0,
sprindex_head[attacker]=ef_spr(Head,Origin,0.0,RGB,attacker)
if (contain(Weapon_Msg,"knife")!=-1)
Origin[2]=Origin[2]-30.0,
sprindex_knife[attacker]=ef_spr(Knife,Origin,1.0,RGB,attacker)
}
}
//Stock
stock ef_spr(type,Float:Origin[3],Float:frame,Float:Color[3],attacker)
{
new ient =
engfunc(EngFunc_CreateNamedEntity, info_target)
switch(type)
{
case Combo:engfunc(EngFunc_SetModel,ient, sprite_score)
case Head:engfunc(EngFunc_SetModel,ient, sprite_bonus)
case Knife:engfunc(EngFunc_SetModel,ient, sprite_bonus)
case Grenade:engfunc(EngFunc_SetModel,ient, sprite_bonus)
}
set_pev(ient, pev_classname, sprite_classname)
set_pev(ient, pev_movetype, MOVETYPE_NOCLIP)
set_pev(ient,pev_gravity,0.0001)
set_pev(ient,pev_solid,SOLID_TRIGGER)
set_pev(ient, pev_rendermode, kRenderTransAdd)
set_pev(ient, pev_renderamt, 250.0)
set_pev(ient, pev_nextthink,get_gametime()+ComboTime)
set_pev(ient,pev_origin,Origin)
set_pev(ient,pev_iuser1,attacker)
set_pev(ient,pev_rendercolor,Color)
set_pev(ient, pev_scale, 0.4)
set_pev(ient, pev_framerate, 0.0)
set_pev(ient, pev_frame,frame)
return ient
}
stock bool: ef_valid(ent,id)
{
if(!ent||!id)return false
if(!pev_valid(ent))return false
if(pev(ent,pev_iuser1)!=id)return false

static ClassName[30]
pev(ent, pev_classname, ClassName, charsmax(ClassName))
if (contain(ClassName, sprite_classname ) != -1)return true
return false
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя 3BEPb
сообщение 17.12.2015, 23:34
Сообщение #2
Стаж: 11 лет

Сообщений: 49
Благодарностей: 8
Полезность: 31

Увы. но это не возможно!
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя ssx
сообщение 17.12.2015, 23:36
Сообщение #3


Стаж: 12 лет

Сообщений: 2237
Благодарностей: 1343
Полезность: 836

Цитата(3BEPb @ 17.12.2015, 23:29) *
Увы. но это не возможно!

Почему не возможно ?


[Half-Life DM FFA] 78.152.169.100:27016
[CS 1.6 GunGame] 78.152.169.100:27018
[CS 1.6 DM AIM] 78.152.169.100:27017
[CS 1.6 DM FFA] 78.152.169.100:27015
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Vaqtincha
сообщение 18.12.2015, 0:07
Сообщение #4
Стаж: 11 лет

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

в этом Team Grenade Trail [Only dead players] плагине спрайт можно показать определенную команду.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя 3BEPb
сообщение 20.12.2015, 0:19
Сообщение #5
Стаж: 11 лет

Сообщений: 49
Благодарностей: 8
Полезность: 31

Цитата(Vaqtincha @ 18.12.2015, 0:02) *
в этом Team Grenade Trail [Only dead players] плагине спрайт можно показать определенную команду.


Траил линия это не спрайт.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Safety1st
сообщение 20.12.2015, 0:24
Сообщение #6
Стаж: 14 лет
Город: Moscow

Сообщений: 7228
Благодарностей: 8071
Полезность: 196

Trail делается спрайтом; спрайт возможно показать отдельному игроку.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
voed
сообщение 20.12.2015, 0:35
Сообщение #7
Стаж: 11 лет

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

Цитата(Safety1st @ 20.12.2015, 0:20) *
Trail делается спрайтом; спрайт возможно показать отдельному игроку.

Можно, но не нужно smile.gif
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя RedL1ne
сообщение 20.12.2015, 1:22
Сообщение #8


Стаж: 15 лет

Сообщений: 3828
Благодарностей: 1854
Полезность: 876

Цитата(voed @ 20.12.2015, 0:31) *
Можно, но не нужно smile.gif

Нужно, нужно довести уровень нагрузки на сервере до критического уровня, что б началась цепная реакция и он нафиг аннигилировался xD
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Safety1st
сообщение 20.12.2015, 2:25
Сообщение #9
Стаж: 14 лет
Город: Moscow

Сообщений: 7228
Благодарностей: 8071
Полезность: 196

спрайты инфы о фрагах нагружать не будут - делаются аттачем к модели.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: