I get origins with const but ı can't teleport it. I want to teleport this origins.
PHP Code:
#include <amxmisc>
#include <fakemeta>
#include <engine>
#include <hamsandwich>
#include <xs>
#define PLUGIN "NPC - Non Playar Character - Oyuncu Olmayan Karakter"
#define VERSION "1.0"
#define AUTHOR "peNgueN"
new bool: g_NpcOldu[ 512 ];
new const NpcClass[] = "entity_npc";
new const g_NpcIdleAnimations[] = { 1, 3, 4, 5, 6 };
new const Float:Koordinatlar[][] = {
{2298.0,-1099.0,36.0},
{2227.0,-891.0,36.0},
{2139.0,-723.0,36.0},
{2087.0,-1006.0,36.0},
{1936.0,-972.0,36.0},
{1803.0,-916.0,36.0},
{1580.0,-897.0,36.0},
{1357.0,-994.0,36.0},
{1317.0,-632.0,36.0},
{1085.0,-631.0,36.0},
{1502.0,-632.0,36.0},
{1262.0,-402.0,36.0},
{1261.0,-185.0,36.0},
{1214.0,-552.0,36.0},
{2074.0,-362.0,36.0},
{1961.0,-175.0,36.0},
{1842.0,-63.0,36.0},
{1666.0,-130.0,36.0},
{1441.0,-123.0,36.0},
{2116.0,-199.0,36.0},
{2219.0,-102.0,36.0},
{1015.0,-400.0,36.0},
{826.0,-526.0,36.0},
{584.0,-592.0,36.0},
{364.0,-581.0,36.0},
{369.0,-871.0,36.0}
}
new const g_NpcModel[] = "models/hostageC.mdl";
new NpcSayisi;
new exp_spr_id
new El_Puani[33],G_Toplam_P[33],K_Eli[33]
public plugin_init() {
register_plugin( PLUGIN, VERSION, AUTHOR );
register_clcmd( "say /npc", "NpcMenu" );
register_clcmd( "say_team /npc", "NpcMenu" );
RegisterHam( Ham_Think, "info_target", "fw_NpcThink" );
// RegisterHam( Ham_Touch, "info_target", "fw_NpcTouch" )
register_forward(FM_CmdStart,"fm_cmdstart");
register_logevent("Event_RoundStart", 2, "1=Round_Start")
}
public Event_RoundStart() {
}
public client_putinserver(id) set_task(1.0,"hudla",id,_,_,"b");
public plugin_precache( ) {
precache_model( g_NpcModel );
exp_spr_id = precache_model("sprites/zerogxplode.spr")
}
public hudla(id) {
if(is_user_connected(id)) {
set_hudmessage(255,0, 0, -1.0, 0.0, 2, 0.1, 5.0, 0.1, 5.0)
show_hudmessage(id, "|| El Puanin [%i] ||^n|| Toplam Puanin[%i] ||^n|| Kazandigin Toplam El [%i] || ",El_Puani[id],G_Toplam_P[id],K_Eli[id])
}
}
public fm_cmdstart(id, uc_handle, seed) {
if(!is_user_alive(id)) return
new buttons = get_uc(uc_handle,UC_Buttons)
if(buttons & IN_USE){
new target, body
get_user_aiming(id, target, body, 30)
static ClassName[32]
pev(target, pev_classname, ClassName, charsmax(ClassName))
if (equal(ClassName, "entity_npc")) {
El_Puani[id]++
G_Toplam_P[id]++
bomb_explode(target)
NpcOluyuKaldir(target)
}
}
}
public bomb_explode(target) {
static Float:Origin[3]
pev(target, pev_origin, Origin)
message_begin(MSG_BROADCAST ,SVC_TEMPENTITY)
write_byte(TE_EXPLOSION)
engfunc(EngFunc_WriteCoord, Origin[0])
engfunc(EngFunc_WriteCoord, Origin[1])
engfunc(EngFunc_WriteCoord, Origin[2])
write_short(exp_spr_id) // sprite index
write_byte(20) // scale in 0.1's
write_byte(30) // framerate
write_byte(0) // flags
message_end()
}
public NpcMenu( id )
{
new iMenu[ 64 ];
formatex( iMenu, charsmax( iMenu ), "NPC - Oyuncu Olmayan Karakter" );
new menu = menu_create( iMenu, "NpcMenu_go" );
formatex( iMenu, charsmax( iMenu ), "\wNPC Olustur \y( Aim ile yer belirleyin )" );
menu_additem( menu, iMenu, "1" );
formatex( iMenu, charsmax( iMenu ), "\wNPC Kaldir \y( Aim ile secin )" );
menu_additem( menu, iMenu, "2" );
formatex( iMenu, charsmax( iMenu ), "\wButun NPC'leri Kaldir^n \y %d NPC Mevcut", NpcSayisi );
menu_additem( menu, iMenu, "3" );
menu_setprop( menu, MPROP_EXIT, MEXIT_ALL);
menu_setprop( menu, MPROP_EXITNAME, "\rCIKIS" );
menu_display(id, menu);
return PLUGIN_HANDLED;
}
public NpcMenu_go( id, menu, item )
{
if( item == MENU_EXIT )
{
menu_destroy( menu );
return PLUGIN_HANDLED;
}
new info[ 6 ], szName[ 64 ];
new access, callback;
menu_item_getinfo( menu, item, access, info, charsmax( info ), szName, charsmax( szName ), callback );
new key = str_to_num( info );
switch( key ) {
case 1: {
if( !is_user_alive( id ) ) return PLUGIN_HANDLED;
NpcOlustur( id );
}
case 2:
{
if( !is_user_alive( id ) ) return PLUGIN_HANDLED;
new iEnt, Vucut, NPC[ 64 ];
get_user_aiming( id, iEnt, Vucut );
if ( is_valid_ent( iEnt ) )
{
entity_get_string( iEnt, EV_SZ_classname, NPC, charsmax( NPC ) );
if ( equal( NPC, NpcClass ) )
{
remove_entity( iEnt );
NpcSayisi--;
client_print( id, print_chat, "[NPC] Bir NPC Kaldirildi." );
}
}
}
case 3:
{
remove_entity_name( NpcClass );
NpcSayisi = 0;
client_print( id, print_chat, "[NPC] Butun NPC'ler Kaldirildi." );
}
}
menu_destroy(menu);
return PLUGIN_HANDLED;
}
public fw_NpcTouch( iEnt, id ) {
if( !is_user_alive( id ) )
return HAM_SUPERCEDE;
new buttons = get_uc(id,UC_Buttons)
if(buttons & IN_USE) {
NpcOluyuKaldir(iEnt)
}
return HAM_IGNORED;
}
public NpcOluyuKaldir( Npc ) {
if(is_valid_ent(Npc)){
remove_entity(Npc);
}
}
public fw_NpcThink( iEnt ) {
if( !is_valid_ent( iEnt ) )
return HAM_SUPERCEDE;
new NPC[ 64 ];
entity_get_string( iEnt, EV_SZ_classname, NPC, charsmax( NPC ) );
if( !equali( NPC, NpcClass ) )
return HAM_SUPERCEDE;
if( g_NpcOldu[ iEnt ] )
return HAM_SUPERCEDE;
Util_PlayAnimation(iEnt, g_NpcIdleAnimations[ random( sizeof g_NpcIdleAnimations ) ] );
entity_set_float( iEnt, EV_FL_nextthink, get_gametime() + 5.0 );
return HAM_IGNORED;
}
stock Util_PlayAnimation(index, sequence, Float: framerate = 1.0) {
if (!is_valid_ent(index))
return
entity_set_float(index, EV_FL_animtime, get_gametime());
entity_set_float(index, EV_FL_framerate, framerate);
entity_set_float(index, EV_FL_frame, 0.0);
entity_set_int(index, EV_INT_sequence, sequence);
}
stock get_user_hitpoint(id, Float:hOrigin[3]) {
if ( ! is_user_alive( id ))
return 0;
new Float:fOrigin[3], Float:fvAngle[3], Float:fvOffset[3], Float:fvOrigin[3], Float:feOrigin[3];
new Float:fTemp[3];
pev(id, pev_origin, fOrigin);
pev(id, pev_v_angle, fvAngle);
pev(id, pev_view_ofs, fvOffset);
xs_vec_add(fOrigin, fvOffset, fvOrigin);
engfunc(EngFunc_AngleVectors, fvAngle, feOrigin, fTemp, fTemp);
xs_vec_mul_scalar(feOrigin, 9999.9, feOrigin);
xs_vec_add(fvOrigin, feOrigin, feOrigin);
engfunc(EngFunc_TraceLine, fvOrigin, feOrigin, 0, id);
global_get(glb_trace_endpos, hOrigin);
return 1;
}
public NpcOlustur( id ) {
new Float:Origin[ 3 ], Float: Angle[ 3 ];
new iEnt = create_entity( "info_target" );
entity_set_string( iEnt, EV_SZ_classname, NpcClass );
//get_user_hitpoint( id, Origin );
entity_get_vector(id, EV_VEC_angles, Angle );
Angle[ 0 ] = 0.0;
entity_set_vector( iEnt, EV_VEC_angles, Angle );
entity_set_model( iEnt, g_NpcModel );
entity_set_int(iEnt, EV_INT_movetype, MOVETYPE_PUSHSTEP );
entity_set_int(iEnt, EV_INT_solid, SOLID_BBOX );
new Float: mins[3] = {-12.0, -12.0, 0.0 };
new Float: maxs[3] = { 12.0, 12.0, 75.0 };
entity_set_size(iEnt, mins, maxs);
entity_set_byte( iEnt, EV_BYTE_controller1, 125 );
drop_to_floor( iEnt );
g_NpcOldu[ iEnt ] = false;
NpcSayisi++;
// NOT WORKİNG
for(new i; i < sizeof Koordinatlar; i ++) {
Origin[0] = Koordinatlar[i][0]
Origin[1] = Koordinatlar[i][1]
Origin[2] = Koordinatlar[i][2]
entity_set_origin(iEnt,Origin)
NpcOlustur(id)
}
entity_set_float( iEnt, EV_FL_nextthink, get_gametime() + 1.0 );
}