Ошибки

Сообщения
114
Реакции
1
Ошибка
//AMXXPC compile.exe
// by the AMX Mod X Dev Team


//// lasermine.sma
//
// C:\Users\╨єёырэ\Desktop\┬ёх яряъш\VIP ╤╥└╨█╔\amxmodx-1.9.0-git5294-windows\addons\amxmodx\scripting\lasermine.sma(168) : error 017: undefined symbol "ColorChat"
// C:\Users\╨єёырэ\Desktop\┬ёх яряъш\VIP ╤╥└╨█╔\amxmodx-1.9.0-git5294-windows\addons\amxmodx\scripting\lasermine.sma(168) : warning 215: expression has no effect
// C:\Users\╨єёырэ\Desktop\┬ёх яряъш\VIP ╤╥└╨█╔\amxmodx-1.9.0-git5294-windows\addons\amxmodx\scripting\lasermine.sma(168) : warning 215: expression has no effect
// C:\Users\╨єёырэ\Desktop\┬ёх яряъш\VIP ╤╥└╨█╔\amxmodx-1.9.0-git5294-windows\addons\amxmodx\scripting\lasermine.sma(168) : error 001: expected token: ";", but found ")"
// C:\Users\╨єёырэ\Desktop\┬ёх яряъш\VIP ╤╥└╨█╔\amxmodx-1.9.0-git5294-windows\addons\amxmodx\scripting\lasermine.sma(168) : error 029: invalid expression, assumed zero
// C:\Users\╨єёырэ\Desktop\┬ёх яряъш\VIP ╤╥└╨█╔\amxmodx-1.9.0-git5294-windows\addons\amxmodx\scripting\lasermine.sma(168) : fatal error 107: too many error messages on one line
//
// Compilation aborted.
// 4 Errors.
// Could not locate output file compiled\lasermine.amx (compile failed).
//
// Compilation Time: 1,01 sec
// ----------------------------------------

Press enter to exit ...
Компилятор
Локальный
Amx Mod X
1.9.0
Исходный код
#include <amxmodx>
#include <cstrike>
#include <fakemeta>
#include <engine>
#include <hamsandwich>
#include <xs>
#include <beams>
#include <fun>

#define PLUGIN "SF TripMine"
#define VERSION "0.3.4"
#define AUTHOR "serfreeman1337"

#if AMXX_VERSION_NUM < 183
#define message_begin_f(%0,%1,%2,%3) engfunc(EngFunc_MessageBegin,%0,%1,%2,%3)
#define write_coord_f(%0) engfunc(EngFunc_WriteCoord,%0)

#define Ham_CS_Player_ResetMaxSpeed Ham_Item_PreFrame

#include <dhudmessage>
#include <colorchat>

#define print_team_default DontChange
#define print_team_grey Grey
#define print_team_red Red
#define print_team_blue Blue
#endif


#define SND_STOP (1<<5)

#define TRIPMINE_MODEL "models/v_lasermine.mdl" // tripmine model
#define TRIPMINE_CLASSNAME "lasermine" // tripmine classname

#define BEAM_SPRITERED "sprites/laserr.spr"
#define BEAM_SPRITEBLUE "sprites/laserb.spr"

#define TRIPMINE_PLANTSOUND "csdm/laser_beta/mine_deploy.wav" // plant sound
#define TRIPMINE_CHARGESOUND "csdm/laser_beta/mine_charge.wav" // charge sound
#define TRIPMINE_ACTIVESOUND "csdm/laser_beta/mine_activate.wav" // active sound
#define TRIPMINE_HITSOUND "csdm/laser_beta/beamstart9.wav" // hit sound

#define PLANTWAITTIME 0.1
#define POWERUPTIME 2.0
#define BEAM_WIDTH 15.0
#define BEAM_BRIGHT 255.0
// за разрушение мины
#define REWARD_MONEY 200

#define PLANT_TIME 1.0 // tripmine plant time
#define MINE_HEALTH 500.0 // tripmine health

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
#define MAX_COUNT 2 // макс количество мин для обычного игрока
#define MAX_COUNT_V 2 // макс количество мин для випа
#define MAX_COUNT_SV 3 // макс количество мин для супер випа
#define MAX_COUNT_B 3 // макс количество мин для босса
#define MAX_COUNT_A 4 // макс количество мин для админа


