Freeze zombies in ZP 5.0 [HELP]
#1
Hola, ¿cómo puedo congelar todos los zombis seleccionados después de la cuenta regresiva? justo después de contar dónde se seleccionó el modo de juego
Responder
#2
https://forums.alliedmods.net/showpost.p...ostcount=4
Responder
#3
Pero, dónde están los zombis involucrados en esto?
Responder
#4
(17/08/2022, 03:48 PM)felipecccc7 escribió: Pero, dónde están los zombis involucrados en esto?

Pero, cuando posteaste en pedido de plugins?
[Imagen: zcsztw-4.png] [Imagen: 6u5fj2-4.png]
[Imagen: linkedin_thumb_image.png][Imagen: 76561198283253977.png][Imagen: linkedin_thumb_image.png]
Responder
#5
Metí la pata, bueno, básicamente aquí está la cosa. Tengo un código de ZP 4.3 con la solicitud de "después de que termine la cuenta regresiva", todos los zombis se congelarán durante 4 segundos. Intenté recrear a ZP 5.0 y obtuve muchos errores.

public zp_round_started(gamemode, id)
{
new players[32], count
get_players(players, count, "ah")

for (new i, player; i < count; i++)
{
player = players[i]

if (g_zombie[player])
{
freeze_player(player)
}
}
}

freeze_player(victim)
{
if (g_frozen[victim])
{
return
}

// Freeze icon?
if (get_pcvar_num(cvar_hudicons))
{
message_begin(MSG_ONE_UNRELIABLE, g_msgDamage, _, victim)
write_byte(0) // damage save
write_byte(0) // damage take
write_long(DMG_DROWN) // damage type - DMG_FREEZE
write_coord(0) // x
write_coord(0) // y
write_coord(0) // z
message_end()
}

// Light blue glow while frozen
if (g_handle_models_on_separate_ent)
fm_set_rendering(g_ent_playermodel[victim], kRenderFxGlowShell, 0, 100, 200, kRenderNormal, 25)
else
fm_set_rendering(victim, kRenderFxGlowShell, 0, 100, 200, kRenderNormal, 25)

new sound[64]
// Freeze sound
ArrayGetString(grenade_frost_player, random_num(0, ArraySize(grenade_frost_player) - 1), sound, charsmax(sound))
emit_sound(victim, CHAN_BODY, sound, 1.0, ATTN_NORM, 0, PITCH_NORM)

// Add a blue tint to their screen
message_begin(MSG_ONE, g_msgScreenFade, _, victim)
write_short(0) // duration
write_short(0) // hold time
write_short(FFADE_STAYOUT) // fade type
write_byte(0) // red
write_byte(50) // green
write_byte(200) // blue
write_byte(100) // alpha
message_end()

// Set the frozen flag
g_frozen[victim] = true

// Save player's old gravity (bugfix)
pev(victim, pev_gravity, g_frozen_gravity[victim])

// Prevent from jumping
if (pev(victim, pev_flags) & FL_ONGROUND)
set_pev(victim, pev_gravity, 999999.9) // set really high
else
set_pev(victim, pev_gravity, 0.000001) // no gravity

// Prevent from moving
ExecuteHamB(Ham_Player_ResetMaxSpeed, victim)

// Set a task to remove the freeze
set_task(5.0, "remove_freeze", victim)
}
Responder
#6
Explicación breve para que te guies, buscas el make_a_zombie (creo que así era), si no sabes donde queda puedes buscar por ejemplo el hud de inicio de modo, ahí ves tu.

Agregas al final del plugin
Código PHP:
set_user_frozenidbool:bFrozen ) {

    if( 
bFrozen 
    
set_pevidpev_flagspevidpev_flags ) | FL_FROZEN ) ;

    
set_pevidpev_flagspevidpev_flags ) & ~ FL_FROZEN ) ;


Vas a donde te dije y en la funcion del g_maxplayers (donde le deberia de llegar a todos) escribes esto:
Código PHP:
set_user_frozenidtrue 
set_task(1.0"countdown_freeze"TASK_COUNTDOWNFREEZE__"b"//ojo que debes añadir este TASK para que no te aparezca que no existe. 

agregas despues de esa funcion:

Código PHP:
public countdown_freeze()
{
    new 
g_iCount
    g_iCount
++

    if(
g_iCount == 5) {
       
//agregas la funcion del g_maxplayers y despues agregas;
       
set_user_frozenidfalse )
       
g_iCount 0
       remove_task
(TASK_COUNTDOWNFREEZE)
    }


Te recomiendo en la funcion del g_icount == 5 hacer un else para ahcer q todos los players q seleccionaste queden freezeados (en caso de que entren jugadores no se, ahi ves tu.

//lo escribi al pedo no ando con editor aqui


Nota: Postea el codigo en php para que se te pueda entender pq asi es un dolor de webas leer asdadsa
Responder
#7
ZP 5.0 es diferente de ZP 4.3, tiene varios .sma este código que puse arriba podría poner directamente en zombie_plague40 (porque está todo en 1 solamente) lo que necesito es: dónde por el código, cómo cambiarlo correctamente usando los nativos de zp 5.0
Responder
#8
Alguieeen?
Responder
#9
Cuando pides un plugin ya hecho la seccion es pedido de plugins, aqui solo es para echarte una mano con algun codigo que tengas dificultades

Código PHP:
#include <amxmodx>
#include <zp50_gamemodes>
#include <zp50_grenade_frost>


public plugin_init()
    
register_plugin("ZP50 Frost Zombies on Start""0.1""kikizon.net");

public 
zp_fw_gamemodes_start(game_mode_id)
{
    static 
iMaxPlayersi;
    
iMaxPlayers get_maxplayers();

    for(
1<= iMaxPlayers; ++i)
    {
        if(
is_user_alive(i) && zp_core_is_zombie(i))
            
zp_grenade_frost_set(i);
    }

[Imagen: bvpq9q-6.png]

NO DOY AYUDA VIA MENSAJE PRIVADO

* Si requieres algún servicio de pago puedes contactarme vía MP o en mi facebook
Responder
#10
Entiendo

Este código no funcionó
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)