Raised This Month: $ Target: $400
 0% 

MSG_ONE or MSG_ONE_UNRELIABLE with no target entity - Help =/


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
padilha007
Senior Member
Join Date: Jul 2008
Old 07-27-2008 , 20:54   MSG_ONE or MSG_ONE_UNRELIABLE with no target entity - Help =/
Reply With Quote #1

i use this plugin in my server and got this erro, anyone can fix that?

code:

HTML Code:
#include <amxmodx>
#include <cstrike>
#include <fakemeta_util>

#define MAX_PLAYERS     32

#define TASKID_REVIVE     1337
#define TASKID_RESPAWN     1338
#define TASKID_CHECKRE     1339
#define TASKID_CHECKST     13310
#define TASKID_ORIGIN     13311
#define TASKID_SETUSER     13312

#define pev_zorigin    pev_fuser4
#define seconds(%1) ((1<<12) * (%1))

new MODEL_RKIT[]     = "models/w_medkit.mdl"

new SOUND_START[]     = "items/medshot4.wav"
new SOUND_FINISHED[]     = "items/smallmedkit2.wav"
new SOUND_FAILED[]     = "items/medshotno1.wav"
new SOUND_EQUIP[]    = "items/ammopickup2.wav"

enum
{
    ICON_HIDE = 0,
    ICON_SHOW,
    ICON_FLASH
}

new bool:g_haskit[MAX_PLAYERS+1]
new Float:g_revive_delay[MAX_PLAYERS+1]
new Float:g_body_origin[MAX_PLAYERS+1][3]
new bool:g_wasducking[MAX_PLAYERS+1]

new g_msg_bartime
new g_msg_screenfade
new g_msg_statusicon
new g_msg_clcorpse

new cvar_revival_time
new cvar_revival_health
new cvar_revival_dis
new cvar_revival_cost

static const PLUGIN_NAME[]     = "Revival Kit"
static const PLUGIN_AUTHOR[]     = "Cheap_Suit"
static const PLUGIN_VERSION[]    = "1.1"

public plugin_init()
{
    register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR)
    register_cvar(PLUGIN_NAME, PLUGIN_VERSION, FCVAR_SPONLY|FCVAR_SERVER)
    
    register_clcmd("say /buyrkit",     "cmd_buyrkit")
    register_clcmd("buyrkit",     "cmd_buyrkit")
    
    cvar_revival_time     = register_cvar("amx_revkit_time",     "6")
    cvar_revival_health     = register_cvar("amx_revkit_health",     "75")
    cvar_revival_dis     = register_cvar("amx_revkit_distance",     "70.0")
    cvar_revival_cost     = register_cvar("amx_revkit_cost",     "0")
    
    g_msg_bartime    = get_user_msgid("BarTime")
    g_msg_clcorpse    = get_user_msgid("ClCorpse")
    g_msg_screenfade= get_user_msgid("ScreenFade")
    g_msg_statusicon= get_user_msgid("StatusIcon")

    register_message(g_msg_clcorpse, "message_clcorpse")
    
    register_event("DeathMsg",     "event_death",     "a")
    register_event("HLTV",         "event_hltv",     "a", "1=0", "2=0")
    
    register_forward(FM_Touch,         "fwd_touch")
    register_forward(FM_EmitSound,         "fwd_emitsound")
    register_forward(FM_PlayerPostThink,     "fwd_playerpostthink")
}

public plugin_precache()
{
    precache_model("models/player/arctic/arctic.mdl")
    precache_model("models/player/terror/terror.mdl")
    precache_model("models/player/leet/leet.mdl")
    precache_model("models/player/guerilla/guerilla.mdl")
    precache_model("models/player/gign/gign.mdl")
    precache_model("models/player/sas/sas.mdl")
    precache_model("models/player/gsg9/gsg9.mdl")
    precache_model("models/player/urban/urban.mdl")
    precache_model("models/player/vip/vip.mdl")
    
    precache_model(MODEL_RKIT)
    
    precache_sound(SOUND_START)
    precache_sound(SOUND_FINISHED)
    precache_sound(SOUND_FAILED)
    precache_sound(SOUND_EQUIP)
}

public cmd_buyrkit(id)
{
    if(!is_user_alive(id))
        client_print(id, print_chat, "Voce precisa estr vivo.")
    else if(g_haskit[id])
        client_print(id, print_chat, "Voce ja tem um kit para reviver!")
    else if(cs_get_user_money(id) < get_pcvar_num(cvar_revival_cost))
        client_print(id, print_chat, "Voce nao tem dinheiro! (Custo:$%d)", get_pcvar_num(cvar_revival_cost))
    else
    {
        g_haskit[id] = true
        cs_set_user_money(id, cs_get_user_money(id) - get_pcvar_num(cvar_revival_cost))
        client_print(id, print_chat, "Voce comprou um kit para reviver amigo! Use a tecla (E) para revive-lo.")
        client_cmd(id, "spk %s", SOUND_EQUIP)
        
    }
    return PLUGIN_HANDLED
}

