AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   Scripting Help (https://forums.alliedmods.net/forumdisplay.php?f=11)
-   -   [[HELP]] Why does this plugin crash my server? (https://forums.alliedmods.net/showthread.php?t=75263)

BioI-Iazard 08-02-2008 05:59

[[HELP]] Why does this plugin crash my server?
 
Hi,
I am wondering why the plugin portal.amxx crashes my server...
i am running the latest version of amxx and the code is posted below
help would be greatly appreciated
thanks in advance
Code:
#include <amxmodx> #include <amxmisc> #include <fun> #include <engine> #define MAX_PORTALS 10 #define MAX_TARGETS 10 #define MAX_ALLROUNDS   10 #define MAX_BLACKHOLES  10 #define ADMIN_FLAG  ADMIN_LEVEL_A new mapPortals[MAX_PORTALS] new mapTargets[MAX_TARGETS] new mapAllrounds[MAX_ALLROUNDS] new mapBlackholes[MAX_BLACKHOLES] new numPortals new numTargets new numAllrounds new numBlackholes new portal_model[64] = "sprites/e-tele1.spr" new target_model[64] = "sprites/b-tele1.spr" new allround_model[64] = "sprites/exit1.spr" new blackhole_model[64] = "models/blackhole.mdl" public plugin_precache() {     precache_model(portal_model)     precache_model(target_model)     precache_model(allround_model)     precache_model(blackhole_model)     precache_sound("debris/beamstart1.wav")     precache_sound("debris/beamstart7.wav") } public plugin_init() {     register_plugin("AMX Portal", "1.4", "KleeneX")     register_clcmd("amx_portal","create_portal",ADMIN_FLAG,": Create a Portal")     register_clcmd("amx_ptarget","create_target",ADMIN_FLAG,": Create a Portal Target")     register_clcmd("amx_aportal","create_allround",ADMIN_FLAG,": Create a Allround")     register_clcmd("amx_blackhole","create_blackhole",ADMIN_FLAG,": Create a Blackhole")         register_clcmd("amx_r_portal","remove_portal",ADMIN_FLAG,": Remove all Portals")     register_clcmd("amx_r_ptarget","remove_target",ADMIN_FLAG,": Remove all Targets")     register_clcmd("amx_r_aportal","remove_allround",ADMIN_FLAG,": Remove all Allrounds")     register_clcmd("amx_r_blackhole","remove_blackhole",ADMIN_FLAG,": Remove all Blackholes")         register_clcmd("amx_portalmenu","cmdPortalMenu",ADMIN_FLAG,": Open the Portal Menu")     register_menucmd(register_menuid("\rPortal Menu:"),1023,"actionPortalMenu") } public create_portal(id,level,cid) {     if (!cmd_access(id,level,cid,1)) return PLUGIN_HANDLED     if(numPortals == MAX_PORTALS) {         console_print(id, "Too many portals.")         return PLUGIN_HANDLED     }         new Origin[3]     get_user_origin(id,Origin)         new Float:pOrigin[3]     IVecFVec(Origin, Float:pOrigin)         new portal = create_entity("info_target")     entity_set_string(portal,EV_SZ_classname,"amx_portal")         entity_set_model(portal, portal_model)     entity_set_int(portal, EV_INT_flags, FL_ALWAYSTHINK)     set_rendering(portal, kRenderFxNone, 0, 0, 0, kRenderTransAdd, 255)         new Float:MinBox[3] = {-16.0, -16.0, 0.0}     new Float:MaxBox[3] = {16.0, 16.0, 16.0}     entity_set_vector(portal, EV_VEC_mins, MinBox)     entity_set_vector(portal, EV_VEC_maxs, MaxBox)         entity_set_int(portal, EV_INT_solid, 1)         pOrigin[1] += 50     entity_set_origin(portal,pOrigin)         mapPortals[numPortals] = portal     ++numPortals     return PLUGIN_HANDLED } public create_target(id,level,cid) {     if (!cmd_access(id,level,cid,1)) return PLUGIN_HANDLED     if(numTargets == MAX_TARGETS) {         console_print(id, "Too many targets.")         return PLUGIN_HANDLED     }         new Origin[3]     get_user_origin(id,Origin)         new Float:pOrigin[3]     IVecFVec(Origin, Float:pOrigin)         new target = create_entity("info_target")     entity_set_string(target,EV_SZ_classname,"amx_ptarget")         entity_set_model(target, target_model)     entity_set_int(target, EV_INT_flags, FL_ALWAYSTHINK)     set_rendering(target, kRenderFxNone, 0, 0, 0, kRenderTransAdd, 255)         pOrigin[1] += 50     entity_set_origin(target,pOrigin)         mapTargets[numTargets] = target     ++numTargets     return PLUGIN_HANDLED } public create_allround(id,level,cid) {     if (!cmd_access(id,level,cid,1)) return PLUGIN_HANDLED     if(numAllrounds == MAX_ALLROUNDS) {         console_print(id, "Too many allrounds.")         return PLUGIN_HANDLED     }         new Origin[3]     get_user_origin(id,Origin)         new Float:pOrigin[3]     IVecFVec(Origin, Float:pOrigin)         new allround = create_entity("info_target")     entity_set_string(allround,EV_SZ_classname,"amx_aportal")         entity_set_model(allround, allround_model)     entity_set_int(allround, EV_INT_flags, FL_ALWAYSTHINK)     set_rendering(allround, kRenderFxNone, 0, 0, 0, kRenderTransAdd, 255)         new Float:MinBox[3] = {-16.0, -16.0, 0.0}     new Float:MaxBox[3] = {16.0, 16.0, 16.0}     entity_set_vector(allround, EV_VEC_mins, MinBox)     entity_set_vector(allround, EV_VEC_maxs, MaxBox)         entity_set_int(allround, EV_INT_solid, 1)         pOrigin[1] += 50     entity_set_origin(allround,pOrigin)         mapAllrounds[numAllrounds] = allround     ++numAllrounds     return PLUGIN_HANDLED } public create_blackhole(id,level,cid) {     if (!cmd_access(id,level,cid,1)) return PLUGIN_HANDLED     if(numBlackholes == MAX_BLACKHOLES) {         console_print(id, "Too many blackholes.")         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 blackhole = create_entity("info_target")         entity_set_string(blackhole, EV_SZ_classname, "amx_blackhole")         entity_set_model(blackhole, blackhole_model)     entity_set_size(blackhole, Float:{-40.0,-30.0,-40.0}, Float:{40.0,30.0,40.0})         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(blackhole)         console_print(id, "You must create a blackhole on a wall!")         return PLUGIN_HANDLED_MAIN     }         vNewOrigin[0] = vTraceResult[0] + (vNormal[0] * 10.0)     vNewOrigin[1] = vTraceResult[1] + (vNormal[1] * 10.0)     vNewOrigin[2] = vTraceResult[2] + (vNormal[2] * 10.0)         entity_set_int(blackhole, EV_INT_solid, 1)     entity_set_int(blackhole, EV_INT_flags, FL_ALWAYSTHINK)         entity_set_origin(blackhole, vNewOrigin)     vector_to_angle(vNormal, vEntAngles)         entity_set_vector(blackhole, EV_VEC_angles, vEntAngles)         mapBlackholes[numBlackholes] = blackhole     ++numBlackholes     return PLUGIN_HANDLED } public remove_portal(id,level,cid) {     if (!cmd_access(id,level,cid,1)) return PLUGIN_HANDLED     for(new a = 0; a < numPortals; a++) {         remove_entity(mapPortals[a])     }     numPortals = 0     return PLUGIN_HANDLED } public remove_target(id,level,cid) {     if (!cmd_access(id,level,cid,1)) return PLUGIN_HANDLED     for(new a = 0; a < numTargets; a++) {         remove_entity(mapTargets[a])     }     numTargets = 0     return PLUGIN_HANDLED } public remove_allround(id,level,cid) {     if (!cmd_access(id,level,cid,1)) return PLUGIN_HANDLED     for(new a = 0; a < numAllrounds; a++) {         remove_entity(mapAllrounds[a])     }     numAllrounds = 0     return PLUGIN_HANDLED } public remove_blackhole(id,level,cid) {     if (!cmd_access(id,level,cid,1)) return PLUGIN_HANDLED     for(new a = 0; a < numBlackholes; a++) {         remove_entity(mapBlackholes[a])     }     numBlackholes = 0     return PLUGIN_HANDLED } public server_frame() {     for(new a = 0; a <= numPortals; ++a) {         if(is_valid_ent(mapPortals[a])) {             if(entity_get_float(mapPortals[a], EV_FL_frame) < 0.0 || entity_get_float(mapPortals[a], EV_FL_frame) > 25) {                 entity_set_float(mapPortals[a], EV_FL_frame, 0.0)             }             else entity_set_float(mapPortals[a], EV_FL_frame, entity_get_float(mapPortals[a], EV_FL_frame) + 0.5)         }     }     for(new a = 0; a <= numTargets; ++a) {         if(is_valid_ent(mapTargets[a])) {             if(entity_get_float(mapTargets[a], EV_FL_frame) < 0.0 || entity_get_float(mapTargets[a], EV_FL_frame) > 25) {                 entity_set_float(mapTargets[a], EV_FL_frame, 0.0)             }             else entity_set_float(mapTargets[a], EV_FL_frame, entity_get_float(mapTargets[a], EV_FL_frame) + 0.5)         }     }     for(new a = 0; a <= numAllrounds; ++a) {         if(is_valid_ent(mapAllrounds[a])) {             if(entity_get_float(mapAllrounds[a], EV_FL_frame) < 0.0 || entity_get_float(mapAllrounds[a], EV_FL_frame) > 25) {                 entity_set_float(mapAllrounds[a], EV_FL_frame, 0.0)             }             else entity_set_float(mapAllrounds[a], EV_FL_frame, entity_get_float(mapAllrounds[a], EV_FL_frame) + 0.5)         }     }     for(new a = 0; a <= numBlackholes; ++a) {         if(is_valid_ent(mapBlackholes[a])) {             if(entity_get_float(mapBlackholes[a], EV_FL_frame) < 195.0 || entity_get_float(mapBlackholes[a], EV_FL_frame) > 255) {                 entity_set_float(mapBlackholes[a], EV_FL_frame, 195.0)             }             else entity_set_float(mapBlackholes[a], EV_FL_frame, entity_get_float(mapBlackholes[a], EV_FL_frame) + 1.5)         }     } } public pfn_touch(ptr,ptd) {     if (ptr > 0 && ptd > 0) {         new Portal[32]         entity_get_string(ptr, EV_SZ_classname, Portal, 31)         if ( equal(Portal,"amx_portal") ) {             if(numTargets == 0) return PLUGIN_HANDLED             else{                 new random_target, Origin[3]                 new Float:eOrigin[3]                 random_target = mapTargets[random_num(0,numTargets - 1)]                 entity_get_vector(random_target, EV_VEC_origin, eOrigin )                 FVecIVec(Float:eOrigin,Origin)                                 Origin[0] += 80                 Origin[1] += 80                 Origin[2] += 10                                 new Float:velocity[3]                 entity_get_vector(ptd, EV_VEC_velocity, velocity)                 emit_sound(ptr, CHAN_WEAPON, "debris/beamstart1.wav", 0.4, ATTN_NORM, 0, PITCH_NORM)                                 set_user_origin(ptd,Origin)                                 velocity[2] = random_float(200.0, 225.0)                 entity_set_vector(ptd, EV_VEC_velocity, velocity)                 emit_sound(random_target, CHAN_WEAPON, "debris/beamstart7.wav", 0.4, ATTN_NORM, 0, PITCH_NORM)             }         }         if ( equal(Portal,"amx_aportal") ) {             if(numAllrounds == 1) return PLUGIN_HANDLED             else{                 new random_target, Origin[3]                 new Float:eOrigin[3]                 random_target = mapAllrounds[random_num(0,numAllrounds - 1)]                 if(random_target != ptr) {                     entity_get_vector(random_target, EV_VEC_origin, eOrigin )                     FVecIVec(Float:eOrigin,Origin)                                         Origin[0] += 80                     Origin[1] += 80                     Origin[2] += 10                                         new Float:velocity[3]                     entity_get_vector(ptd, EV_VEC_velocity, velocity)                     emit_sound(ptr, CHAN_WEAPON, "debris/beamstart1.wav", 0.4, ATTN_NORM, 0, PITCH_NORM)                                         set_user_origin(ptd,Origin)                                         velocity[2] = random_float(200.0, 225.0)                     entity_set_vector(ptd, EV_VEC_velocity, velocity)                     emit_sound(random_target, CHAN_WEAPON, "debris/beamstart7.wav", 0.4, ATTN_NORM, 0, PITCH_NORM)                 }             }         }         if ( equal(Portal,"amx_blackhole") ) {             if(numBlackholes == 1) {                 //user_kill(ptd,1)                 return PLUGIN_HANDLED                 }else{                 new random_target                 new Float:eOrigin[3]                 random_target = mapBlackholes[random_num(0,numBlackholes - 1)]                 if(random_target != ptr) {                     entity_get_vector(random_target, EV_VEC_origin, eOrigin )                                         new Float:vEntAngles[3]                     entity_get_vector(random_target, EV_VEC_angles, vEntAngles)                                         if(vEntAngles[0] < 181)                     eOrigin[2] += 50                     else if(vEntAngles[0] < 361)                        eOrigin[2] -= 50                                         if(vEntAngles[1] == 0)                     eOrigin[0] += 80                     else if(vEntAngles[1] < 91)                     eOrigin[1] += 80                     else if(vEntAngles[1] < 181)                     eOrigin[0] -= 80                     else if(vEntAngles[1] < 271)                     eOrigin[1] -= 80                                         new Float:velocity[3]                     new players[32],pnum                     get_players(players,pnum)                     entity_get_vector(ptd, EV_VEC_velocity, velocity)                                         emit_sound(ptr, CHAN_WEAPON, "debris/beamstart1.wav", 0.4, ATTN_NORM, 0, PITCH_NORM)                     entity_set_vector(ptd,EV_VEC_origin,eOrigin)                     emit_sound(random_target, CHAN_WEAPON, "debris/beamstart7.wav", 0.4, ATTN_NORM, 0, PITCH_NORM)                                         if(vEntAngles[0] < 361 && vEntAngles[0] > 180)                      velocity[2] = random_float(-200.0, -225.0)                     else                     velocity[2] = random_float(200.0, 225.0)                     entity_set_vector(ptd, EV_VEC_velocity, velocity)                 }             }         }     }     return PLUGIN_CONTINUE } public cmdPortalMenu(id,level,cid) {     if (!cmd_access(id,level,cid,1)) return PLUGIN_HANDLED     displayPortalMenu(id)     return PLUGIN_HANDLED } public displayPortalMenu(id) {     new MenuBody[256], keys         new nLen = format( MenuBody, 255, "\rPortal Menu:^n" )         if (numPortals == MAX_PORTALS) nLen += format( MenuBody[nLen], 255-nLen,"^n\w1. Create Portal \r(Limit reached)")     else nLen += format( MenuBody[nLen], 255-nLen, "^n\w1. Create Portal" )     if (numTargets == MAX_TARGETS) nLen += format( MenuBody[nLen],255-nLen,"^n\w2. Create Target \r(Limit reached)")     else nLen += format( MenuBody[nLen],255-nLen,"^n\w2. Create Target")     if (numAllrounds == MAX_ALLROUNDS) nLen += format( MenuBody[nLen],255-nLen,"^n\w3. Create Allround \r(Limit reached)")     else nLen += format( MenuBody[nLen],255-nLen,"^n\w3. Create Allround")     if (numBlackholes == MAX_BLACKHOLES) nLen += format( MenuBody[nLen],255-nLen,"^n\w4. Create Blackhole \r(Limit reached)^n")     else nLen += format( MenuBody[nLen],255-nLen,"^n\w4. Create Blackhole^n")     nLen += format( MenuBody[nLen], 255-nLen, "^n\w5. Remove Portals" )     nLen += format( MenuBody[nLen], 255-nLen, "^n\w6. Remove Targets" )     nLen += format( MenuBody[nLen], 255-nLen, "^n\w7. Remove Allround" )     nLen += format( MenuBody[nLen], 255-nLen, "^n\w8. Remove Blackholes^n" )     nLen += format( MenuBody[nLen], 255-nLen, "^n\y0. Exit" )         keys = (1<<0|1<<1|1<<2|1<<3|1<<4|1<<5|1<<6|1<<7|1<<8|1<<9)         show_menu( id, keys, MenuBody, -1)         return PLUGIN_CONTINUE } public actionPortalMenu(id,key) {     new cid, level     switch(key) {         case 0: create_portal(id,level,cid)         case 1: create_target(id,level,cid)         case 2: create_allround(id,level,cid)         case 3: create_blackhole(id,level,cid)         case 4: remove_portal(id,level,cid)         case 5: remove_target(id,level,cid)         case 6: remove_allround(id,level,cid)         case 7: remove_blackhole(id,level,cid)     }     if (key != 9) displayPortalMenu(id)     return PLUGIN_HANDLED }

BioI-Iazard 08-04-2008 04:32

Re: [[HELP]] Why does this plugin crash my server?
 
Does anybody know why?
It only happens when the server is turned on with this plugin... otherwise it works fine... Im assuming its the script... I just dont got the skills to fix it unfortunately :(

Thanks in advance

Iwon 08-04-2008 12:49

Re: [[HELP]] Why does this plugin crash my server?
 
1 Attachment(s)
I indented the code should work now
PHP Code:

#include <amxmodx>
#include <amxmisc>
#include <fun>
#include <engine>

#define MAX_PORTALS 10
#define MAX_TARGETS 10
#define MAX_ALLROUNDS   10
#define MAX_BLACKHOLES  10

#define ADMIN_FLAG  ADMIN_LEVEL_A

new mapPortals[MAX_PORTALS]
new 
mapTargets[MAX_TARGETS]
new 
mapAllrounds[MAX_ALLROUNDS]
new 
mapBlackholes[MAX_BLACKHOLES]

new 
numPortals
new numTargets
new numAllrounds
new numBlackholes

new portal_model[64] = "sprites/e-tele1.spr"
new target_model[64] = "sprites/b-tele1.spr"
new allround_model[64] = "sprites/exit1.spr"
new blackhole_model[64] = "models/blackhole.mdl"

public plugin_precache() {
    
precache_model(portal_model)
    
precache_model(target_model)
    
precache_model(allround_model)
    
precache_model(blackhole_model)
    
precache_sound("debris/beamstart1.wav")
    
precache_sound("debris/beamstart7.wav")
}

public 
plugin_init() {
    
register_plugin("AMX Portal""1.4""KleeneX")
    
register_clcmd("amx_portal","create_portal",ADMIN_FLAG,": Create a Portal")
    
register_clcmd("amx_ptarget","create_target",ADMIN_FLAG,": Create a Portal Target")
    
register_clcmd("amx_aportal","create_allround",ADMIN_FLAG,": Create a Allround")
    
register_clcmd("amx_blackhole","create_blackhole",ADMIN_FLAG,": Create a Blackhole")
    
    
register_clcmd("amx_r_portal","remove_portal",ADMIN_FLAG,": Remove all Portals")
    
register_clcmd("amx_r_ptarget","remove_target",ADMIN_FLAG,": Remove all Targets")
    
register_clcmd("amx_r_aportal","remove_allround",ADMIN_FLAG,": Remove all Allrounds")
    
register_clcmd("amx_r_blackhole","remove_blackhole",ADMIN_FLAG,": Remove all Blackholes")
    
    
register_clcmd("amx_portalmenu","cmdPortalMenu",ADMIN_FLAG,": Open the Portal Menu")
    
register_menucmd(register_menuid("\rPortal Menu:"),1023,"actionPortalMenu")
}

public 
create_portal(id,level,cid) {
    if (!
cmd_access(id,level,cid,1)) return PLUGIN_HANDLED
    
if(numPortals == MAX_PORTALS) {
        
console_print(id"Too many portals.")
        return 
PLUGIN_HANDLED
    
}
    
    new 
Origin[3]
    
get_user_origin(id,Origin)
    
    new 
Float:pOrigin[3]
    
IVecFVec(OriginFloat:pOrigin)
    
    new 
portal create_entity("info_target")
    
entity_set_string(portal,EV_SZ_classname,"amx_portal")
    
    
entity_set_model(portalportal_model)
    
entity_set_int(portalEV_INT_flagsFL_ALWAYSTHINK)
    
set_rendering(portalkRenderFxNone000kRenderTransAdd255)
    
    new 
Float:MinBox[3] = {-16.0, -16.00.0}
    new 
Float:MaxBox[3] = {16.016.016.0}
    
entity_set_vector(portalEV_VEC_minsMinBox)
    
entity_set_vector(portalEV_VEC_maxsMaxBox)
    
    
entity_set_int(portalEV_INT_solid1)
    
    
pOrigin[1] += 50
    entity_set_origin
(portal,pOrigin)
    
    
mapPortals[numPortals] = portal
    
++numPortals
    
return PLUGIN_HANDLED
}

public 
create_target(id,level,cid) {
    if (!
cmd_access(id,level,cid,1)) return PLUGIN_HANDLED
    
if(numTargets == MAX_TARGETS) {
        
console_print(id"Too many targets.")
        return 
PLUGIN_HANDLED
    
}
    
    new 
Origin[3]
    
get_user_origin(id,Origin)
    
    new 
Float:pOrigin[3]
    
IVecFVec(OriginFloat:pOrigin)
    
    new 
target create_entity("info_target")
    
entity_set_string(target,EV_SZ_classname,"amx_ptarget")
    
    
entity_set_model(targettarget_model)
    
entity_set_int(targetEV_INT_flagsFL_ALWAYSTHINK)
    
set_rendering(targetkRenderFxNone000kRenderTransAdd255)
    
    
pOrigin[1] += 50
    entity_set_origin
(target,pOrigin)
    
    
mapTargets[numTargets] = target
    
++numTargets
    
return PLUGIN_HANDLED
}

public 
create_allround(id,level,cid) {
    if (!
cmd_access(id,level,cid,1)) return PLUGIN_HANDLED
    
if(numAllrounds == MAX_ALLROUNDS) {
        
console_print(id"Too many allrounds.")
        return 
PLUGIN_HANDLED
    
}
    
    new 
Origin[3]
    
get_user_origin(id,Origin)
    
    new 
Float:pOrigin[3]
    
IVecFVec(OriginFloat:pOrigin)
    
    new 
allround create_entity("info_target")
    
entity_set_string(allround,EV_SZ_classname,"amx_aportal")
    
    
entity_set_model(allroundallround_model)
    
entity_set_int(allroundEV_INT_flagsFL_ALWAYSTHINK)
    
set_rendering(allroundkRenderFxNone000kRenderTransAdd255)
    
    new 
Float:MinBox[3] = {-16.0, -16.00.0}
    new 
Float:MaxBox[3] = {16.016.016.0}
    
entity_set_vector(allroundEV_VEC_minsMinBox)
    
entity_set_vector(allroundEV_VEC_maxsMaxBox)
    
    
entity_set_int(allroundEV_INT_solid1)
    
    
pOrigin[1] += 50
    entity_set_origin
(allround,pOrigin)
    
    
mapAllrounds[numAllrounds] = allround
    
++numAllrounds
    
return PLUGIN_HANDLED
}

public 
create_blackhole(id,level,cid) {
    if (!
cmd_access(id,level,cid,1)) return PLUGIN_HANDLED
    
if(numBlackholes == MAX_BLACKHOLES) {
        
console_print(id"Too many blackholes.")
        return 
PLUGIN_HANDLED
    
}
    
    new 
Float:vOrigin[3]
    new 
Float:vAngles[3]
    
entity_get_vector(idEV_VEC_originvOrigin)
    
entity_get_vector(idEV_VEC_v_anglevAngles)
    
    new 
blackhole create_entity("info_target")
    
    
entity_set_string(blackholeEV_SZ_classname"amx_blackhole")
    
    
entity_set_model(blackholeblackhole_model)
    
entity_set_size(blackholeFloat:{-40.0,-30.0,-40.0}, Float:{40.0,30.0,40.0})
    
    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(id64vTraceDirection)
    
    
vTraceEnd[0] = vTraceDirection[0] + vOrigin[0]
    
vTraceEnd[1] = vTraceDirection[1] + vOrigin[1]
    
vTraceEnd[2] = vTraceDirection[2] + vOrigin[2]
    
    
trace_line(idvOriginvTraceEndvTraceResult)
    
    if(
trace_normal(idvOriginvTraceEndvNormal) == 0) {
        
remove_entity(blackhole)
        
console_print(id"You must create a blackhole on a wall!")
        return 
PLUGIN_HANDLED_MAIN
    
}
    
    
vNewOrigin[0] = vTraceResult[0] + (vNormal[0] * 10.0)
    
vNewOrigin[1] = vTraceResult[1] + (vNormal[1] * 10.0)
    
vNewOrigin[2] = vTraceResult[2] + (vNormal[2] * 10.0)
    
    
entity_set_int(blackholeEV_INT_solid1)
    
entity_set_int(blackholeEV_INT_flagsFL_ALWAYSTHINK)
    
    
entity_set_origin(blackholevNewOrigin)
    
vector_to_angle(vNormalvEntAngles)
    
    
entity_set_vector(blackholeEV_VEC_anglesvEntAngles)
    
    
mapBlackholes[numBlackholes] = blackhole
    
++numBlackholes
    
return PLUGIN_HANDLED
}

public 
remove_portal(id,level,cid) {
    if (!
cmd_access(id,level,cid,1)) return PLUGIN_HANDLED
    
for(new 0numPortalsa++) {
        
remove_entity(mapPortals[a])
    }
    
numPortals 0
    
return PLUGIN_HANDLED
}

public 
remove_target(id,level,cid) {
    if (!
cmd_access(id,level,cid,1)) return PLUGIN_HANDLED
    
for(new 0numTargetsa++) {
        
remove_entity(mapTargets[a])
    }
    
numTargets 0
    
return PLUGIN_HANDLED
}

public 
remove_allround(id,level,cid) {
    if (!
cmd_access(id,level,cid,1)) return PLUGIN_HANDLED
    
for(new 0numAllroundsa++) {
        
remove_entity(mapAllrounds[a])
    }
    
numAllrounds 0
    
return PLUGIN_HANDLED
}

public 
remove_blackhole(id,level,cid) {
    if (!
cmd_access(id,level,cid,1)) return PLUGIN_HANDLED
    
for(new 0numBlackholesa++) {
        
remove_entity(mapBlackholes[a])
    }
    
numBlackholes 0
    
return PLUGIN_HANDLED
}

public 
server_frame() {
    for(new 
0<= numPortals; ++a) {
        if(
is_valid_ent(mapPortals[a])) {
            if(
entity_get_float(mapPortals[a], EV_FL_frame) < 0.0 || entity_get_float(mapPortals[a], EV_FL_frame) > 25) {
                
entity_set_float(mapPortals[a], EV_FL_frame0.0)
            }
            else 
entity_set_float(mapPortals[a], EV_FL_frameentity_get_float(mapPortals[a], EV_FL_frame) + 0.5)
        }
    }
    for(new 
0<= numTargets; ++a) {
        if(
is_valid_ent(mapTargets[a])) {
            if(
entity_get_float(mapTargets[a], EV_FL_frame) < 0.0 || entity_get_float(mapTargets[a], EV_FL_frame) > 25) {
                
entity_set_float(mapTargets[a], EV_FL_frame0.0)
            }
            else 
entity_set_float(mapTargets[a], EV_FL_frameentity_get_float(mapTargets[a], EV_FL_frame) + 0.5)
        }
    }
    for(new 
0<= numAllrounds; ++a) {
        if(
is_valid_ent(mapAllrounds[a])) {
            if(
entity_get_float(mapAllrounds[a], EV_FL_frame) < 0.0 || entity_get_float(mapAllrounds[a], EV_FL_frame) > 25) {
                
entity_set_float(mapAllrounds[a], EV_FL_frame0.0)
            }
            else 
entity_set_float(mapAllrounds[a], EV_FL_frameentity_get_float(mapAllrounds[a], EV_FL_frame) + 0.5)
        }
    }
    for(new 
0<= numBlackholes; ++a) {
        if(
is_valid_ent(mapBlackholes[a])) {
            if(
entity_get_float(mapBlackholes[a], EV_FL_frame) < 195.0 || entity_get_float(mapBlackholes[a], EV_FL_frame) > 255) {
                
entity_set_float(mapBlackholes[a], EV_FL_frame195.0)
            }
            else 
entity_set_float(mapBlackholes[a], EV_FL_frameentity_get_float(mapBlackholes[a], EV_FL_frame) + 1.5)
        }
    }
}

public 
pfn_touch(ptr,ptd) {
    if (
ptr && ptd 0) {
        new 
Portal[32]
        
entity_get_string(ptrEV_SZ_classnamePortal31)
        if ( 
equal(Portal,"amx_portal") ) {
            if(
numTargets == 0) return PLUGIN_HANDLED
            
else{
                new 
random_targetOrigin[3]
                new 
Float:eOrigin[3]
                
random_target mapTargets[random_num(0,numTargets 1)]
                
entity_get_vector(random_targetEV_VEC_origineOrigin )
                
FVecIVec(Float:eOrigin,Origin)
                
                
Origin[0] += 80
                Origin
[1] += 80
                Origin
[2] += 10
                
                
new Float:velocity[3]
                
entity_get_vector(ptdEV_VEC_velocityvelocity)
                
emit_sound(ptrCHAN_WEAPON"debris/beamstart1.wav"0.4ATTN_NORM0PITCH_NORM)
                
                
set_user_origin(ptd,Origin)
                
                
velocity[2] = random_float(200.0225.0)
                
entity_set_vector(ptdEV_VEC_velocityvelocity)
                
emit_sound(random_targetCHAN_WEAPON"debris/beamstart7.wav"0.4ATTN_NORM0PITCH_NORM)
            }
        }
        if ( 
equal(Portal,"amx_aportal") ) {
            if(
numAllrounds == 1) return PLUGIN_HANDLED
            
else{
                new 
random_targetOrigin[3]
                new 
Float:eOrigin[3]
                
random_target mapAllrounds[random_num(0,numAllrounds 1)]
                if(
random_target != ptr) {
                    
entity_get_vector(random_targetEV_VEC_origineOrigin )
                    
FVecIVec(Float:eOrigin,Origin)
                    
                    
Origin[0] += 80
                    Origin
[1] += 80
                    Origin
[2] += 10
                    
                    
new Float:velocity[3]
                    
entity_get_vector(ptdEV_VEC_velocityvelocity)
                    
emit_sound(ptrCHAN_WEAPON"debris/beamstart1.wav"0.4ATTN_NORM0PITCH_NORM)
                    
                    
set_user_origin(ptd,Origin)
                    
                    
velocity[2] = random_float(200.0225.0)
                    
entity_set_vector(ptdEV_VEC_velocityvelocity)
                    
emit_sound(random_targetCHAN_WEAPON"debris/beamstart7.wav"0.4ATTN_NORM0PITCH_NORM)
                }
            }
        }
        if(
equal(Portal,"amx_blackhole")) {
            if(
numBlackholes == 1) {
                
//user_kill(ptd,1)
                
return PLUGIN_HANDLED
                
}else{
                new 
random_target
                
new Float:eOrigin[3]
                
random_target mapBlackholes[random_num(0,numBlackholes 1)]
                if(
random_target != ptr) {
                    
entity_get_vector(random_targetEV_VEC_origineOrigin )
                    
                    new 
Float:vEntAngles[3]
                    
entity_get_vector(random_targetEV_VEC_anglesvEntAngles)
                    
                    if(
vEntAngles[0] < 181)
                        
eOrigin[2] += 50
                    
else if(vEntAngles[0] < 361)    
                        
eOrigin[2] -= 50
                    
                    
if(vEntAngles[1] == 0)
                        
eOrigin[0] += 80
                    
else if(vEntAngles[1] < 91)
                        
eOrigin[1] += 80
                    
else if(vEntAngles[1] < 181)
                        
eOrigin[0] -= 80
                    
else if(vEntAngles[1] < 271)
                        
eOrigin[1] -= 80
                    
                    
new Float:velocity[3]
                    new 
players[32],pnum
                    get_players
(players,pnum)
                    
entity_get_vector(ptdEV_VEC_velocityvelocity)
                    
                    
emit_sound(ptrCHAN_WEAPON"debris/beamstart1.wav"0.4ATTN_NORM0PITCH_NORM)
                    
entity_set_vector(ptd,EV_VEC_origin,eOrigin)
                    
emit_sound(random_targetCHAN_WEAPON"debris/beamstart7.wav"0.4ATTN_NORM0PITCH_NORM)
                    
                    if(
vEntAngles[0] < 361 && vEntAngles[0] > 180)  
                        
velocity[2] = random_float(-200.0, -225.0)
                    else
                        
velocity[2] = random_float(200.0225.0)
                    
entity_set_vector(ptdEV_VEC_velocityvelocity)
                }
            }
        }
    }
    return 
PLUGIN_CONTINUE
}

public 
cmdPortalMenu(id,level,cid) {
    if (!
cmd_access(id,level,cid,1)) return PLUGIN_HANDLED
    displayPortalMenu
(id)
    return 
PLUGIN_HANDLED
}

public 
displayPortalMenu(id) {
    new 
MenuBody[256], keys
    
    
new nLen formatMenuBody255"\rPortal Menu:^n" )
    
    if (
numPortals == MAX_PORTALSnLen += formatMenuBody[nLen], 255-nLen,"^n\w1. Create Portal \r(Limit reached)")
    else 
nLen += formatMenuBody[nLen], 255-nLen"^n\w1. Create Portal" )
    if (
numTargets == MAX_TARGETSnLen += formatMenuBody[nLen],255-nLen,"^n\w2. Create Target \r(Limit reached)")
    else 
nLen += formatMenuBody[nLen],255-nLen,"^n\w2. Create Target")
    if (
numAllrounds == MAX_ALLROUNDSnLen += formatMenuBody[nLen],255-nLen,"^n\w3. Create Allround \r(Limit reached)")
    else 
nLen += formatMenuBody[nLen],255-nLen,"^n\w3. Create Allround")
    if (
numBlackholes == MAX_BLACKHOLESnLen += formatMenuBody[nLen],255-nLen,"^n\w4. Create Blackhole \r(Limit reached)^n")
    else 
