Mensajes: 37
Temas: 8
Registro en: Jan 2020
Reputación:
0
07/02/2020, 04:07 AM
(Última modificación: 09/02/2020, 02:56 PM por TuboRojo :v . Edited 4 times in total.)
Alguien seria tan amable de hacerme un extra item de la escopeta xm1014 con knockback/retroceso es decir, cuando le dispare a un zombie este lo empuje un poco (no mucho) o pongan en el code la cvar para configurarle el empuje a mi gusto.
Espero no sea mucha molestia y gracias
.
EDIT; se me olvido decir que tambien se le pueda cambiar el model v_, p_ y w_ y que haga daño x4
Mensajes: 3,020
Temas: 49
Registro en: Oct 2013
Reputación:
33
y yo quiero una novia
Ingeniero agrónomo y desarrollador de Software.
tutoriales-allied
buscas un zp?
"La imitación es la forma más sincera de admiración con la que puede pagar la mediocridad a la grandeza"
Merci Alliedmodders pour m'introduire dans la programmation.
Mensajes: 3,238
Temas: 47
Registro en: Feb 2015
Reputación:
34
(07/02/2020, 01:10 PM) roccoxx escribió: y yo quiero una novia
Mensajes: 7,178
Temas: 93
Registro en: Aug 2014
Reputación:
63
(07/02/2020, 01:58 PM) Skylar escribió: (07/02/2020, 01:10 PM) roccoxx escribió: y yo quiero una novia
Mensajes: 37
Temas: 8
Registro en: Jan 2020
Reputación:
0
No comenten si no quieren ps
.
Mensajes: 369
Temas: 64
Registro en: Feb 2017
Reputación:
2
Que versión del zp tienes?
Se me ocurre es dejar unas natives en el código para ver y setear el knockback desde otro plugin...
Mensajes: 37
Temas: 8
Registro en: Jan 2020
Reputación:
0
(08/02/2020, 03:28 PM) luxor xD escribió: Que versión del zp tienes?
Se me ocurre es dejar unas natives en el código para ver y setear el knockback desde otro plugin...
Zombie Plague 4.3 Fix5a
Mensajes: 369
Temas: 64
Registro en: Feb 2017
Reputación:
2
Primero necesitas editar el script del zombie plague.
una vez lo tengas abierto busca la funcion plugin_natives().
y pega estos dos registros.
Código PHP:
register_native ( "zp_get_user_knockback" , "native_get_user_knockback" , 1 ) register_native ( "zp_set_user_knockback" , "native_set_user_knockback" , 1 )
te quedara algo asi.
Código PHP:
public plugin_natives () { // Custom natives register_native ( "zp_get_user_knockback" , "native_get_user_knockback" , 1 ) register_native ( "zp_set_user_knockback" , "native_set_user_knockback" , 1 ) ...}
y luego al final del script puedes pegar estas funciones.
Código PHP:
// Native: zp_get_user_knockback public Float : native_get_user_knockback ( id ) { if (! is_user_valid ( id )) { log_error ( AMX_ERR_NATIVE , "[ZP] Invalid Player (%d)" , id ) return - 1.0 ; } return g_zombie_knockback [ id ]; } // Native: zp_set_user_knockback public native_set_user_knockback ( id , Float : valor ) { if (! is_user_valid ( id )) { log_error ( AMX_ERR_NATIVE , "[ZP] Invalid Player (%d)" , id ) return false ; } g_zombie_knockback [ id ] = valor ; return true ; }
y ya puedes compilar el script, ahora te toca abrir el include del zombie plague y pegar estas funciones que son las que necesitas para el extra item.
Código PHP:
native Float : zp_get_user_knockback ( id ) native zp_set_user_knockback ( id , Float : valor )
y ya con eso deberia poder usar tu item con mayor empuje, al igual que puedes agregarle empuje a otros items.
PD: No es la mejor forma para hacerlo pero es un avance espero que te ayude.
Descargar AMXX /
extra item xm1014.sma (Tamaño: 6.83 KB / Descargas: 5)
Mensajes: 37
Temas: 8
Registro en: Jan 2020
Reputación:
0
(08/02/2020, 07:57 PM) luxor xD escribió: Primero necesitas editar el script del zombie plague.
una vez lo tengas abierto busca la funcion plugin_natives().
y pega estos dos registros.
Código PHP:
register_native ( "zp_get_user_knockback" , "native_get_user_knockback" , 1 ) register_native ( "zp_set_user_knockback" , "native_set_user_knockback" , 1 )
te quedara algo asi.
Código PHP:
public plugin_natives () { // Custom natives register_native ( "zp_get_user_knockback" , "native_get_user_knockback" , 1 ) register_native ( "zp_set_user_knockback" , "native_set_user_knockback" , 1 ) ...}
y luego al final del script puedes pegar estas funciones.
Código PHP:
// Native: zp_get_user_knockback public Float : native_get_user_knockback ( id ) { if (! is_user_valid ( id )) { log_error ( AMX_ERR_NATIVE , "[ZP] Invalid Player (%d)" , id ) return - 1.0 ; } return g_zombie_knockback [ id ]; } // Native: zp_set_user_knockback public native_set_user_knockback ( id , Float : valor ) { if (! is_user_valid ( id )) { log_error ( AMX_ERR_NATIVE , "[ZP] Invalid Player (%d)" , id ) return false ; } g_zombie_knockback [ id ] = valor ; return true ; }
y ya puedes compilar el script, ahora te toca abrir el include del zombie plague y pegar estas funciones que son las que necesitas para el extra item.
Código PHP:
native Float : zp_get_user_knockback ( id ) native zp_set_user_knockback ( id , Float : valor )
y ya con eso deberia poder usar tu item con mayor empuje, al igual que puedes agregarle empuje a otros items.
PD: No es la mejor forma para hacerlo pero es un avance espero que te ayude.
Al compilar tu extra item me tira 1 error.
Código:
//// extra item xm1014.sma
// C:\hlserver\cstrike\addons\amxmodx\scripting\extra item xm1014.sma(69) : error 088: number of arguments does not match definition
//
// 1 Error.
// Could not locate output file C:\hlserver\cstrike\addons\amxmodx\scripting\compiled\extra item xm1014.amx (compile failed).
//
// Compilation Time: 0.34 sec
// ----------------------------------------
así fue como lo modifique, no toque nada más que los models del arma.
Código PHP:
#include <amxmodx> #include <engine> #include <fakemeta> #include <fakemeta_util> #include <fun> #include <hamsandwich> #include <cstrike> #include <zombieplague> #define is_valid_player(%1) (1 <= %1 <= 32) #define ENG_NULLENT -1 #define EV_INT_WEAPONKEY EV_INT_impulse #define ITEM_WEAPONKEY 351 #define MSG_BROADCAST 0 // Unreliable to all #define SVC_TEMPENTITY 23 // Var's new g_itemid new const g_ItemEnt [] = "weapon_xm1014" const Wep_ItemS = (( 1 << CSW_XM1014 )) const CSW_ITEM = CSW_XM1014 // Item ID new Float : knockback_Org [ 32 ] new bool : g_HasItem [ 33 ] new ent [ 33 ] new bullets [ 33 ] // Models new V_MODEL [ 64 ] = "models/ze_armas_especiales/v_balrog11.mdl" new P_MODEL [ 64 ] = "models/ze_armas_especiales/p_balrog11.mdl" new W_MODEL [ 64 ] = "models/ze_armas_especiales/w_balrog11.mdl" /* Pcvars */ new cvar_custommodel , cvar_uclip // Const const Float : ataque = 1.2 const Float : empuje = 999.999 // color del glow const glowR = 100 const glowG = 255 const glowB = 255 public plugin_init () { /* CVARS */ cvar_custommodel = register_cvar ( "za_ITEM_custom_model" , "1" ) cvar_uclip = register_cvar ( "za_ITEM_unlimited_clip" , "1" ) register_event ( "DeathMsg" , "Death" , "a" ) register_event ( "WeapPickup" , "checkModel" , "b" , "1=19" ) register_event ( "CurWeapon" , "checkWeapon" , "be" , "1=1" ) register_forward ( FM_CmdStart , "fw_CmdStart" ) register_forward ( FM_SetModel , "fw_SetModel" ) RegisterHam ( Ham_TakeDamage , "player" , "fw_TakeDamage" ) RegisterHam ( Ham_TakeDamage , "player" , "fw_TakeDamage_Post" , 1 ) RegisterHam ( Ham_Spawn , "player" , "fwHamPlayerSpawnPost" , 1 ) RegisterHam ( Ham_Item_AddToPlayer , g_ItemEnt , "fw_ItemAddToPlayer" ) g_itemid = zp_register_extra_item ( "arma" , 0 , 0 , ZP_TEAM_HUMAN ) // g_itemid = zp_register_extra_item("arma", 0, ZP_TEAM_HUMAN) } public client_connect ( id ) { g_HasItem [ id ] = false fm_remove_model_ents ( id ) } public client_disconnect ( id ) { g_HasItem [ id ] = false fm_remove_model_ents ( id ) } public Death () { g_HasItem [ read_data ( 2 )] = false fm_remove_model_ents ( read_data ( 2 )) } public fwHamPlayerSpawnPost ( id ) { g_HasItem [ id ] = false fm_remove_model_ents ( id ) } public plugin_precache () { precache_model ( V_MODEL ) precache_model ( P_MODEL ) precache_model ( W_MODEL ) } public zp_user_infected_post ( id ) { if ( zp_get_user_zombie ( id )) { g_HasItem [ id ] = false fm_remove_model_ents ( id ) } } public zp_user_humanized_post ( id ) { g_HasItem [ id ] = false fm_remove_model_ents ( id ) } public checkModel ( id ) { if ( zp_get_user_zombie ( id ) ) return PLUGIN_HANDLED new szWeapID = read_data ( 2 ) if ( szWeapID == CSW_ITEM && g_HasItem [ id ] == true && get_pcvar_num ( cvar_custommodel )) { set_pev ( id , pev_viewmodel2 , V_MODEL ) set_pev ( id , pev_weaponmodel2 , P_MODEL ) fm_set_weaponmodel_ent ( id , glowR , glowG , glowB ) } return PLUGIN_HANDLED } public checkWeapon ( id ) { new plrClip , plrAmmo , plrWeap [ 32 ] new plrWeapId new clip plrWeapId = get_user_weapon ( id , plrClip , plrAmmo ) if ( plrWeapId == CSW_ITEM && g_HasItem [ id ]) { checkModel ( id ) } else { fm_remove_model_ents ( id ) return PLUGIN_CONTINUE } if ( bullets [ id ] >= clip && get_pcvar_num ( cvar_uclip )) { get_weaponname ( plrWeapId , plrWeap , 31 ) give_item ( id , plrWeap ) engclient_cmd ( id , plrWeap ) engclient_cmd ( id , plrWeap ) engclient_cmd ( id , plrWeap ) } return PLUGIN_HANDLED } public fw_TakeDamage_Post ( victim , attacker ) { if(! is_valid_player ( attacker )) return if(!( get_user_weapon ( attacker ) == CSW_ITEM && g_HasItem [ attacker ])) return knockback_Org [ victim ] = zp_get_user_knockback ( victim ) zp_set_user_knockback ( victim , empuje ) } public fw_TakeDamage ( victim , inflictor , attacker , Float : damage ) { if( is_valid_player ( attacker ) && get_user_weapon ( attacker ) == CSW_ITEM && g_HasItem [ attacker ]) SetHamParamFloat ( 4 , damage * ataque ) if(! is_valid_player ( victim ) ) return zp_set_user_knockback ( victim , knockback_Org [ victim ]) } // #/////~$L%ux%or xD%_="······ªª¡?// public zp_extra_item_selected ( player , itemid ) { if ( itemid == g_itemid ) { if ( user_has_weapon ( player , CSW_ITEM ) ) { drop_item ( player ) } give_item ( player , g_ItemEnt ) g_HasItem [ player ] = true ; } } stock drop_item ( id ) { new weapons [ 32 ], num get_user_weapons ( id , weapons , num ) for (new i = 0 ; i < num ; i ++) { if ( Wep_ItemS & ( 1 << weapons [ i ])) { static wname [ 32 ] get_weaponname ( weapons [ i ], wname , sizeof wname - 1 ) engclient_cmd ( id , "drop" , wname ) } } } public fw_SetModel ( entity , model []) { if(! is_valid_ent ( entity )) return FMRES_IGNORED ; if(! equal ( model , "models/w_xm1014.mdl" )) return FMRES_IGNORED ; static szClassName [ 33 ] entity_get_string ( entity , EV_SZ_classname , szClassName , charsmax ( szClassName )) if(! equal ( szClassName , "weaponbox" )) return FMRES_IGNORED static iOwner , iStoredItemID iOwner = entity_get_edict ( entity , EV_ENT_owner ) iStoredItemID = find_ent_by_owner ( ENG_NULLENT , "weapon_xm1014" , entity ) if( g_HasItem [ iOwner ] && is_valid_ent ( iStoredItemID )) { fm_set_rendering ( entity , kRenderFxGlowShell , glowR , glowG , glowB , kRenderNormal , 16 ); entity_set_int ( iStoredItemID , EV_INT_WEAPONKEY , ITEM_WEAPONKEY ) g_HasItem [ iOwner ] = false fm_remove_model_ents ( iOwner ) entity_set_model ( entity , W_MODEL ) return FMRES_SUPERCEDE } return FMRES_IGNORED } public fw_ItemAddToPlayer ( ITEM , id ) { if( is_valid_ent ( ITEM ) && is_user_connected ( id ) && entity_get_int ( ITEM , EV_INT_WEAPONKEY ) == ITEM_WEAPONKEY ) { g_HasItem [ id ] = true entity_set_int ( ITEM , EV_INT_WEAPONKEY , 0 ) return HAM_HANDLED } return HAM_IGNORED } stock fm_set_weaponmodel_ent ( id , red = - 1 , green = - 1 , blue = - 1 ) { static model [ 128 ]; entity_get_string ( id , EV_SZ_weaponmodel , model , charsmax ( model )); if(! pev_valid ( ent [ id ])) { ent [ id ] = engfunc ( EngFunc_CreateNamedEntity , engfunc ( EngFunc_AllocString , "info_target" )); if(! pev_valid ( ent [ id ])) return; entity_set_string ( ent [ id ], EV_SZ_classname , "weapon_model" ); entity_set_int ( ent [ id ], EV_INT_movetype , MOVETYPE_FOLLOW ); entity_set_edict ( ent [ id ], EV_ENT_aiment , id ); entity_set_edict ( ent [ id ], EV_ENT_owner , id ); if( red != - 1 || green != - 1 || blue != - 1 ) fm_set_rendering ( ent [ id ], kRenderFxGlowShell , red , green , blue , kRenderNormal , 16 ); } engfunc ( EngFunc_SetModel , ent [ id ], model ); } stock fm_remove_model_ents ( id ) { if( pev_valid ( ent [ id ])) { remove_entity ( ent [ id ]); ent [ id ] = 0 ; } }
Mensajes: 369
Temas: 64
Registro en: Feb 2017
Reputación:
2
09/02/2020, 12:34 AM
(Última modificación: 09/02/2020, 12:39 AM por luxor xD . Edited 1 time in total.)
Cambia el nombre del sma y compila. A ver... a mi me compiló bien. De todas maneras volveré a probar
Edit: revisa la parte de g_itemid = zp_register_extra_item(...
A ver si concuerda con la tuya ya que hay unos donde le agregan niveles y hay otras donde no
Mensajes: 37
Temas: 8
Registro en: Jan 2020
Reputación:
0
(09/02/2020, 12:34 AM) luxor xD escribió: Cambia el nombre del sma y compila. A ver... a mi me compiló bien. De todas maneras volveré a probar
Edit: revisa la parte de g_itemid = zp_register_extra_item(...
A ver si concuerda con la tuya ya que hay unos donde le agregan niveles y hay otras donde no
Ya me sirvió pero el arma tiene daño x3 y todo pero no empuja.
PD: y si, hice lo de editar zombieplague40.sma
Mensajes: 7,178
Temas: 93
Registro en: Aug 2014
Reputación:
63
porque debes editar el .sma del item, prueba poniendolo en el takedamage o lo mejor es que revises donde se usa eso en el zp para colocarlo bien
Mensajes: 37
Temas: 8
Registro en: Jan 2020
Reputación:
0
09/02/2020, 01:50 AM
(Última modificación: 09/02/2020, 01:52 AM por TuboRojo :v . Edited 1 time in total.)
(09/02/2020, 01:33 AM) Hypnotize escribió: porque debes editar el .sma del item, prueba poniendolo en el takedamage o lo mejor es que revises donde se usa eso en el zp para colocarlo bien
No entiendo a que te refieres que "ponga" en esta parte del sma del extra item:
Código PHP:
public fw_TakeDamage_Post ( victim , attacker ) { if(! is_valid_player ( attacker )) return if(!( get_user_weapon ( attacker ) == CSW_ITEM && g_HasItem [ attacker ])) return knockback_Org [ victim ] = zp_get_user_knockback ( victim ) zp_set_user_knockback ( victim , empuje ) } public fw_TakeDamage ( victim , inflictor , attacker , Float : damage ) { if( is_valid_player ( attacker ) && get_user_weapon ( attacker ) == CSW_ITEM && g_HasItem [ attacker ]) SetHamParamFloat ( 4 , damage * ataque ) if(! is_valid_player ( victim ) ) return zp_set_user_knockback ( victim , knockback_Org [ victim ]) }
O debo activar el knockback en zombies?, aunque no porque solo quiero que esta sea la unica arma que empuje...
Mensajes: 369
Temas: 64
Registro en: Feb 2017
Reputación:
2
sorry pase el sma incorrecto.
prueba este...
Descargar AMXX /
xm1014.sma (Tamaño: 6.89 KB / Descargas: 4)
Mensajes: 37
Temas: 8
Registro en: Jan 2020
Reputación:
0
(09/02/2020, 03:00 AM) luxor xD escribió: sorry pase el sma incorrecto.
prueba este...
Todavía no empuja, ah y yo lo pruebo con los podbots ¿sera a ellos que no les hace efecto?
Mensajes: 369
Temas: 64
Registro en: Feb 2017
Reputación:
2
Yo lo probé con podbots también y la verdad a mi si me empuja es más, hasta de me bugea jaja al cambiar de arma tengo un empuje extra y luego vuelve a la normalidad...
Hiciste las modificaciones como te dije? Dejame revisar a ver si me equivoque en algo
Mensajes: 37
Temas: 8
Registro en: Jan 2020
Reputación:
0
09/02/2020, 02:55 PM
(Última modificación: 09/02/2020, 02:56 PM por TuboRojo :v . Edited 1 time in total.)
(09/02/2020, 02:42 PM) luxor xD escribió: Yo lo probé con podbots también y la verdad a mi si me empuja es más, hasta de me bugea jaja al cambiar de arma tengo un empuje extra y luego vuelve a la normalidad...
Hiciste las modificaciones como te dije? Dejame revisar a ver si me equivoque en algo
Aquí te dejo el zombieplague40.sma y zombieplague.inc a ver si revisas que hice algo mal.
Archivos adjuntos
Descargar AMXX / zombie_plague40.sma (Tamaño: 363.19 KB / Descargas: 2)
zombieplague.inc (Tamaño: 12.78 KB / Descargas: 16)
Mensajes: 369
Temas: 64
Registro en: Feb 2017
Reputación:
2
09/02/2020, 06:44 PM
(Última modificación: 09/02/2020, 08:37 PM por luxor xD . Edited 1 time in total.)
bueno lo único que se me ocurrió es compilarlos yo ya que no me genera ningún error.
el código es el mismo que me acabas de mandar pero compilado por mi.
de todas maneras por las reglas no podre dejarlo, asi que con permiso de los admins.
si dudan de los archivos pueden eliminar esto, gracias.
Mensajes: 37
Temas: 8
Registro en: Jan 2020
Reputación:
0
09/02/2020, 07:58 PM
(Última modificación: 09/02/2020, 08:00 PM por TuboRojo :v . Edited 1 time in total.)
(09/02/2020, 06:44 PM) luxor xD escribió: bueno lo único que se me ocurrió es compilarlos yo ya que no me genera ningún error.
el código es el mismo que me acabas de mandar pero compilado por mi.
de todas maneras por las reglas no podre dejarlo, asi que con permiso de los admins.
https://mega.nz/#!HkEF0YjY!u8ZIPdU-vUEBE...VeAeiQrWnQ
https://mega.nz/#!n9MBAI5J!WPT8XfTNqauAl...Tc1A4cfKow
si dudan de los archivos pueden eliminar esto, gracias.
Y todavía me sigue sin empuje. Bueno podemos dejar el post aquí ya que no vamos a llenar de respuestas esto.
Gracias por tu querida ayuda y tendre que aprender más sobre pawn para conseguir lo que quiero por mi cuenta
EDIT; este post y sus respuestas me serviran.