[ZP] Ayuda Crear Efecto al disparar arma
#1
Llevo varios días intentando añadir el efecto de 2 sprites a una ak-47 con temp entity y no hay forma aver si podéis echarme un cable xd


e mirado varias guias y no hay forma xd
Responder
#2
Código PHP:
#include <amxmodx>
#include <hamsandwich>
#include <fakemeta>

new m_spriteTexture

public plugin_init() 
{
    
RegisterHam(Ham_TraceAttack"worldspawn""make_tracer"1)
}

public 
plugin_precache()
{
    
m_spriteTexture engfunc(EngFunc_PrecacheModel"sprites/laserbeam.spr")
}

public 
make_tracer(victimattackerFloat:damageFloat:direction[3], tracehandledamage_type)
{
    new 
color_rojo 255
    
new color_verde 0
    
new color_azul 255
    
    
    
if(get_user_weapon(attacker) == CSW_AK47
    {
        new 
Float:vecEndPos[3
        
get_tr2(tracehandleTR_vecEndPosvecEndPos
        
        
engfunc(EngFunc_MessageBeginMSG_PVSSVC_TEMPENTITYvecEndPos0
        
write_byte(TE_BEAMENTPOINT
        
write_short(attacker 0x1000
        
engfunc(EngFunc_WriteCoordvecEndPos[0]) // x 
        
engfunc(EngFunc_WriteCoordvecEndPos[1]) // x 
        
engfunc(EngFunc_WriteCoordvecEndPos[2]) // x 
        
write_short(m_spriteTexture
        
write_byte(0// framerate 
        
write_byte(0// framerate 
        
write_byte(1// framerate 
        
write_byte(10// framerate 
        
write_byte(0// framerate 
        
write_byte(color_rojo)
        
write_byte(color_verde)
        
write_byte(color_azul)
        
write_byte(128// brightness 
        
write_byte(0// brightness 
        
message_end() 
    }
    return 
HAM_HANDLED

Responder
#3
Gracias por ayudarme pero ese no es el efecto que busco exactamente xD no dispara el sprite que le ponga


estoy buscando hacer algo asi :

https://www.youtube.com/watch?v=x9xMkrHBNbU
Responder
#4
up help please sigo sin poder disparar los sprites xd
Responder
#5
https://amxmodx-es.com/Thread-Temp-Entit...piar-Pegar

Fijate si te sirve..

Responder
#6
lo e visto como 20 veces ese post de arriba y abajo y sigo sin hacerlo funcionar xd
Código:
#include <amxmodx>
#include <hamsandwich>
#include <fakemeta>
#include <zombieplague>

new sprite_nuevo  // la variable del sprite
  
  plugin_precache()
  {
  sprite_nuevo = precache_model("sprites/embeam.spr")
  }
  
  public fw_TakeDamage(victim, inflictor, attacker, Float:damage, damage_bits)
  {
              if(!is_user_connected(attacker) || !is_user_connected(victim) || zp_get_user_nemesis(victim) || attacker == victim || !attacker)  // los IF
                          return HAM_IGNORED
              
              if (g_variable[attacker] == CSW_AK47)
              {          
                          static Float nuevo_origin [3] // el float
                          pev(victim, pev_origin, nuevo_origin) // aca definimos el origin
  // code de damage
                          dead_efect(nuevo_origin)  // el efecto.
              }
  }
  
  dead_efect(const Float:nuevo_origin[3])
  {          
  new nuevo_origin[3]  // creando el nuevo origin
  get_user_origin(id, nuevo_origin, 4)  // puede ser 1,2,3,4.
  
  //aca el codigo de efecto,yo hare el anterior,te_explosion
  
          message_begin(MSG_BROADCAST, SVC_TEMPENTITY, nuevo_origin)
          write_byte(TE_EXPLOSION)    // TE_ Temp Entity
          write_coord(nuevo_origin[0]) //el origin
          write_coord(nuevo_origin[1]) //el origin
          write_coord(nuevo_origin[2]) //el origin
          write_short(sprite_nuevo)    //sprite index aca seria la explosion
          write_byte(60)     // no me acuerdo, message_const.inc
          write_byte(20)     // no me acuerdo, message_const.inc  
          write_byte(20)    // no me acuerdo, message_const.inc
          message_end()   // Terminando el mensage,osea efecto
  }




errores
Welcome to the AMX Mod X 1.8.1-300 Compiler.
Copyright © 1997-2013 ITB CompuPhase, AMX Mod X Team

Error: Undefined symbol "g_variable" on line 18
Warning: Expression has no effect on line 18
Error: Expected token: ";", but found "]" on line 18
Error: Invalid expression, assumed zero on line 18
Error: Too many error messages on one line on line 18

Compilation aborted.
4 Errors.
Could not locate output file C:\Users\acer\Desktop\rann.amx (compile failed).
Responder
#7
Como no va funcionar si no registras el ham de la funcion takedamage


a de mas no registras la variable
Responder
#8
¿Podrias echarme un cable? Estoy aprendiendo y bueno e intentado y no consigo



Error: Expected token: ";", but found "-identifier-" on line 28
Error: Undefined symbol "nuevo_origin" on line 28
Warning: Expression has no effect on line 28
Error: Expected token: ";", but found "]" on line 28
Error: Too many error messages on one line on line 28

static Float nuevo_origin [3] // el float


El error del ham ya esta arreglado

PD tras darle vueltas encontre el error:
RegisterHam(Ham_TakeDamage, "player", "fw_TakeDamage")

y ahora me da error esa linea
Responder
#9
que codigo tenes ? postealo para q te ayuden Whatever
Responder
#10
Código PHP:
#include <amxmodx>
#include <hamsandwich>
#include <fakemeta>
#include <zombieplague>

new sprite_nuevo  

new g_variable[33]

public 
mismuelas()
{
    
RegisterHam(Ham_TakeDamage"player""fw_TakeDamage")
}

  
  
plugin_precache()
  {
  
sprite_nuevo precache_model("sprites/embeam.spr")
  }
   
  public 
fw_TakeDamage(victiminflictorattackerFloat:damagedamage_bits)
  {
     if(!
is_user_connected(attacker) ||  !is_user_connected(victim) || zp_get_user_nemesis(victim) || attacker == victim || !attacker)  
     return 
HAM_IGNORED 
              
     
if (g_variable[victim] == CSW_AK47)
     {          
      static 
Float nuevo_origin [3
      
pev(victimpev_originnuevo_origin
      
dead_efect(nuevo_origin)              }
  }
   
  
dead_efect(const Float:nuevo_origin[3])
  {          
  new 
nuevo_origin[3]  // 
  
get_user_origin(idnuevo_origin4)  // 
   

   
          
message_begin(MSG_BROADCASTSVC_TEMPENTITYnuevo_origin)
          
write_byte(TE_EXPLOSION)    
          
write_coord(nuevo_origin[0]) 
          
write_coord(nuevo_origin[1]) 
          
write_coord(nuevo_origin[2]) 
          
write_short(sprite_nuevo)    
          
write_byte(60)     
          
write_byte(20)   
          
write_byte(20)    
          
message_end()   
  } 
Responder
#11
estoy por celu pero cambia

Código PHP:
static FLoat nuevo_origin [3

por
Código PHP:
static Floatnuevo_origin[3
Trolleyes
Responder
#12
Linea 30: dead_efect(nuevo_origin) }


Error: Expected token: ";", but found "}" on line 30





Linea 36: get_user_origin(id, nuevo_origin, 4)
Error: Undefined symbol "id" on line 36
Warning: Expression has no effect on line 36
Warning: Expression has no effect on line 36
Error: Expected token: ";", but found ")" on line 36
Error: Invalid expression, assumed zero on line 36
Error: Too many error messages on one line on line 36
Responder
#13
Código PHP:
new nuevo_origin[3]  // 
  
get_user_origin(idnuevo_origin4)  // 

Está de súper más... aparte que no tienes "id" en ningún lado, y el 4 no concuerda con que tengas nuevo_origin[3]. Y no es necesario obtener el origin de nuevo.

Linea 30: dead_efect(nuevo_origin) }
>>>>>>>>>>>>
Código PHP:
dead_efect(nuevo_origin)


[Imagen: 76561198099584158.png]
Java, Mysql, PHP, Python and more.
Responder
#14
Linea 30 : dead_efect(nuevo_origin)
Linea 33: dead_efect(const Float:nuevo_origin[3])

Error: Undefined symbol "dead_efect" on line 30
Warning: Loose indentation on line 33
Error: Undefined symbol "dead_efect" on line 33
Error: Invalid expression, assumed zero on line 33
Warning: Label name "Float" shadows tag name on line 33
Error: Undefined symbol "nuevo_origin" on line 33
Error: Too many error messages on one line on line 33


PD:TEMP ENTITY Se me hace cuesta arriba Triste

Gracias por la ayuda
Responder
#15
No se si ande :p

Código PHP:
#include <amxmodx>
#include <hamsandwich>
#include <fakemeta>
#include <zombieplague>

new sprite_nuevo  

new g_variable[33]

public 
plugin_init()
{
    
RegisterHam(Ham_TakeDamage"player""fw_TakeDamage")
}
public 
plugin_precache()
{
    
sprite_nuevo precache_model("sprites/embeam.spr")
}
public 
fw_TakeDamage(victiminflictorattackerFloat:damagedamage_bits)
{
    if(!
is_user_connected(attacker) ||  !is_user_connected(victim) || zp_get_user_nemesis(victim) || attacker == victim || !attacker)  
    return 
HAM_IGNORED 

    
if (g_variable[victim] == CSW_AK47)
    {          
        static 
nuevo_origin[3
        
pev(victimpev_originnuevo_origin
        
dead_efect(nuevo_origin)
    }
    return 
HAM_IGNORED;
}
dead_efect(nuevo_origin[3])
{
    
message_begin(MSG_BROADCASTSVC_TEMPENTITYnuevo_origin)
    
write_byte(TE_EXPLOSION)    
    
write_coord(nuevo_origin[0]) 
    
write_coord(nuevo_origin[1]) 
    
write_coord(nuevo_origin[2]) 
    
write_short(sprite_nuevo)    
    
write_byte(60)     
    
write_byte(20)   
    
write_byte(20)    
    
message_end()

Responder
#16
(14/06/2017, 08:04 PM)Kross escribió: No se si ande :p

Código PHP:
#include <amxmodx>
#include <hamsandwich>
#include <fakemeta>
#include <zombieplague>

new sprite_nuevo  

new g_variable[33]

public 
plugin_init()
{
    
RegisterHam(Ham_TakeDamage"player""fw_TakeDamage")
}
public 
plugin_precache()
{
    
sprite_nuevo precache_model("sprites/embeam.spr")
}
public 
fw_TakeDamage(victiminflictorattackerFloat:damagedamage_bits)
{
    if(!
is_user_connected(attacker) ||  !is_user_connected(victim) || zp_get_user_nemesis(victim) || attacker == victim || !attacker)  
    return 
HAM_IGNORED 

    
if (g_variable[victim] == CSW_AK47)
    {          
        static 
nuevo_origin[3
        
pev(victimpev_originnuevo_origin
        
dead_efect(nuevo_origin)
    }
    return 
HAM_IGNORED;
}
dead_efect(nuevo_origin[3])
{
    
message_begin(MSG_BROADCASTSVC_TEMPENTITYnuevo_origin)
    
write_byte(TE_EXPLOSION)    
    
write_coord(nuevo_origin[0]) 
    
write_coord(nuevo_origin[1]) 
    
write_coord(nuevo_origin[2]) 
    
write_short(sprite_nuevo)    
    
write_byte(60)     
    
write_byte(20)   
    
write_byte(20)    
    
message_end()


Pues e probado y no funciona xD
Responder
#17
prueba y lee lo que esta con //

Código PHP:
#include <amxmodx>
#include <fakemeta>
#include <hamsandwich>
#include <zombieplague>

new sprite_nuevog_variable[33]

public 
plugin_init() 
{
    
RegisterHam(Ham_TakeDamage"player""fw_TakeDamage")
}

public 
plugin_precache()
{
    
sprite_nuevo precache_model("sprites/embeam.spr")
}

public 
fw_TakeDamage(victiminflictorattackerFloat:damagedamage_bits)
{
    if(!
is_user_connected(attacker) || zp_get_user_nemesis(victim) || attacker == victim)  
        return

    if (
get_user_weapon(attacker) == CSW_AK47)
    {        
        if (
g_variable[attacker]) // esta variable la tienes que activar en algun lado. sino no funcionara el resto
        
{
            static 
Float:nuevo_origin[3
            
pev(victimpev_originnuevo_origin
            
dead_efect(nuevo_origin)  
        }
    }
}

dead_efect(const Float:vOrigin[3])
{          
    
engfunc(EngFunc_MessageBeginMSG_PVSSVC_TEMPENTITYvOrigin0)  
    
write_byte(TE_EXPLOSION)  
    
engfunc(EngFunc_WriteCoordvOrigin[0])  
    
engfunc(EngFunc_WriteCoordvOrigin[1])  
    
engfunc(EngFunc_WriteCoordvOrigin[2])  
    
write_short(sprite_nuevo)  
    
write_byte(60)  
    
write_byte(20)
    
write_byte(20)
    
message_end()   

√ [Aporte] Zombie Scenario
√ [Aporte] Call Of Duty

[Imagen: 76561198057099687.png]
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)