Raised This Month: $ Target: $400
 0% 

CLOSED!


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
BigBaller
Veteran Member
Join Date: Mar 2004
Location: Everett, WA
Old 04-27-2004 , 02:44  
Reply With Quote #1

Code:
#include <amxmodx> #include <amxmisc> #include <engine> new beam, boom public Vexd_CreateMine(id,level,cid){    if (!cmd_access(id,level,cid,1))       return PLUGIN_HANDLED    new Float:vOrigin[3]    new Float:vAngles[3]    entity_get_vector(id, EV_VEC_origin, vOrigin)    entity_get_vector(id, EV_VEC_v_angle, vAngles)         new NewEnt         NewEnt = create_entity("info_target")         if(NewEnt == 0) {             return PLUGIN_HANDLED_MAIN         }    entity_set_string(NewEnt, EV_SZ_classname, "vexd_tripmine")         entity_set_model(NewEnt, "models/v_tripmine.mdl")    entity_set_int(NewEnt, EV_INT_body, 3)    entity_set_int(NewEnt, EV_INT_sequence, 7)   // 7 = TRIPMINE_WORLD    new Float:MinBox[3]    new Float:MaxBox[3]    MinBox[0] = -8.0    MinBox[1] = -8.0    MinBox[2] = -8.0    MaxBox[0] = 8.0    MaxBox[1] = 8.0    MaxBox[2] = 8.0    entity_set_vector(NewEnt, EV_VEC_mins, MinBox)    entity_set_vector(NewEnt, EV_VEC_maxs, MaxBox)    new Float:vNewOrigin[3]    new Float:vNormal[3]    new Float:vTraceDirection[3]    new Float:vTraceEnd[3]    new Float:vTraceResult[3]    new Float:vEntAngles[3]    VelocityByAim(id, 64, vTraceDirection)        vTraceEnd[0] = vTraceDirection[0] + vOrigin[0]    vTraceEnd[1] = vTraceDirection[1] + vOrigin[1]    vTraceEnd[2] = vTraceDirection[2] + vOrigin[2]    trace_line(id, vOrigin, vTraceEnd, vTraceResult)    if(trace_normal(id, vOrigin, vTraceEnd, vNormal) == 0) {       remove_entity(NewEnt)       console_print(id, "[TripMines] You must plant the tripmine on a wall!")       return PLUGIN_HANDLED_MAIN    }    vNewOrigin[0] = vTraceResult[0] + (vNormal[0] * 8.0)    vNewOrigin[1] = vTraceResult[1] + (vNormal[1] * 8.0)    vNewOrigin[2] = vTraceResult[2] + (vNormal[2] * 8.0)    entity_set_origin(NewEnt, vNewOrigin)    vector_to_angle(vNormal, vEntAngles)    entity_set_vector(NewEnt, EV_VEC_angles, vEntAngles)    new Float:vBeamEnd[3]    new Float:vTracedBeamEnd[3]    vBeamEnd[0] = vNewOrigin[0] + (vNormal[0] * 8192)    vBeamEnd[1] = vNewOrigin[1] + (vNormal[1] * 8192)    vBeamEnd[2] = vNewOrigin[2] + (vNormal[2] * 8192)    trace_line(-1, vNewOrigin, vBeamEnd, vTracedBeamEnd)    entity_set_vector(NewEnt, EV_VEC_vuser1, vTracedBeamEnd)    entity_set_int(NewEnt, EV_INT_solid, 2)    //2 = Solid bbox. (const.h)    entity_set_int(NewEnt, EV_INT_movetype, 5) //5 = movetype_fly, No grav, but collides.    emit_sound(NewEnt, CHAN_WEAPON, "weapons/mine_deploy.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)    emit_sound(NewEnt, CHAN_VOICE, "weapons/mine_charge.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)    return PLUGIN_HANDLED_MAIN } public TripMineThink() {    new iCurrent    iCurrent = find_ent_by_class(-1, "vexd_tripmine")    while(iCurrent != -1) {       new Float:vOrigin[3]       entity_get_vector(iCurrent, EV_VEC_origin, vOrigin)       new Float:vEnd[3]       entity_get_vector(iCurrent, EV_VEC_vuser1, vEnd)       new Float:vTrace[3]       new iHit       iHit = trace_line(iCurrent, vOrigin, vEnd, vTrace)       if(iHit > 0) {          new szClassName[32]          entity_get_string(iHit, EV_SZ_classname, szClassName, 32);                    if(equal(szClassName, "player")) {             message_begin(MSG_BROADCAST, SVC_TEMPENTITY)             write_byte(99) //99 = KillBeam             write_short(iCurrent)             message_end()             message_begin(MSG_BROADCAST, SVC_TEMPENTITY)             write_byte(3)             write_coord(floatround(vOrigin[0]))             write_coord(floatround(vOrigin[1]))             write_coord(floatround(vOrigin[2]))             write_short(boom)             write_byte(50)             write_byte(15)             write_byte(0)             message_end()             RadiusDamage(vOrigin, 1)             remove_entity(iCurrent)          }       }       iCurrent =  find_ent_by_class(iCurrent, "vexd_tripmine")    } } public LaserThink() {    new iCurrent    iCurrent = find_ent_by_class(-1, "vexd_tripmine")    while(iCurrent != -1) {       new Float:vOrigin[3]       entity_get_vector(iCurrent, EV_VEC_origin, vOrigin)       new Float:vEnd[3]       entity_get_vector(iCurrent, EV_VEC_vuser1, vEnd)       message_begin(MSG_BROADCAST,SVC_TEMPENTITY)       write_byte(0)       write_coord(floatround(vOrigin[0]))       write_coord(floatround(vOrigin[1]))       write_coord(floatround(vOrigin[2]))       write_coord(floatround(vEnd[0])) //Random       write_coord(floatround(vEnd[1])) //Random       write_coord(floatround(vEnd[2])) //Random       write_short(beam)       write_byte(0)       write_byte(0)       write_byte(10) //Life       write_byte(5) //Width       write_byte(0)       write_byte(255) // r       write_byte(0) // g       write_byte(0) // b       write_byte(200)       write_byte(0)       message_end()       iCurrent =  find_ent_by_class(iCurrent, "vexd_tripmine")    } } public plugin_init(){     register_plugin("Vexd Entity demo (TripMine)","1.00","default")     register_concmd("amx_setmine","Vexd_CreateMine",ADMIN_KICK)     set_task(0.01, "TripMineThink", 0, "", 0, "b")     set_task(1.0, "LaserThink", 0, "", 0, "b")     return PLUGIN_CONTINUE } public plugin_precache() {    precache_sound("weapons/mine_deploy.wav")    precache_sound("weapons/mine_charge.wav")    precache_model("models/v_tripmine.mdl")    beam = precache_model("sprites/laserbeam.spr")    boom = precache_model("sprites/zerogxplode.spr")    return PLUGIN_CONTINUE }

Down to only 5 warnings using AMXX Natives and such, I did not test it but you can try it now, it should work.
__________________

BigBaller is offline
Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 15:43.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Theme made by Freecode