#define FLAG_V ADMIN_LEVEL_H
#define FLAG_SV ADMIN_LEVEL_G
#define FLAG_B ADMIN_LEVEL_E
#define FLAG_A ADMIN_BAN

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
#define MINE_DAMAGE 1000.0 // laser damage
#define MINE_COST 800 // tripmine cost
#define PLANT_RADIUS 64.0 // default plant radius
#define LASER_LENGTH 8128.0 // maximum laser length

#define EV_TM_hOwner EV_ENT_euser4
#define EV_TM_pBeam EV_ENT_euser3
#define EV_TM_team EV_INT_iuser4
#define EV_TM_plantTime EV_FL_fuser4
#define EV_TM_mVecDir EV_VEC_vuser4
#define EV_TM_mVecEnd EV_VEC_vuser3

#define EV_TM_mineId EV_INT_iuser3

///

#define ENTITY_REFERENCE "func_breakable"

// -- DATAS -- //
enum _:playerDataStruct {
PD_MINE_ENT,
Float:PD_NEXTPLANT_TIME,
bool:PD_START_SET
}

new maxPlayers,expSpr
new playerData[33][playerDataStruct]
new HamHook:playerPostThink,thinkHooks

new BarTime

public plugin_precache(){
precache_model(TRIPMINE_MODEL)

precache_sound(TRIPMINE_PLANTSOUND)
precache_sound(TRIPMINE_CHARGESOUND)
precache_sound(TRIPMINE_ACTIVESOUND)
precache_sound(TRIPMINE_HITSOUND)

precache_model(BEAM_SPRITERED)
precache_model(BEAM_SPRITEBLUE)

expSpr = precache_model("sprites/csdm_explode.spr")
precache_sound("dmsentries/fail_update_2.wav")
}

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

BarTime = get_user_msgid("BarTime")
maxPlayers = get_maxplayers()

register_clcmd("+setlaser","SetLaser_CMD")
register_clcmd("-setlaser","SetLaser_DropCMD")

register_think(TRIPMINE_CLASSNAME,"TripMine_Think")
RegisterHam(Ham_TakeDamage,ENTITY_REFERENCE,"TripMine_Damage")
RegisterHam(Ham_Killed,ENTITY_REFERENCE,"TripMine_Killed")

register_logevent("RoundEnd",2,"1=Round_End")
register_logevent("RoundEnd",2,"1=Round_Start")

register_think("beam","Beam_Think")
}
//
// random beams fix attempt
//
public Beam_Think(ent){
new mine = entity_get_edict(ent,EV_ENT_owner)

if(!is_valid_ent(ent))
UTIL_Remove(ent)

if(entity_get_int(ent,EV_TM_mineId) != entity_get_int(mine,EV_TM_mineId))
UTIL_Remove(ent)

entity_set_float(ent,EV_FL_nextthink,get_gametime() + 0.05)
}

public RoundEnd(){
new ent

while((ent = find_ent_by_class(ent,TRIPMINE_CLASSNAME))){
new beam = entity_get_edict(ent,EV_TM_pBeam)

if(is_valid_ent(beam))
remove_entity(beam)

remove_entity(ent)
}
}