public message_clcorpse()    
    return PLUGIN_HANDLED
    
public client_connect(id)
{
    client_cmd(id,"bind f5 buyrkit")
    reset_player(id)
}

public event_hltv()
{
    fm_remove_entity_name("fake_corpse")
    fm_remove_entity_name("revival_kit")
    set_task(1.0, "task_botbuy")
    
    static players[32], num
    get_players(players, num, "a")
    for(new i = 0; i < num; ++i)
        reset_player(players[i])
}
    
public task_botbuy()
{
    static players[32], num
    get_players(players, num, "ad") 
    for(new i = 0; i < num; ++i) if(!g_haskit[players[i]])
        cmd_buyrkit(players[i])
}

public reset_player(id)
{
    remove_task(TASKID_REVIVE + id)
    remove_task(TASKID_RESPAWN + id)
    remove_task(TASKID_CHECKRE + id)
    remove_task(TASKID_CHECKST + id)
    remove_task(TASKID_ORIGIN + id)
    remove_task(TASKID_SETUSER + id)
    
    msg_bartime(id, 0)
    g_revive_delay[id]     = 0.0
    g_wasducking[id]     = false
    g_body_origin[id]     = Float:{0.0, 0.0, 0.0}
}

public client_disconnect(id)
{
    new ent
    while((ent = fm_find_ent_by_owner(ent, "fake_corpse", id)) != 0)
        fm_remove_entity(ent)
}

public fwd_touch(kit, id)
{
    if(!fm_is_valid_ent(kit))
        return FMRES_IGNORED
    
    if(!is_user_alive(id) || g_haskit[id])
        return FMRES_IGNORED
    
    new classname[32]
    pev(kit, pev_classname, classname, 31)
    
    if(equal(classname, "revival_kit"))
    {
        fm_remove_entity(kit)
        g_haskit[id] = true
        client_cmd(id, "spk %s", SOUND_EQUIP)
    }
    return FMRES_IGNORED
}

public fwd_playerpostthink(id)
{
    if(!is_user_connected(id) || !g_haskit[id])
        return FMRES_IGNORED
    
    if(!is_user_alive(id))
    {
        msg_statusicon(id, ICON_HIDE)
        return FMRES_IGNORED
    }
    
    new body = find_dead_body(id)
    if(fm_is_valid_ent(body))
    {
        new lucky_bastard = pev(body, pev_owner)
    
        if(!is_user_connected(lucky_bastard))
            return FMRES_IGNORED

        new lb_team = get_user_team(lucky_bastard)
        new rev_team = get_user_team(id)
        if(lb_team == 1 || lb_team == 2 && lb_team == rev_team)
            msg_statusicon(id, ICON_FLASH)
    }
    else
        msg_statusicon(id, ICON_SHOW)
    
    return FMRES_IGNORED
}

public event_death()
{
    new id = read_data(2)
    
    reset_player(id)
    if(g_haskit[id])
    {
        drop_kit(id)
        g_haskit[id] = false
    }
    
    static Float:minsize[3]
    pev(id, pev_mins, minsize)

    if(minsize[2] == -18.0)
        g_wasducking[id] = true
    else
        g_wasducking[id] = false
    
    set_task(0.5, "task_check_dead_flag", id)
}

public drop_kit(id)
{

if (g_haskit[id] == true)
{
    
    new Float:velocity[3]
    velocity_by_aim(id, 34, velocity)
        
    new Float:origin[3]
    pev(id, pev_origin, origin)

    origin[0] += velocity[0]
    origin[1] += velocity[1]

    new kit = fm_create_entity("info_target")
    if(fm_is_valid_ent(kit))
    {
        set_pev(kit, pev_classname, "revival_kit")
        engfunc(EngFunc_SetModel, kit, MODEL_RKIT)
        engfunc(EngFunc_SetOrigin, kit, origin)
        engfunc(EngFunc_SetSize, kit, Float:{-2.5, -2.5, -1.5}, Float:{2.5, 2.5, 1.5})
        set_pev(kit, pev_solid, SOLID_TRIGGER)
        set_pev(kit, pev_movetype, MOVETYPE_TOSS)
    }
}
else
{
    return PLUGIN_CONTINUE    
}

    return PLUGIN_CONTINUE    
}

