Raised This Month: $51 Target: $400
 12% 

Random bomsite for de_dust2 and de_dust


Post New Thread Reply   
 
Thread Tools Display Modes
VINAGHOST
Member
Join Date: Aug 2016
Location: Việt Nam
Old 09-09-2017 , 09:25   Re: Random bomsite for de_dust2 and de_dust
Reply With Quote #11

PHP Code:
#include <amxmodx>
#include <amxmisc>
#include <engine>

#define PLUGIN "RANDOM BOMSITE"
#define VERSION "1.0"
#define AUTHOR "VINAGHOST"

new g_szCfgFile[128];
#define TASK_RADAR 1
#define TASK_BOMBONRADAR_TIME 3.0
#define ENTITY_CLASS "func_bomb_target"
new Array:g_BSorigin;

new 
m_fakeHostagem_fakeHostageDie
new gbPlanted=false;
new 
bool:d_bs 
new bs_on
new Float:bs[2][3], bs_id[2]

public 
plugin_init() {
    
register_plugin(PLUGINVERSIONAUTHOR)
    
    
register_event("HLTV""newround""a""1=0""2=0")
    
register_event("BombDrop","bomb_planted","a","4=1");
        
    
bs_on register_cvar("bs_on""0")
    
    
register_clcmd("say /creat","rb_creat"ADMIN_BAN);
    
register_clcmd("say /save","rb_save"ADMIN_BAN);
    
    
    
m_fakeHostage get_user_msgid("HostagePos");
    
m_fakeHostageDie get_user_msgid("HostageK");
}
public 
plugin_precache(){
    
get_configsdir(g_szCfgFile75);    
    new 
szMapName[32];
    
get_mapname(szMapName31);
    
    
format(g_szCfgFile127"%s/randomBS/%s.ini"g_szCfgFileszMapName);
    
    
g_BSorigin ArrayCreate(32);
        
    
//BombSites
    
LoadFromFile();
    
task_Look4BS()
    
d_bs true
}
public 
task_Look4BS(){
    new 
ent = -10
    
new Float:fOrigin[3];
    do{
        
ent find_ent_by_class entENTITY_CLASS);
        if(
is_valid_ent ent )){ 
            
get_brush_entity_origin(entfOrigin);
            
bs_id[i] = ent
            
for(new j=0;j<3;j++)
                
bs[i][j]=fOrigin[j]
            
i++
        }
    }
    while(
ent);
}
public 
newround()
{
    if (
get_pcvar_num(bs_on) == 1)
    {
        
//random bomsite        
        
gbPlanted=false;
        new 
Float:origin[3]
        new 
bomsite random_num(0ArraySize(g_BSorigin) - 1)
        
        
client_print(0print_chat"id = %d"bomsite)
        
        
ArrayGetArray(g_BSoriginbomsiteorigin);
        
        for (new 
0i<2i++)
            
entity_set_origin(bs_id[i], origin)
        
        if (!
task_exists(TASK_RADAR))
        {
            
set_task(TASK_BOMBONRADAR_TIME"task_UpDateRadar",TASK_RADAR,_,_,"b");
            
client_print(0print_chat"id = %d is shown in the radar"bomsite)
        }
        
        
d_bs false
    
}
    else
    {
        if ( !
d_bs
        {
            
d_bs true
            
            
if (task_exists(TASK_RADAR))
                
remove_task(TASK_RADAR)
                
            for (new 
0i<2i++)
                
entity_set_origin(bs_id[i], bs[i])
                
            
client_print(0print_chat,"Bomsite back to normal")
        }
    }
}
public 
rb_creat(idlevelcid){
    
    if(!
cmd_access(idlevelcid1))
        return 
PLUGIN_HANDLED;
        
    new 
Float:fOrigin[3];
    
entity_get_vector(idEV_VEC_originfOrigin);
    
ArrayPushArray(g_BSoriginfOrigin);
    
    return 
PLUGIN_HANDLED_MAIN;
}
public 
rb_save(idlevelcid){
    if(
cmd_access(idlevelcid1))
        
SaveToFile(id)
    return 
PLUGIN_HANDLED_MAIN;
}
public 
bomb_planted(planter){
    
gbPlanted true;
}
SaveToFile(id){
    if(
file_exists(g_szCfgFile))
        
delete_file(g_szCfgFile);
        
    new 
iVector[3];
    new 
szLine[128];
    if(
ArraySize(g_BSorigin) > 0)
    {    
        for(new 
i=0;i<ArraySize(g_BSorigin);i++)
        {
            
ArrayGetArray(g_BSoriginiiVector);
            
format(szLine127"%.0f %.0f %.0f"iVector[0],iVector[1],iVector[2]);
            
write_file(g_szCfgFileszLine, -1);
        }
    }
    
client_print(idprint_center"SAVED");
}
LoadFromFile(){
    new 
szLine[64], iLen;
    new 
szOrigin[3][10];
    new 
Float:fOrigin[3];
    for(new 
i=0;read_file(g_szCfgFile,i,szLine64,iLen);i++){
        
trim(szLine);
        if(
szLine[0]==';') continue;
        
parse(szLineszOrigin[0], 9,szOrigin[1], 9szOrigin[2], 9);
        for(new 
j=0;j<3;j++){
            
fOrigin[j]=str_to_float(szOrigin[j]);
        }
        
        
ArrayPushArray(g_BSoriginfOrigin);    
    }
}
public 
showOnRadar(id
{
    if(
m_fakeHostage && m_fakeHostageDie)    //only 0 is false
    
{
        new 
Floatori_min[3]
        new 
Floatori_max[3]    
        
        
entity_get_vector(bs_id[1],EV_VEC_absmin,ori_min)
        
entity_get_vector(bs_id[1],EV_VEC_absmax,ori_max)    
        
        
message_begin(MSG_ONE_UNRELIABLEm_fakeHostage, {0,0,0}, id);
        
write_byte(id);
        
write_byte(20);
        
write_coord(floatround((ori_max[0]+ori_min[0])/2));
        
write_coord(floatround((ori_max[1]+ori_min[1])/2));
        
write_coord(floatround((ori_max[2]+ori_min[2])/2));
        
message_end();
    
        
message_begin(MSG_ONE_UNRELIABLEm_fakeHostageDie, {0,0,0}, id);
        
write_byte(20);
        
message_end();
    }
}
public 
task_UpDateRadar(){
    
    if(!
gbPlanted
    {    
        new 
Players[32];
        new 
playerCountid;
        
get_players(PlayersplayerCount"bc"
        for ( new 
i=0i<playerCounti++){
            
id Players[i];
            
            
showOnRadar(id)
        }
    }
    

I use entity_set_origin but not work
any help "."
VINAGHOST 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 02:20.


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