public SetLaser_CMD(id){
if(get_user_flags(id) & FLAG_A){
if(GetPlayer_Mines(id) >= MAX_COUNT_A){ // Для админа
playerData[id][PD_NEXTPLANT_TIME] = _:(get_gametime() + PLANTWAITTIME)
ColorChat(id,GREEN,"^3[^4CSDM^3]^1 Установлено ^3максимальное количество ^1мин! Вам доступно %d мин(ы)", MAX_COUNT_A)
emit_sound(id, CHAN_AUTO, "dmsentries/fail_update_2.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
return PLUGIN_HANDLED
}
}

else if(get_user_flags(id) & FLAG_B){ // Для босса
if(GetPlayer_Mines(id) >= MAX_COUNT_B){
playerData[id][PD_NEXTPLANT_TIME] = _:(get_gametime() + PLANTWAITTIME)
ColorChat(id,GREEN,"^3[^4CSDM^3]^1 Установлено ^3максимальное количество ^1мин! Вам доступно %d мин(ы)", MAX_COUNT_A)
emit_sound(id, CHAN_AUTO, "dmsentries/fail_update_2.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
return PLUGIN_HANDLED
}
}

else if(get_user_flags(id) & FLAG_SV){ // Для для супер випа
if(GetPlayer_Mines(id) >= MAX_COUNT_SV){
playerData[id][PD_NEXTPLANT_TIME] = _:(get_gametime() + PLANTWAITTIME)
ColorChat(id,GREEN,"^3[^4CSDM^3]^1 Установлено ^3максимальное количество ^1мин! Вам доступно %d мин(ы)", MAX_COUNT_A)
emit_sound(id, CHAN_AUTO, "dmsentries/fail_update_2.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
return PLUGIN_HANDLED
}
}

else if(get_user_flags(id) & FLAG_V){ // Для випа
if(GetPlayer_Mines(id) >= MAX_COUNT_V){
playerData[id][PD_NEXTPLANT_TIME] = _:(get_gametime() + PLANTWAITTIME)
ColorChat(id,GREEN,"^3[^4CSDM^3]^1 Установлено ^3максимальное количество ^1мин! Вам доступно %d мин(ы)", MAX_COUNT_A)
emit_sound(id, CHAN_AUTO, "dmsentries/fail_update_2.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
return PLUGIN_HANDLED
}
}

else if(GetPlayer_Mines(id) >= MAX_COUNT){ // Для обычного игрока
playerData[id][PD_NEXTPLANT_TIME] = _:(get_gametime() + PLANTWAITTIME)
ColorChat(id,GREEN,"^3[^4CSDM^3]^1 Установлено ^3максимальное количество ^1мин! Вам доступно %d мин(ы)", MAX_COUNT)
emit_sound(id, CHAN_AUTO, "dmsentries/fail_update_2.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
return PLUGIN_HANDLED
}

playerData[id][PD_START_SET] = true

thinkHooks++

if(thinkHooks == 1){
if(!playerPostThink)
#if AMXX_VERSION_NUM >= 183
playerPostThink = RegisterHamPlayer(Ham_Player_PostThink,"Player_PostThink",true)
#else
playerPostThink = RegisterHam(Ham_Player_PostThink,"player","Player_PostThink",true)
#endif
else
EnableHamForward(playerPostThink)
}

return PLUGIN_HANDLED
}

public SetLaser_DropCMD(id){
if(!playerData[id][PD_START_SET])
return PLUGIN_HANDLED

thinkHooks--

if(thinkHooks <= 0)
DisableHamForward(playerPostThink)

playerData[id][PD_START_SET] = false

if(is_valid_ent(playerData[id][PD_MINE_ENT])){
remove_entity(playerData[id][PD_MINE_ENT])
Send_BarTime(id,0.0)
playerData[id][PD_MINE_ENT] = FM_NULLENT
playerData[id][PD_NEXTPLANT_TIME] = _:(get_gametime() + PLANTWAITTIME)
}

return PLUGIN_HANDLED
}

public Player_PostThink(id){
if(playerData[id][PD_START_SET])
if(TripMine_PlantThink(id))
TripMine_Plant(id,playerData[id][PD_MINE_ENT]) // plant mine
}

//
// Spawn tripmine entity
//
TripMine_Spawn(){
new tm = create_entity(ENTITY_REFERENCE)

entity_set_string(tm,EV_SZ_classname,TRIPMINE_CLASSNAME)

// motor
entity_set_int(tm,EV_INT_movetype,MOVETYPE_FLY)
entity_set_int(tm,EV_INT_solid,SOLID_NOT)

entity_set_model(tm,TRIPMINE_MODEL)
entity_set_float(tm,EV_FL_frame,0.0)
entity_set_int(tm,EV_INT_body,3)
entity_set_int(tm,EV_INT_sequence,7) // TRIPMINE_WORLD
entity_set_float(tm,EV_FL_framerate,0.0)

entity_set_size(tm,Float:{-8.0,-8.0,-8.0},Float:{8.0,8.0,8.0})

return tm
}

GetPlayer_Mines(id){
new ent,cnt

while((ent = find_ent_by_class(ent,TRIPMINE_CLASSNAME))){
if(id == entity_get_edict(ent,EV_TM_hOwner))
cnt ++
}

return cnt
}

//
// Visual planting for tripmine
// id - planter id
// reset - stop planting
//
TripMine_PlantThink(id,bool:reset = false){
if(playerData[id][PD_NEXTPLANT_TIME] > get_gametime())
return false

new ent = playerData[id][PD_MINE_ENT]

if(!is_user_alive(id) ||
cs_get_user_money(id) - MINE_COST < 0
){ // don't allow planting while running or dead
if(is_valid_ent(ent)){
remove_entity(ent)
Send_BarTime(id,0.0)
}
ColorChat(id,GREEN,"^3[^4CSDM^3]^1 У тебя ^3не хватает ^1денег! ^4(^1нужно ^3%d$^4)",MINE_COST)
emit_sound(id, CHAN_AUTO, "dmsentries/fail_update_2.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
playerData[id][PD_MINE_ENT] = FM_NULLENT
SetLaser_DropCMD(id)
//playerData[id][PD_NEXTPLANT_TIME] = _:(get_gametime() + PLANTWAITTIME)

return false
}

if(reset){ // destroy visal object
if(is_valid_ent(ent)){
remove_entity(ent)
Send_BarTime(id,0.0)
playerData[id][PD_MINE_ENT] = FM_NULLENT

return true
}

return false
}

// make trace origin
new Float:vecSrc[3],Float:vecAiming[3]
entity_get_vector(id,EV_VEC_v_angle,vecSrc)
engfunc(EngFunc_MakeVectors,vecSrc)

entity_get_vector(id,EV_VEC_origin,vecSrc)
entity_get_vector(id,EV_VEC_view_ofs,vecAiming)

xs_vec_add(vecSrc,vecAiming,vecSrc)
get_global_vector(GL_v_forward,vecAiming)

xs_vec_mul_scalar(vecAiming,PLANT_RADIUS,vecAiming)
xs_vec_add(vecSrc,vecAiming,vecAiming)

new Float:flFraction
engfunc(EngFunc_TraceLine,vecSrc,vecAiming,IGNORE_MISSILE|IGNORE_GLASS|IGNORE_MONSTERS,id,0)

get_tr2(0,TR_flFraction,flFraction)

if(flFraction < 1.0){ // valid trace
new pHit

new Float:vecEnd[3],bool:noUpdate
get_tr2(0,TR_vecEndPos,vecEnd)

while((pHit = find_ent_in_sphere(pHit,vecEnd,8.0))){ // don't allow plant mine close together with others
if(pHit <= maxPlayers || pHit == ent)
continue

new classname[32]
entity_get_string(pHit,EV_SZ_classname,classname,charsmax(classname))

if(strcmp(classname,TRIPMINE_CLASSNAME) == 0){
noUpdate = true

if(!is_valid_ent(ent))
return false
}
}

if(!is_valid_ent(ent)){ // create visal object
ent =TripMine_Spawn()

// set transparency
entity_set_int(ent,EV_INT_rendermode,kRenderTransAdd)
entity_set_float(ent,EV_FL_renderamt,255.0)

new Float:plantTime = PLANT_TIME

// set plant time
entity_set_float(ent,EV_TM_plantTime,get_gametime() + plantTime)
entity_set_float(id,EV_FL_maxspeed,1.0)

// show plant progress
Send_BarTime(id,plantTime)

playerData[id][PD_MINE_ENT] = ent
}

if(!noUpdate){
new Float:vecPlaneNormal[3],Float:angles[3]
get_tr2(0,TR_vecPlaneNormal,vecPlaneNormal)
vector_to_angle(vecPlaneNormal,angles)

// calc ideal end pos
xs_vec_mul_scalar(vecPlaneNormal,8.0,vecPlaneNormal)
xs_vec_add(vecEnd,vecPlaneNormal,vecEnd)

// set origin and angles
entity_set_origin(ent,vecEnd)
entity_set_vector(ent,EV_VEC_angles,angles)
}

if(entity_get_float(ent,EV_TM_plantTime) < get_gametime()){
new Float:m_vecDir[3],Float:angles[3]

entity_get_vector(ent,EV_VEC_angles,angles)
engfunc(EngFunc_MakeVectors,angles)
get_global_vector(GL_v_forward,m_vecDir)

m_vecDir[2] = -m_vecDir[2] // только в России верх - это низ, а низ - это верх

entity_set_vector(ent,EV_TM_mVecDir,m_vecDir)

return true
}
}else{ // wrong origin
if(is_valid_ent(ent)){
remove_entity(ent)
Send_BarTime(id,0.0)
playerData[id][PD_MINE_ENT] = FM_NULLENT
}
}

return false
}

//
// Plant mine
//
TripMine_Plant(id,ent){
playerData[id][PD_MINE_ENT] = FM_NULLENT
playerData[id][PD_NEXTPLANT_TIME] = _:(get_gametime() + PLANTWAITTIME)

entity_set_int(ent,EV_INT_rendermode,kRenderNormal)
entity_set_float(ent,EV_FL_renderamt,0.0)

entity_set_edict(ent,EV_TM_hOwner,id)
entity_set_int(ent,EV_TM_team,get_user_team(id))

emit_sound(ent,CHAN_VOICE,TRIPMINE_PLANTSOUND,1.0,ATTN_NORM,0,PITCH_NORM)
emit_sound(ent,CHAN_BODY,TRIPMINE_CHARGESOUND,0.2,ATTN_NORM,0,PITCH_NORM)

entity_set_float(ent,EV_TM_plantTime,get_gametime() + POWERUPTIME)
entity_set_float(ent,EV_FL_nextthink,get_gametime() + POWERUPTIME)

ExecuteHamB(Ham_CS_Player_ResetMaxSpeed,id)

cs_set_user_money(id,cs_get_user_money(id) - MINE_COST)

//if(GetPlayer_Mines(id) >= MAX_COUNT) // stop
SetLaser_DropCMD(id)

return true
}

//
// Tripmine think
//
public TripMine_Think(ent){
if(entity_get_float(ent,EV_TM_plantTime)){ // check the possibility to activate
new Float:m_vecDir[3]
entity_get_vector(ent,EV_TM_mVecDir,m_vecDir)

new Float:vecSrc[3],Float:vecEnd[3]

entity_get_vector(ent,EV_VEC_origin,vecSrc)
xs_vec_copy(vecSrc,vecEnd)

xs_vec_mul_scalar(m_vecDir,8.0,m_vecDir)
xs_vec_add(vecSrc,m_vecDir,vecSrc)

entity_get_vector(ent,EV_TM_mVecDir,m_vecDir)
xs_vec_mul_scalar(m_vecDir,32.0,m_vecDir)
xs_vec_add(vecEnd,m_vecDir,vecEnd)

engfunc(EngFunc_TraceLine,vecSrc,vecEnd,DONT_IGNORE_MONSTERS,ent,0)

new Float:flFraction

get_tr2(0,TR_flFraction,flFraction)

if(flFraction == 1.0){
get_tr2(0,TR_vecEndPos,vecEnd)

new f
// make sure that player will not stuck on mine
while((f = find_ent_in_sphere(f,vecSrc,12.0))){
if(f > maxPlayers)
break

entity_set_float(ent,EV_FL_nextthink,get_gametime() + 0.1)
return
}

emit_sound(ent,CHAN_BODY,TRIPMINE_CHARGESOUND,0.0,ATTN_NORM,SND_STOP,0)
emit_sound(ent,CHAN_VOICE,TRIPMINE_ACTIVESOUND,0.5,ATTN_NORM,1,75)

entity_set_int(ent,EV_TM_mineId,random(1337))
TripMine_MakeBeam(ent)

entity_set_int(ent,EV_INT_solid,SOLID_BBOX)
entity_set_float(ent,EV_TM_plantTime,0.0)

entity_set_float(ent,EV_FL_takedamage,DAMAGE_YES)
entity_set_float(ent,EV_FL_dmg,100.0)
entity_set_float(ent,EV_FL_health,MINE_HEALTH)
}
}

new beam = entity_get_edict(ent,EV_TM_pBeam)

if(entity_get_float(ent,EV_FL_health) <= 0.0 && is_valid_ent(beam)){
ExecuteHamB(Ham_Killed,ent,0,0)
return
}

new id = entity_get_edict(ent,EV_TM_hOwner)

if(!is_user_alive(id) || get_user_team(id) != entity_get_int(ent,EV_TM_team)){ // explode mine on disconnect or team change
new beam = entity_get_edict(ent,EV_TM_pBeam)
if(is_valid_ent(beam))
UTIL_Remove(beam)

remove_entity(ent)

//ExecuteHamB(Ham_TakeDamage,ent,0,0,9999.0,DMG_BLAST)
return
}

if(is_valid_ent(beam)){
new Float:vecSrc[3],Float:vecEnd[3]

entity_get_vector(ent,EV_VEC_origin,vecSrc)
entity_get_vector(ent,EV_TM_mVecEnd,vecEnd)

new pHit,tr = create_tr2()
engfunc(EngFunc_TraceLine,vecSrc,vecEnd,DONT_IGNORE_MONSTERS,ent,tr)

pHit = get_tr2(tr,TR_pHit)
get_tr2(tr,TR_vecEndPos,vecEnd)

Beam_SetStartPos(beam,vecEnd)

message_begin_f(MSG_PVS,SVC_TEMPENTITY,vecEnd,0)
write_byte(TE_SPARKS)
write_coord_f(vecEnd[0])
write_coord_f(vecEnd[1])
write_coord_f(vecEnd[2])
message_end()

if(0 < pHit <= maxPlayers){
new team = entity_get_int(ent,EV_TM_team)

if(get_user_team(pHit) != team && entity_get_float(pHit,EV_FL_takedamage) != 0.0){
if(ExecuteHamB(Ham_TakeDamage,pHit,ent,entity_get_edict(ent,EV_TM_hOwner),MINE_DAMAGE,16777216)){
ExecuteHamB(Ham_TraceBleed,pHit,1337.0,Float:{0.0,0.0,0.0},tr,DMG_ENERGYBEAM)
//client_print(0,print_chat,"Атака")
}else{
//client_print(0,print_chat,"Убил")
emit_sound(pHit,CHAN_WEAPON,TRIPMINE_HITSOUND, 1.0, ATTN_NORM, 0, PITCH_NORM )
entity_set_vector(pHit,EV_VEC_velocity,Float:{0.0,0.0,0.0})
}
}
}
free_tr2(tr)
}

if(is_valid_ent(ent)){
TripMine_StatusInfo(ent)
entity_set_float(ent,EV_FL_nextthink,get_gametime() + 0.1)
}
}

TripMine_StatusInfo(ent){
if(!is_valid_ent(ent))
return

new player,Float:origin[3],hitEnt,bh
entity_get_vector(ent,EV_VEC_origin,origin)

while((player = find_ent_in_sphere(player,origin,1024.0))){
if(player > maxPlayers)
break

if(get_user_team(player) != entity_get_int(ent,EV_TM_team))
continue

get_user_aiming(player,hitEnt,bh)

if(hitEnt != ent)
continue

new planterId,planterName[32],team = entity_get_int(ent,EV_TM_team)

planterId = entity_get_edict(ent,EV_TM_hOwner)
get_user_name(planterId,planterName,charsmax(planterName))

set_dhudmessage(team == 1 ? 150 : 0, 0, team == 2 ? 150 : 0, -1.0, 0.35, 0, 0.0, 0.6, 0.0, 0.0)
show_dhudmessage(player,"Установил: %s^nЗдоровье: %.0f",planterName,entity_get_float(ent,EV_FL_health))
}
}

//
// Tripmine damage
//
public TripMine_Damage(ent,inflictor,attacker){
new classname[32]
entity_get_string(ent,EV_SZ_classname,classname,charsmax(classname))

if(strcmp(classname,TRIPMINE_CLASSNAME) != 0)
return HAM_IGNORED

entity_set_edict(ent,EV_ENT_dmg_inflictor,attacker)

if(!(0 < attacker <= maxPlayers))
return HAM_IGNORED

if(entity_get_int(ent,EV_TM_team) == get_user_team(attacker) && entity_get_edict(ent,EV_TM_hOwner) != attacker) // block friendly fire
return HAM_SUPERCEDE

return HAM_IGNORED
}

//
// Tripmine detonate
//
public TripMine_Killed(ent,idattacker){
new classname[32]
entity_get_string(ent,EV_SZ_classname,classname,charsmax(classname))

if(strcmp(classname,TRIPMINE_CLASSNAME) != 0)
return HAM_IGNORED

new beam = entity_get_edict(ent,EV_TM_pBeam)

// remove beam
if(is_valid_ent(beam))
UTIL_Remove(beam)

new Float:origin[3],Float:m_vecDir[3]
entity_get_vector(ent,EV_VEC_origin,origin)
entity_get_vector(ent,EV_TM_mVecDir,m_vecDir)
//client_print(0,print_chat,"Kill")
xs_vec_mul_scalar(m_vecDir,8.0,m_vecDir)
xs_vec_add(origin,m_vecDir,origin)

message_begin_f(MSG_PVS,SVC_TEMPENTITY,origin,0)
write_byte(TE_EXPLOSION)
write_coord_f(origin[0])
write_coord_f(origin[1])
write_coord_f(origin[2])
write_short(expSpr)
write_byte(20)
write_byte(15)
write_byte(0)
message_end()

new killer = entity_get_edict(ent,EV_ENT_dmg_inflictor)
new hOwner = entity_get_edict(ent,EV_TM_hOwner)


if(!(0 < killer <= maxPlayers) || killer == entity_get_edict(ent,EV_TM_hOwner))
ColorChat(hOwner,GREEN,"^3[^4CSDM^3]^1 твоя мина была ^4уничтожена!!")
else{
new exploderName[32]
get_user_name(killer,exploderName,charsmax(exploderName))

ColorChat(hOwner,GREEN,"^3[^4CSDM^3]^4 %s уничтожил ^1вашу мину!",exploderName)

ColorChat(killer,GREEN,"^3[^4CSDM^3]^1 Вы получили ^4%d$ ^1за уничтожение мины!", REWARD_MONEY)
cs_set_user_money ( killer, min ( cs_get_user_money ( killer ) + REWARD_MONEY, 16000 ) )
}

return HAM_IGNORED
}

//
// Create beam for tripmine
//
TripMine_MakeBeam(ent){
new beam = Beam_Create(entity_get_int(ent,EV_TM_team) == 1 ? BEAM_SPRITERED : BEAM_SPRITEBLUE,BEAM_WIDTH)

new Float:m_vecDir[3],Float:vecSrc[3],Float:vecOrigin[3]
entity_get_vector(ent,EV_TM_mVecDir,m_vecDir)
entity_get_vector(ent,EV_VEC_origin,vecSrc)
xs_vec_copy(vecSrc,vecOrigin)
xs_vec_mul_scalar(m_vecDir,LASER_LENGTH,m_vecDir)
xs_vec_add(vecSrc,m_vecDir,vecSrc)

Beam_PointsInit(beam,vecSrc,vecOrigin)
Beam_SetScrollRate(beam,255.0)
Beam_SetBrightness(beam,BEAM_BRIGHT)

entity_set_edict(ent,EV_TM_pBeam,beam)
entity_set_vector(ent,EV_TM_mVecEnd,vecSrc)
entity_set_edict(beam,EV_ENT_owner,ent)

entity_set_int(beam,EV_TM_mineId,entity_get_int(ent,EV_TM_mineId))

entity_set_float(beam,EV_FL_nextthink,get_gametime() + 0.1)
}

Send_BarTime(player,Float:duration){
if(duration == 0.0){
ExecuteHamB(Ham_CS_Player_ResetMaxSpeed,player)
}

message_begin(MSG_ONE,BarTime,.player = player)
write_short(floatround(duration))
message_end()
}


UTIL_Remove( pEntity )
{
if ( !pEntity )
return;

entity_set_int(pEntity,EV_INT_flags,entity_get_int(pEntity,EV_INT_flags) | FL_KILLME)
//entity_set_string(pEntity,EV_SZ_targetname,"")
}
Помогите исправить
 
Сообщения
3
Реакции
0
в 1.9.0 нет инка ColorChat поэтому используй client_print_color из 1.9.0
 
Сообщения
27
Реакции
1
Предупреждения
2
Замени это:

Код:
ColorChat(id, GREEN, "^3[^4CSDM^3]^1 Установлено ^3максимальное количество ^1мин! Вам доступно %d мин(ы)", MAX_COUNT)
На это:


Код:
client_print_color(id, print_team_default, "^3[^4CSDM^3]^1 Установлено ^3максимальное количество ^1мин! Вам доступно %d мин(ы)", MAX_COUNT)
 

Пользователи, просматривающие эту тему

Сейчас на форуме нет ни одного пользователя.
Сверху Снизу