public task_check_dead_flag(id)
{
    if(!is_user_connected(id))
        return
    
    if(pev(id, pev_deadflag) == DEAD_DEAD)
        create_fake_corpse(id)
    else
        set_task(0.5, "task_check_dead_flag", id)
}    

public create_fake_corpse(id)
{
    set_pev(id, pev_effects, EF_NODRAW)
    
    static model[32]
    cs_get_user_model(id, model, 31)
        
    static player_model[64]
    format(player_model, 63, "models/player/%s/%s.mdl", model, model)
            
    static Float: player_origin[3]
    pev(id, pev_origin, player_origin)
        
    static Float:mins[3]
    mins[0] = -16.0
    mins[1] = -16.0
    mins[2] = -34.0
    
    static Float:maxs[3]
    maxs[0] = 16.0
    maxs[1] = 16.0
    maxs[2] = 34.0
    
    if(g_wasducking[id])
    {
        mins[2] /= 2
        maxs[2] /= 2
    }
        
    static Float:player_angles[3]
    pev(id, pev_angles, player_angles)
    player_angles[2] = 0.0
                
    new sequence = pev(id, pev_sequence)
    
    new ent = fm_create_entity("info_target")
    if(ent)
    {
        set_pev(ent, pev_classname, "fake_corpse")
        engfunc(EngFunc_SetModel, ent, player_model)
        engfunc(EngFunc_SetOrigin, ent, player_origin)
        engfunc(EngFunc_SetSize, ent, mins, maxs)
        set_pev(ent, pev_solid, SOLID_TRIGGER)
        set_pev(ent, pev_movetype, MOVETYPE_TOSS)
        set_pev(ent, pev_owner, id)
        set_pev(ent, pev_angles, player_angles)
        set_pev(ent, pev_sequence, sequence)
        set_pev(ent, pev_frame, 9999.9)
    }    
}

public fwd_emitsound(id, channel, sound[]) 
{
    if(!is_user_alive(id) || !g_haskit[id])
        return FMRES_IGNORED    
    
    if(!equali(sound, "common/wpn_denyselect.wav"))
        return FMRES_IGNORED    
    
    if(task_exists(TASKID_REVIVE + id))
        return FMRES_IGNORED
    
    if(!(fm_get_user_button(id) & IN_USE))
        return FMRES_IGNORED
    
    new body = find_dead_body(id)
    if(!fm_is_valid_ent(body))
        return FMRES_IGNORED

    new lucky_bastard = pev(body, pev_owner)
    new lb_team = get_user_team(lucky_bastard)
    new rev_team = get_user_team(id)
    if(lb_team != 1 && lb_team != 2 || lb_team != rev_team)
        return FMRES_IGNORED

    static name[32]
    get_user_name(lucky_bastard, name, 31)
    client_print(id, print_chat, "Revivendo %s | Cuidado, 8 Segundos ate acabar!", name)
    g_haskit[id] = false
    msg_statusicon(id, ICON_HIDE)
        
    new revivaltime = get_pcvar_num(cvar_revival_time)
    msg_bartime(id, revivaltime)
    
    new Float:gametime = get_gametime()
    g_revive_delay[id] = gametime + float(revivaltime) - 0.01

    emit_sound(id, CHAN_AUTO, SOUND_START, VOL_NORM, ATTN_NORM, 0, PITCH_NORM)
    set_task(0.0, "task_revive", TASKID_REVIVE + id)
    
    return FMRES_SUPERCEDE
}

public task_revive(taskid)
{
    new id = taskid - TASKID_REVIVE
    
    if(!is_user_alive(id))
    {
        failed_revive(id)
        return FMRES_IGNORED
    }
    
    if(!(fm_get_user_button(id) & IN_USE))
    {
        failed_revive(id)
        return FMRES_IGNORED
    }
    
    new body = find_dead_body(id)
    if(!fm_is_valid_ent(body))
    {
        failed_revive(id)
        return FMRES_IGNORED
    }
    
    new lucky_bastard = pev(body, pev_owner)
    if(!is_user_connected(lucky_bastard))
    {
        failed_revive(id)
        return FMRES_IGNORED
    }
    
    new lb_team = get_user_team(lucky_bastard)
    new rev_team = get_user_team(id)
    if(lb_team != 1 && lb_team != 2 || lb_team != rev_team)
    {
        failed_revive(id)
        return FMRES_IGNORED
    }
    
    static Float:velocity[3]
    pev(id, pev_velocity, velocity)
    velocity[0] = 0.0
    velocity[1] = 0.0
    set_pev(id, pev_velocity, velocity)
    
    new Float:gametime = get_gametime()
    if(g_revive_delay[id] < gametime)
    {
        if(findemptyloc(body, 10.0))
        {
            fm_remove_entity(body)
            emit_sound(id, CHAN_AUTO, SOUND_FINISHED, VOL_NORM, ATTN_NORM, 0, PITCH_NORM)
            set_task(0.1, "task_respawn", TASKID_RESPAWN + lucky_bastard)
        }
        else
             failed_revive(id)
    }
    else
        set_task(0.1, "task_revive", TASKID_REVIVE + id)
    
    return FMRES_IGNORED
}

