AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   Scripting Help (https://forums.alliedmods.net/forumdisplay.php?f=11)
-   -   [ZP] Help Unstuck , Reminder , GameMode menu (https://forums.alliedmods.net/showthread.php?t=229271)

serjaka 11-04-2013 11:02

[ZP] Help Unstuck , Reminder , GameMode menu
 
Hello Allied Modders, help me please to do some changes ! My English is bad but i will try to explain what i need!
I need to add at this plugin /unstuck command , i don't need auto unstuck and when player is not stuck print message: [ZP] You are not stucked! Something like that!!!
Code:

#include <amxmodx>
#include <fun>
#include <fakemeta>

new stuck[33]

new cvar[3]

new const Float:size[][3] = {
        {0.0, 0.0, 1.0}, {0.0, 0.0, -1.0}, {0.0, 1.0, 0.0}, {0.0, -1.0, 0.0}, {1.0, 0.0, 0.0}, {-1.0, 0.0, 0.0}, {-1.0, 1.0, 1.0}, {1.0, 1.0, 1.0}, {1.0, -1.0, 1.0}, {1.0, 1.0, -1.0}, {-1.0, -1.0, 1.0}, {1.0, -1.0, -1.0}, {-1.0, 1.0, -1.0}, {-1.0, -1.0, -1.0},
        {0.0, 0.0, 2.0}, {0.0, 0.0, -2.0}, {0.0, 2.0, 0.0}, {0.0, -2.0, 0.0}, {2.0, 0.0, 0.0}, {-2.0, 0.0, 0.0}, {-2.0, 2.0, 2.0}, {2.0, 2.0, 2.0}, {2.0, -2.0, 2.0}, {2.0, 2.0, -2.0}, {-2.0, -2.0, 2.0}, {2.0, -2.0, -2.0}, {-2.0, 2.0, -2.0}, {-2.0, -2.0, -2.0},
        {0.0, 0.0, 3.0}, {0.0, 0.0, -3.0}, {0.0, 3.0, 0.0}, {0.0, -3.0, 0.0}, {3.0, 0.0, 0.0}, {-3.0, 0.0, 0.0}, {-3.0, 3.0, 3.0}, {3.0, 3.0, 3.0}, {3.0, -3.0, 3.0}, {3.0, 3.0, -3.0}, {-3.0, -3.0, 3.0}, {3.0, -3.0, -3.0}, {-3.0, 3.0, -3.0}, {-3.0, -3.0, -3.0},
        {0.0, 0.0, 4.0}, {0.0, 0.0, -4.0}, {0.0, 4.0, 0.0}, {0.0, -4.0, 0.0}, {4.0, 0.0, 0.0}, {-4.0, 0.0, 0.0}, {-4.0, 4.0, 4.0}, {4.0, 4.0, 4.0}, {4.0, -4.0, 4.0}, {4.0, 4.0, -4.0}, {-4.0, -4.0, 4.0}, {4.0, -4.0, -4.0}, {-4.0, 4.0, -4.0}, {-4.0, -4.0, -4.0},
        {0.0, 0.0, 5.0}, {0.0, 0.0, -5.0}, {0.0, 5.0, 0.0}, {0.0, -5.0, 0.0}, {5.0, 0.0, 0.0}, {-5.0, 0.0, 0.0}, {-5.0, 5.0, 5.0}, {5.0, 5.0, 5.0}, {5.0, -5.0, 5.0}, {5.0, 5.0, -5.0}, {-5.0, -5.0, 5.0}, {5.0, -5.0, -5.0}, {-5.0, 5.0, -5.0}, {-5.0, -5.0, -5.0}
}

public plugin_init() {
        register_plugin("Automatic Unstuck","1.5","NL)Ramon(NL")
        cvar[0] = register_cvar("amx_autounstuck","1")
        cvar[1] = register_cvar("amx_autounstuckeffects","1")
        cvar[2] = register_cvar("amx_autounstuckwait","7")
        set_task(0.1,"checkstuck",0,"",0,"b")
}

public checkstuck() {
        if(get_pcvar_num(cvar[0]) >= 1) {
                static players[32], pnum, player
                get_players(players, pnum)
                static Float:origin[3]
                static Float:mins[3], hull
                static Float:vec[3]
                static o,i
                for(i=0; i<pnum; i++){
                        player = players[i]
                        if (is_user_connected(player) && is_user_alive(player)) {
                                pev(player, pev_origin, origin)
                                hull = pev(player, pev_flags) & FL_DUCKING ? HULL_HEAD : HULL_HUMAN
                                if (!is_hull_vacant(origin, hull,player) && !get_user_noclip(player) && !(pev(player,pev_solid) & SOLID_NOT)) {
                                        ++stuck[player]
                                        if(stuck[player] >= get_pcvar_num(cvar[2])) {
                                                pev(player, pev_mins, mins)
                                                vec[2] = origin[2]
                                                for (o=0; o < sizeof size; ++o) {
                                                        vec[0] = origin[0] - mins[0] * size[o][0]
                                                        vec[1] = origin[1] - mins[1] * size[o][1]
                                                        vec[2] = origin[2] - mins[2] * size[o][2]
                                                        if (is_hull_vacant(vec, hull,player)) {
                                                                engfunc(EngFunc_SetOrigin, player, vec)
                                                                effects(player)
                                                                set_pev(player,pev_velocity,{0.0,0.0,0.0})
                                                                o = sizeof size
                                                        }
                                                }
                                        }
                                }
                                else
                                {
                                        stuck[player] = 0
                                }
                        }
                }
        }
}

stock bool:is_hull_vacant(const Float:origin[3], hull,id) {
        static tr
        engfunc(EngFunc_TraceHull, origin, origin, 0, hull, id, tr)
        if (!get_tr2(tr, TR_StartSolid) || !get_tr2(tr, TR_AllSolid)) //get_tr2(tr, TR_InOpen))
                return true
       
        return false
}

public effects(id) {
        if(get_pcvar_num(cvar[1])) {
                set_hudmessage(255,150,50, -1.0, 0.65, 0, 6.0, 1.5,0.1,0.7) // HUDMESSAGE
                show_hudmessage(id,"You should be unstucked now!") // HUDMESSAGE
                message_begin(MSG_ONE_UNRELIABLE,105,{0,0,0},id )     
                write_short(1<<10)  // fade lasts this long duration
                write_short(1<<10)  // fade lasts this long hold time
                write_short(1<<1)  // fade type (in / out)
                write_byte(20)            // fade red
                write_byte(255)    // fade green
                write_byte(255)        // fade blue
                write_byte(255)    // fade alpha
                message_end()
                client_cmd(id,"spk fvox/blip.wav")
        }
}

2.Help please to do like this plugin reminder: Nemesis Health Reminder
SCREEN:
http://s002.radikal.ru/i197/1311/74/5d5169a1b1b8.jpg

3.And can i add Custom Game Modes to ZP 4.3 from ZPA 1.6.1??? Help me pelase !!! THX!!!

rayyanmalik 11-12-2013 00:29

Re: [ZP] Help Unstuck , Reminder , GameMode menu
 
Code:

#include <amxmodx>
#include <hamsandwich>
#include <colorchat>
#include <zombie_plague_advance>

#define PLUGIN_NAME "[ZP] Nemesis Health"
#define PLUGIN_VERS "1.0"
#define PLUGIN_AUTH "hi!"

#define TASK_HEALTH 1234554321


public plugin_init()
{
        register_plugin(PLUGIN_NAME, PLUGIN_VERS, PLUGIN_AUTH)

        // Fwd's
        RegisterHam(Ham_Spawn, "player", "Fwd_PlayerSpawn_Post", 1)
        RegisterHam(Ham_Killed, "player", "Fwd_PlayerKilled_Pre", 0)
}

public Fwd_PlayerSpawn_Post(id)
{
        if (task_exists(id+TASK_HEALTH))
                remove_task(id+TASK_HEALTH)
}

public Fwd_PlayerKilled_Pre(victim, attacker, shouldgib)
{
        if (task_exists(victim+TASK_HEALTH))
                remove_task(victim+TASK_HEALTH)
}

public zp_round_started(mode, id)
{
        if (mode != MODE_NEMESIS)
                return
               
        if (!zp_get_user_nemesis(id))
                return
               
        set_task(34.0, "Task_ShowHealth", id+TASK_HEALTH, _, _, "b")

}

public Task_ShowHealth(id)
{
        id -= TASK_HEALTH
       
        if (!zp_get_user_nemesis(id))
                remove_task(id+TASK_HEALTH)
       
        ColorChat(0, GREY, "^x04[ZP]^x01 A ^x03Rapture^x01 Reminder ^x03@^x01 ^x04Nemesis^x01 still has %d ^x04health points!^x01", get_user_health(id))

}



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

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