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

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

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

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

> Правила форума

Этот раздел, как вы могли заметить по названию, предназначен для решения вопросов по поводу уже существующих модов и плагинов.
Пожалуйста, если у вас проблема с написанием плагина, не путайте этот раздел с разделом по скриптингу.
Для поиска плагинов и модов существует соответствующий раздел.

Название темы должно соответствовать содержанию. Темы с названием типа "Помогите", "Вопрос", "парни подскажите..." - будут удалены.
Все темы, не относящиеся к "Вопросам по модам и плагинам", будут удалены или перемещены в соответствующий раздел.

Правила оформления темы:
1. Помимо заголовка не забудьте верно сформулировать свой вопрос.
2. Выложите исходник (в тег кода + ) или ссылку на плагин который вызывает у вас вопросы.
3. Выложите лог с ошибками (если имеется) под спойлер

Эффект при убийстве

Статус пользователя opa12
сообщение 20.3.2014, 7:55
Сообщение #1
Стаж: 12 лет

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

Здравствуйте, хотел сделать так, когда Т убивает СТ появляется определенный эффект. Как можно сделать чтобы эффект появлялся только когда СТ были убиты от "руки" Т
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя AndrewZ
сообщение 20.3.2014, 8:30
Сообщение #2


Иконка группы

Стаж: 18 лет
Город: Санкт-Петербург


Сообщений: 4700
Благодарностей: 2452
Полезность: 1018

opa12,
Это можно реализовать путём редактирования плагина.


Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя opa12
сообщение 20.3.2014, 8:57
Сообщение #3
Стаж: 12 лет

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

CODE
/*
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



*/

#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/combos1-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
}

Подскажите на этом примере пожалуйста
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя AndrewZ
сообщение 20.3.2014, 9:00
Сообщение #4


Иконка группы

Стаж: 18 лет
Город: Санкт-Петербург


Сообщений: 4700
Благодарностей: 2452
Полезность: 1018

opa12,
Используйте для кода
Код
[pawn][/pawn]


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