public failed_revive(id)
{
    msg_bartime(id, 0)
    emit_sound(id, CHAN_AUTO, SOUND_FAILED, VOL_NORM, ATTN_NORM, 0, PITCH_NORM)
}

public task_origin(taskid)
{
    new id = taskid - TASKID_ORIGIN
    engfunc(EngFunc_SetOrigin, id, g_body_origin[id])
    
    static  Float:origin[3]
    pev(id, pev_origin, origin)
    set_pev(id, pev_zorigin, origin[2])
        
    set_task(0.1, "task_stuck_check", TASKID_CHECKST + id)
}

stock find_dead_body(id)
{
    static Float:origin[3]
    pev(id, pev_origin, origin)
    
    new ent
    static classname[32]    
    while((ent = fm_find_ent_in_sphere(ent, origin, get_pcvar_float(cvar_revival_dis))) != 0) 
    {
        pev(ent, pev_classname, classname, 31)
        if(equali(classname, "fake_corpse") && fm_is_ent_visible(id, ent))
            return ent
    }
    return 0
}

stock msg_bartime(id, seconds) 
{
    if(is_user_bot(id))
        return
    
    message_begin(MSG_ONE, g_msg_bartime, {0,0,0}, id)
    write_byte(seconds)
    write_byte(0)
    message_end()
}

stock msg_statusicon(id, status)
{
    if(is_user_bot(id))
        return
    
    message_begin(MSG_ONE, g_msg_statusicon, {0,0,0}, id)
    write_byte(status)
    write_string("rescue")
    write_byte(0)
    write_byte(160)
    write_byte(0)
    message_end()
}

 public task_respawn(taskid) 
 {
    new id = taskid - TASKID_RESPAWN
    
    set_pev(id, pev_deadflag, DEAD_RESPAWNABLE)
    dllfunc(DLLFunc_Spawn, id)
    set_pev(id, pev_iuser1, 0)
    
    set_task(0.1, "task_check_respawn", TASKID_CHECKRE + id)
}

public task_check_respawn(taskid)
{
    new id = taskid - TASKID_CHECKRE
    
    if(pev(id, pev_iuser1))
        set_task(0.1, "task_respawn", TASKID_RESPAWN + id)
    else
        set_task(0.1, "task_origin", TASKID_ORIGIN + id)
}
 
public task_stuck_check(taskid)
{
    new id = taskid - TASKID_CHECKST

    static Float:origin[3]
    pev(id, pev_origin, origin)
    
    if(origin[2] == pev(id, pev_zorigin))
        set_task(0.1, "task_respawn", TASKID_RESPAWN + id)
    else
        set_task(0.1, "task_setplayer", TASKID_SETUSER + id)
}

public task_setplayer(taskid)
{
    new id = taskid - TASKID_SETUSER
    
    fm_strip_user_weapons(id)
    fm_give_item(id, "weapon_knife")
    fm_set_user_health(id, get_pcvar_num(cvar_revival_health))
    
    message_begin(MSG_ONE,g_msg_screenfade, {0,0,0}, id)      
    write_short(seconds(2))
    write_short(seconds(2))   
    write_short(0)  
    write_byte(0)    
    write_byte(0)    
    write_byte(0)     
    write_byte(255)    
    message_end()
}


stock bool:findemptyloc(ent, Float:radius)
{
    if(!fm_is_valid_ent(ent))
        return false

    static Float:origin[3]
    pev(ent, pev_origin, origin)
    origin[2] += 2.0
    
    new owner = pev(ent, pev_owner)
    new num = 0, bool:found = false
    
    while(num <= 100)
    {
        if(is_hull_vacant(origin))
        {
            g_body_origin[owner][0] = origin[0]
            g_body_origin[owner][1] = origin[1]
            g_body_origin[owner][2] = origin[2]
            
            found = true
            break
        }
        else
        {
            origin[0] += random_float(-radius, radius)
            origin[1] += random_float(-radius, radius)
            origin[2] += random_float(-radius, radius)
            
            num++
        }
    }
    return found
}

