Re: laser mines
Quote:
Originally Posted by ANTICHRISTUS
(Post 1875101)
please post the output of the following commands:
- rcon version.
- rcon meta list.
|
for what this is needed? problem is in plugin, cause plugin doesn't check for is user connected.
for what the fuck is rcon ... needed I can't understand.
line: 574
CreateDamage(iCurrent,DmgMAX,Float:Radius)
and line: 666
CreateLaserDamage(iCurrent,isHit)
inside this stock's you need to check if entity owner exists. { this is attacker }
PHP Code:
CreateDamage(iCurrent,DmgMAX,Float:Radius) { new AtkID = pev(iCurrent,LASERMINE_OWNER)// entity_get_int(iCurrent,LASERMINE_OWNER) new TeamID= pev(iCurrent,LASERMINE_INT_TEAM) //entity_get_int(iCurrent,LASERMINE_INT_TEAM) new Player = -1; new Float:distance,dmg; new Float:tOrigin[3]; new Float:vOrigin[3]; new iHitHP,iHitTeam; pev(iCurrent,pev_origin,vOrigin); Player = engfunc(EngFunc_FindEntityInSphere,Player,vOrigin,Radius); while(Player != 0) { if(is_user_alive(Player)) { pev(Player,pev_origin,tOrigin) distance = get_distance_f(vOrigin, tOrigin) dmg = floatround(DmgMAX - ((DmgMAX / Radius) * distance)) iHitHP = pev_user_health(Player) - dmg iHitTeam = int:cs_get_user_team(Player) if(iHitHP <= 0) { if(iHitTeam != TeamID) { if(is_user_connected(AtkID)) { cs_set_user_money(AtkID,cs_get_user_money(AtkID) + get_pcvar_num(g_LFMONEY)) set_score(AtkID,Player,1,iHitHP) } else { new tarfrags = pev_user_frags(Player) + 1 //get_user_frags(Player) + 1 set_user_frags(Player,tarfrags) set_user_health(Player,iHitHP) } }else { if(get_pcvar_num(g_LFF)) { if(is_user_connected(AtkID)) { cs_set_user_money(AtkID,cs_get_user_money(AtkID) - get_pcvar_num(g_LFMONEY)) set_score(AtkID,Player,-1,iHitHP) } else { new tarfrags = pev_user_frags(Player) + 1 //get_user_frags(Player) + 1 set_user_frags(Player,tarfrags) set_user_health(Player,iHitHP) } } } }else { if(iHitTeam != TeamID || get_pcvar_num(g_LFF)) { //set_pev(Player,pev_health,iHitHP) set_user_health(Player, iHitHP) message_begin(MSG_ONE_UNRELIABLE, g_msgDamage, {0,0,0}, Player) write_byte(dmg) write_byte(dmg) write_long(DMG_BULLET) engfunc(EngFunc_WriteCoord,vOrigin[0]) engfunc(EngFunc_WriteCoord,vOrigin[1]) engfunc(EngFunc_WriteCoord,vOrigin[2]) message_end() } } } Player = engfunc(EngFunc_FindEntityInSphere,Player,vOrigin,Radius) } return PLUGIN_CONTINUE }
and
PHP Code:
CreateLaserDamage(iCurrent,isHit) { new Float:vOrigin[3],Float:vEnd[3] pev(iCurrent,pev_origin,vOrigin) pev(iCurrent,pev_vuser1,vEnd)
//new isHit = fm_trace_line(iCurrent, vOrigin, vEnd, vTrace) new teamid = pev(iCurrent, LASERMINE_INT_TEAM)
new szClassName[32] new Alive,God new iHitTeam,iHitHP,id new hitscore
if(isHit < 0 ) return PLUGIN_CONTINUE szClassName[0] = '^0' pev(isHit,pev_classname,szClassName,32) if(equal(szClassName, "player")) { Alive = is_user_alive(isHit) God = get_user_godmode(isHit) if(!Alive || God) return PLUGIN_CONTINUE iHitTeam = int:cs_get_user_team(isHit) //iHitHP = entity_get_float(isHit,EV_FL_health) - float(LASER_HIT_DMG) iHitHP = pev_user_health(isHit) - get_pcvar_num(g_LDMG) id = pev(iCurrent,LASERMINE_OWNER)//, szNetName[32] if( get_pcvar_num(g_LMODE) == MODE_LASERMINE) { if(iHitHP <= 0) { if(iHitTeam != teamid) { hitscore = 1 if(is_user_connected(id)) { cs_set_user_money(id,cs_get_user_money(id) + get_pcvar_num(g_LFMONEY)) set_score(id,isHit,hitscore,iHitHP) } else { new tarfrags = pev_user_frags(isHit) + 1 //get_user_frags(Player) + 1 set_user_frags(isHit,tarfrags) set_user_health(isHit,iHitHP) } //set_user_health(iHit, 0) //entity_set_float(iHit, EV_FL_health,0.0) emit_sound(isHit, CHAN_WEAPON, ENT_SOUND4, 1.0, ATTN_NORM, 0, PITCH_NORM ) //entity_get_string(iHit, EV_SZ_netname, szNetName, 32) //client_print(id, print_chat, "[LaserMines] %s killed your mine.",szNetName) }else { if(get_pcvar_num(g_LFF)) { hitscore = -1 if(is_user_connected(id)) { cs_set_user_money(id,cs_get_user_money(id) - get_pcvar_num(g_LFMONEY)) set_score(id,isHit,hitscore,iHitHP) else { new tarfrags = pev_user_frags(isHit) + 1 //get_user_frags(Player) + 1 set_user_frags(isHit,tarfrags) set_user_health(isHit,iHitHP) } emit_sound(isHit, CHAN_WEAPON, ENT_SOUND4, 1.0, ATTN_NORM, 0, PITCH_NORM ) //set_user_health(iHit, 0) //entity_set_float(iHit, EV_FL_health, 0.0) //entity_get_string(iHit, EV_SZ_netname, szNetName, 32) //client_print(id, print_chat, "[LaserMines] %s killed your mine.",szNetName) } } }else if(iHitTeam != teamid || get_pcvar_num(g_LFF)) { //entity_set_float(isHit,EV_FL_health,iHitHP) //set_user_health(isHit, iHitHP) set_user_health(isHit,iHitHP) message_begin(MSG_ONE_UNRELIABLE, g_msgDamage, {0,0,0}, isHit) write_byte(get_pcvar_num(g_LDMG)) write_byte(get_pcvar_num(g_LDMG)) write_long(DMG_BULLET) engfunc(EngFunc_WriteCoord,vOrigin[0]) engfunc(EngFunc_WriteCoord,vOrigin[1]) engfunc(EngFunc_WriteCoord,vOrigin[2]) message_end() } }else { CreateExplosion(iCurrent) CreateDamage(iCurrent,get_pcvar_num(g_LRDMG),get_pcvar_float(g_LRADIUS)) RemoveEntity(iCurrent); } }else if(equal(szClassName, ENT_CLASS_NAME3)) { new hl; hl = pev_user_health(isHit); set_user_health(isHit,hl-get_pcvar_num(g_LDMG)); } return PLUGIN_CONTINUE }
|