nLen += formatMenuBody[nLen],255-nLen,"^n\w4. Create Blackhole^n")
    
nLen += formatMenuBody[nLen], 255-nLen"^n\w5. Remove Portals" )
    
nLen += formatMenuBody[nLen], 255-nLen"^n\w6. Remove Targets" )
    
nLen += formatMenuBody[nLen], 255-nLen"^n\w7. Remove Allround" )
    
nLen += formatMenuBody[nLen], 255-nLen"^n\w8. Remove Blackholes^n" )
    
nLen += formatMenuBody[nLen], 255-nLen"^n\y0. Exit" )
    
    
keys = (1<<0|1<<1|1<<2|1<<3|1<<4|1<<5|1<<6|1<<7|1<<8|1<<9)
    
    
show_menuidkeysMenuBody, -1)
    
    return 
PLUGIN_CONTINUE
}

public 
actionPortalMenu(id,key) {
    new 
cidlevel
    
switch(key) {
        case 
0create_portal(id,level,cid)
            case 
1create_target(id,level,cid)
            case 
2create_allround(id,level,cid)
            case 
3create_blackhole(id,level,cid)
            case 
4remove_portal(id,level,cid)
            case 
5remove_target(id,level,cid)
            case 
6remove_allround(id,level,cid)
            case 
7remove_blackhole(id,level,cid)
        }
    if (
key != 9displayPortalMenu(id)
    return 
PLUGIN_HANDLED



BioI-Iazard 08-07-2008 05:47

Re: [[HELP]] Why does this plugin crash my server?
 
Still crashes my server... :(

BioI-Iazard 08-23-2008 01:54

Re: [[HELP]] Why does this plugin crash my server?
 
any idea why it crashes ?

EvolDay 08-23-2008 05:34

Re: [[HELP]] Why does this plugin crash my server?
 
Just an thought maybe the map you play has to much stuff to precache and the plugin makes it go over 512.

BioI-Iazard 08-23-2008 08:42

Re: [[HELP]] Why does this plugin crash my server?
 
Quote:

Originally Posted by EvolDay (Post 674157)
Just an thought maybe the map you play has to much stuff to precache and the plugin makes it go over 512.

hmmmmm....... not sure maybe
so your trying to say theres nothing wrong with the plugin??

Iwon 08-24-2008 06:27

Re: [[HELP]] Why does this plugin crash my server?
 
PHP Code:

new portal_model[64

woah change it to 32 -.-
PHP Code:

new portal_model[32

and the plugin should be fine

all of the models up there should be 32 not 64


All times are GMT -4. The time now is 05:40.

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