stock bool:is_hull_vacant(const Float:origin[3])
{
    new tr = 0
    engfunc(EngFunc_TraceHull, origin, origin, 0, HULL_HUMAN, 0, tr)
    if(!get_tr2(tr, TR_StartSolid) && !get_tr2(tr, TR_AllSolid) && get_tr2(tr, TR_InOpen))
        return true
    
    return false
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1033\\ f0\\ fs16 \n\\ par }
*/
Attached Files
File Type: sma Get Plugin or Get Source (reviver.sma - 1268 views - 13.6 KB)

Last edited by padilha007; 07-27-2008 at 21:02.
padilha007 is offline
padilha007
Senior Member
Join Date: Jul 2008
Old 07-28-2008 , 15:16   Re: MSG_ONE or MSG_ONE_UNRELIABLE with no target entity - Help =/
Reply With Quote #2

nothing?
padilha007 is offline
Iwon
BANNED
Join Date: Jul 2008
Old 07-28-2008 , 15:56   Re: MSG_ONE or MSG_ONE_UNRELIABLE with no target entity - Help =/
Reply With Quote #3

local compile it or change
#include <fakemeta_util>
to
#include <fakemeta>
Iwon is offline
padilha007
Senior Member
Join Date: Jul 2008
Old 07-28-2008 , 16:47   Re: MSG_ONE or MSG_ONE_UNRELIABLE with no target entity - Help =/
Reply With Quote #4

i go 21 erros kkk
padilha007 is offline
Jon
Veteran Member
Join Date: Dec 2007
Old 07-28-2008 , 18:01   Re: MSG_ONE or MSG_ONE_UNRELIABLE with no target entity - Help =/
Reply With Quote #5

http://wiki.amxmodx.org/Half-Life_1_Game_Events#BarTime

BarTime is a short.
Jon is offline
padilha007
Senior Member
Join Date: Jul 2008
Old 07-28-2008 , 22:00   Re: MSG_ONE or MSG_ONE_UNRELIABLE with no target entity - Help =/
Reply With Quote #6

sry man i new in plugins, its a fix? =/

Edit:

I put 8 seconds in bar.

#define seconds(%1) ((1<<10) * (%1))

Last edited by padilha007; 07-28-2008 at 22:06.
padilha007 is offline
Sn!ff3r
Veteran Member
Join Date: Aug 2007
Location: Poland
Old 07-29-2008 , 09:03   Re: MSG_ONE or MSG_ONE_UNRELIABLE with no target entity - Help =/
Reply With Quote #7



Only click on "Get plugin", plugins compile successfully -.-
Sn!ff3r is offline
Send a message via Skype™ to Sn!ff3r
padilha007
Senior Member
Join Date: Jul 2008
Old 07-29-2008 , 13:24   Re: MSG_ONE or MSG_ONE_UNRELIABLE with no target entity - Help =/
Reply With Quote #8

yeah man but i get this error in game = )

this error:

MSG_ONE or MSG_ONE_UNRELIABLE with no target entity

Last edited by padilha007; 07-29-2008 at 13:44.
padilha007 is offline
Jon
Veteran Member
Join Date: Dec 2007
Old 07-29-2008 , 14:26   Re: MSG_ONE or MSG_ONE_UNRELIABLE with no target entity - Help =/
Reply With Quote #9

Quote:
Originally Posted by padilha007 View Post
sry man i new in plugins, its a fix? =/

Edit:

I put 8 seconds in bar.

#define seconds(%1) ((1<<10) * (%1))
You're writing a byte where you should be writing a short. There could be other errors in the code too, haven't looked closely through it.
Jon is offline
padilha007
Senior Member
Join Date: Jul 2008
Old 07-29-2008 , 14:32   Re: MSG_ONE or MSG_ONE_UNRELIABLE with no target entity - Help =/
Reply With Quote #10

you can make a quick look?

I think is:

public task_setplayer(taskid)
{
new id = taskid - TASKID_SETUSER

fm_strip_user_weapons(id)
fm_give_item(id, "weapon_knife")
fm_set_user_health(id, get_pcvar_num(cvar_revival_health))

message_begin( MSG_ONE, SVC_SCREENFADE, _, id )
write_short(seconds(2))
write_short(seconds(2))
write_short( SF_FADE_IN + SF_FADE_ONLYONE ) //flags
write_byte(0)
write_byte(0)
write_byte(0)
write_byte(200)
message_end()
}
padilha007 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 05:29.


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