Raised This Month: $32 Target: $400
 8% 

[ES][TUT] C4 Scripting


  
 
 
Thread Tools Display Modes
Author Message
Javivi
AlliedModders Donor
Join Date: Dec 2008
Old 11-28-2009 , 14:39   [ES][TUT] C4 Scripting
#1

TRADUCCIÓN DE ESTE INTERESANTE POST DE VEN :
http://forums.alliedmods.net/showthread.php?t=40164


Requisitos
Debes estar familiarizado con lo basico del scripting. Las funciones de Fakemeta Utilities son usadas aqui. Para obtener la id del jugador (solo dentro de "logevent_function_p") debes usar:

PHP Code:
stock get_loguser_index() 
{
    new 
loguser[80], name[32]
    
read_logargv(0loguser79)
    
parse_loguser(logusername31)
 
    return 
get_user_index(name)

Ejemplo
PHP Code:
public logevent_function_p() 
{
    new 
id get_loguser_index()
    
// ...

1. Jugador/C4
PHP Code:
// Esta la bomba tirada/siendo llevada?
    
if (fm_find_ent_by_class(-1"weapon_c4"))
 
// Esta en el suelo?
    
new bomb fm_find_ent_by_class(-1"weapon_c4")
    if (
bomb && pev(bombpev_owner) > get_maxplayers())
 
// La bomba esta siendo llevada/quien la lleva?
    
new carrier 0ownerentbomb fm_find_ent_by_class(-1"weapon_c4")
    if (
bomb && (ownerent pev(bombpev_owner)) <= get_maxplayers())
        
carrier ownerent
    
if (carrier// tenemos al portador
    
else // no lo tenemos
 
// El jugador elegido tiene la bomba?
    
if (user_has_weapon(idCSW_C4)) // metodo #1
    
if (pev(idpev_weapons) & (1<<CSW_C4)) // metodo #2
    
if (fm_find_ent_by_owner(-1"weapon_c4"id)) // metodo #3
 
// Como transferimos la bomba de un jugador a otro?
    
fm_transfer_user_gun(carrierrecipientCSW_C4// devuelve true si tiene exito
 
// Como forzamos a un jugador a tirar la bomba?
    
engclient_cmd(id"drop""weapon_c4")
 
// Como eliminamos la bomba dropeada??
    
new weapboxbomb fm_find_ent_by_class(-1"weapon_c4")
    if (
bomb && (weapbox pev(bombpev_owner)) > get_maxplayers()) {
        
dllfunc(DLLFunc_Thinkweapbox// eliminara el weaponbox + la entidad weapon_c4 
        // elimina la marca roja de la bomba en el radar
        
message_begin(MSG_ALLget_user_msgid("BombPickup"))
        
message_end()
    }
 
// Como damos la bomba a alguien?
    
fm_give_item(id"weapon_c4")
    
// utiliza cs_set_user_plant(id) para permitirle plantar la bomba
 
// Como stripeamos/eliminamos la bomba de un jugador?
    
engclient_cmd(id"weapon_c4")
    
cs_set_user_bpammo(idCSW_C40)
    
engclient_cmd(id"lastinv")
    
// remove bomb hud icon
    
message_begin(MSG_ONEget_user_msgid("StatusIcon"), _id)
    
write_byte(0)
    
write_string("c4")
    
message_end()
 
// Esta la bomba plantada/como la eliminamos?
    
new bomb
    
if ((bomb fm_find_ent_by_model(-1"grenade""models/w_c4.mdl"))) {
        
// la bomba esta plantada
        
fm_remove_entity(bomb// elimina la bomba plantada
    

2. Tirarla/Cogerla
PHP Code:
// Evento. El jugador spawnea con la bomba
    
register_logevent("logevent_function_p"3"2=Spawned_With_The_Bomb")
 
// Evento. Bomba dropeada (incluyendo por conexion/desconexion)
    
register_logevent("logevent_function_p"3"2=Dropped_The_Bomb")
    
// use is_user_alive/is_user_connected to check for disconnect/death
 
// Evento. Bomba recogida (excepto en el spawn)
    
register_logevent("logevent_function_p"3"2=Got_The_Bomb")
 
// Evento. Recibiste una bomba (incluyendo spawn/give_item)
    
register_event("WeapPickup""event_function""be""1=6"
3. Plantar/Defusar
PHP Code:
// Empezando a plantar la bomba
    
register_event("BarTime""event_function""be""1=3")
 
// Bomba plantada
    
register_logevent("logevent_function_p"3"2=Planted_The_Bomb")
 
// Comenzando a desactivar la bomba
    
register_event("BarTime""event_function""be""1=5""1=10")
 
// Comenzando a desactivar la bomba (sin defuse kit)
    
register_logevent("logevent_function_p"3"2=Begin_Bomb_Defuse_Without_Kit")
 
// Comenzando a desactivar la bomba (con defuse kit)
    
register_logevent("logevent_function_p"3"2=Begin_Bomb_Defuse_With_Kit")
 
// Bomba desactivada
    
register_logevent("logevent_function_p"3"2=Defused_The_Bomb")
 
// Interrumpir el plantado/defusado
    
register_event("BarTime""event_function""b""1=0")
    
// debes asegurarte de que se esta plantando/defusando!
 
// Evento. Objetivo asegurado
    
register_logevent("logevent_function"6"3=Target_Saved"
4. Explosion
PHP Code:
// Objetivo bombeado (antes de que acabe la ronda)
    
register_logevent("logevent_function"6"3=Target_Bombed")
 
// Objetivo bombeado (antes/despues del final de la ronda) (descubierto por Ryan)
    
register_event("23""event_function""a""1=17""6=-105""7=17")
 
// Un jugador muere por la explosion de la bomba (forward) (descubierto por Brad/VEN)
    // no va a funcionar si el jugador es matado por la entidad env_explosion que es desencadenada por la explosion
    
public client_death(killervictimwpnindexhitplaceTK) {
        if (
wpnindex == CSW_C4)
    } 
5. Objetivos
PHP Code:
// Esta en el lugar de plantar (func_bomb_target)?
    // Nota: no hay mejor manera de detectarlo
    
new target = -1, class[] = "func_bomb_target"bool:is_inside false
    
while ((target fm_find_ent_by_class(target, class))) {
        if (!
fm_boxents_distance(indextarget)) {
            
is_inside true
            
break
        }
    }
    if (
is_inside)
 
// Tiene el mapa objetivos a bombear?
    
if (fm_find_ent_by_class(-1"func_bomb_target") || fm_find_ent_by_class(-1"info_bomb_target"))
 
// Como eliminamos los objetivos a bombear?
    
new target = -1classname[] = "func_bomb_target"
    
while ((target fm_find_ent_by_class(targetclassname)))
        
fm_remove_entity(target)
    
classname "info_bomb_target"
    
while ((target fm_find_ent_by_class(targetclassname)))
        
fm_remove_entity(target

Saludos,


Javivi.
__________________
Javivi is offline
fireattack
Senior Member
Join Date: Jul 2008
Old 08-31-2010 , 08:56   Re: [ES][TUT] C4 Scripting
#2

PHP Code:
// Evento. Objetivo asegurado 
    
register_logevent("logevent_function"6"3=Target_Saved"
No entiendo este evento.
fireattack is offline
S34Qu4K3
Veteran Member
Join Date: Jan 2010
Location: Galicia
Old 08-31-2010 , 09:34   Re: [ES][TUT] C4 Scripting
#3

Cuando defuseas la bomba
__________________

- ASM2SMA: Experimental AMXX Assembly encoder

- Defuse Bar Fix

Quote:
Originally Posted by Arkshine
I DON'T WANT TO SEE NOOOOOOOOOOOOOOO AHHHHH. MY EYES ARE ALREADY HURT.
S34Qu4K3 is offline
marianow
Senior Member
Join Date: Sep 2009
Location: in your mom pussy
Old 08-31-2010 , 10:14   Re: [ES][TUT] C4 Scripting
#4

Quote:
Originally Posted by S34Qu4K3 View Post
Cuando defuseas la bomba
o salvas al VIP,
marianow is offline
 


Thread Tools
Display Modes

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 14:12.


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