Mensajes: 131
Temas: 29
Registro en: Mar 2014
Reputación:
0
27/07/2014, 08:51 PM
(Última modificación: 27/07/2014, 09:11 PM por Lito.)
Código PHP: #include <amxmodx> #include <amxmisc> #include <hamsandwich> #include <fakemeta>
#define PLUGIN "New Plug-In" #define VERSION "1.0" #define AUTHOR "author"
new g_frozen[33] new g_fwUserUnfrozen, g_fwDummyResult new g_glassSpr, g_msgDamage, g_msgScreenFade, Float:oldGravity[33] new g_ent_playermodel[33] new Ham:Ham_Player_ResetMaxSpeed = Ham_Item_PreFrame
const FFADE_STAYOUT = 0x0004 const BREAK_GLASS = 0x01 const UNIT_SECOND = (1<<12) const FFADE_IN = 0x0000
public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) RegisterHam(Ham_TakeDamage, "player", "fw_TakeDamage") g_msgDamage = get_user_msgid("Damage") g_msgScreenFade = get_user_msgid("ScreenFade") g_fwUserUnfrozen = CreateMultiForward("zp_user_unfrozen", ET_IGNORE, FP_CELL) } public plugin_precache() { g_glassSpr = precache_model("models/glassgibs.mdl") } public client_putinserver(id) { g_frozen[id] = 0 } public client_disconnect(id) { g_frozen[id] = 0 } public fw_TakeDamage(victim, inflictor, attacker, Float:damage, damage_type) { // Non-player damage or self damage if (victim == attacker) return HAM_IGNORED; new weaponD = read_data(2) if(weaponID == CSW_KNIFE) { frost_explode(victim) //set_task(5, "remove_freeze", victim) } return HAM_SUPERCEDE; } public fw_playerprethink(id) { if(g_frozen[id]) { set_pev(id,pev_velocity,Float:{0.0,0.0,0.0}); // stop motion new Float:gravity; pev(id,pev_gravity,gravity); // remember any gravity changes if(gravity != 0.000000001 && gravity != 999999999.9) oldGravity[id] = gravity;
// if are on the ground and about to jump, set the gravity too high to really do so if((pev(id,pev_button) & IN_JUMP) && !(pev(id,pev_oldbuttons) & IN_JUMP) && (pev(id,pev_flags) & FL_ONGROUND)) set_pev(id,pev_gravity,999999999.9);
// otherwise, set the gravity so low that they don't fall else set_pev(id,pev_gravity,0.000000001); } return FMRES_IGNORED; } frost_explode(ent) { // Get origin static Float:originF[3] pev(ent, pev_origin, originF) // Collisions static victim victim = -1 // Only effect alive unfrozen zombies if (!is_user_alive(victim) || g_frozen[victim]) return 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() fm_set_rendering(victim, kRenderFxGlowShell, 0, 100, 200, kRenderNormal, 25) // 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(3, "remove_freeze", victim) // Get rid of the grenade engfunc(EngFunc_RemoveEntity, ent) }
// Remove freeze task public remove_freeze(id) { // Not alive or not frozen anymore if (!is_user_alive(id)|| !g_frozen[id]) return; // Unfreeze g_frozen[id] = false; fm_set_rendering(g_ent_playermodel[id]) // Gradually remove screen's blue tint message_begin(MSG_ONE, g_msgScreenFade, _, id) write_short(UNIT_SECOND) // duration write_short(0) // hold time write_short(FFADE_IN) // fade type write_byte(0) // red write_byte(50) // green write_byte(200) // blue write_byte(100) // alpha message_end() // Get player's origin static origin2[3] get_user_origin(id, origin2) // Glass shatter message_begin(MSG_PVS, SVC_TEMPENTITY, origin2) write_byte(TE_BREAKMODEL) // TE id write_coord(origin2[0]) // x write_coord(origin2[1]) // y write_coord(origin2[2]+24) // z write_coord(16) // size x write_coord(16) // size y write_coord(16) // size z write_coord(random_num(-50, 50)) // velocity x write_coord(random_num(-50, 50)) // velocity y write_coord(25) // velocity z write_byte(10) // random velocity write_short(g_glassSpr) // model write_byte(10) // count write_byte(25) // life write_byte(BREAK_GLASS) // flags message_end() ExecuteForward(g_fwUserUnfrozen, g_fwDummyResult, id); } // Set entity's rendering type (from fakemeta_util) stock fm_set_rendering(entity, fx = kRenderFxNone, r = 255, g = 255, b = 255, render = kRenderNormal, amount = 16) { static Float:color[3] color[0] = float(r) color[1] = float(g) color[2] = float(b) set_pev(entity, pev_renderfx, fx) set_pev(entity, pev_rendercolor, color) set_pev(entity, pev_rendermode, render) set_pev(entity, pev_renderamt, float(amount)) }
Bueno pues resulta q quiero q cuando el ct le de una puñalada al terrorista se quede congelado por 5 segundos, y luego se descongele pasado los 5 segudo nose por que no funciona me copila bien y todo, si alguien me dice donde falla.
Sé humilde en tu enfoque.
Mensajes: 119
Temas: 4
Registro en: May 2014
Reputación:
1
Mensajes: 131
Temas: 29
Registro en: Mar 2014
Reputación:
0
has mirao el code o solo as leido lo q estoy intentando hacer?
si te das cuenta ya tengo hecho eso y aun asin no funciona
Sé humilde en tu enfoque.
Mensajes: 2,571
Temas: 40
Registro en: Feb 2014
Reputación:
72
(28/07/2014, 08:23 AM)Lito escribió: has mirao el code o solo as leido lo q estoy intentando hacer?
si te das cuenta ya tengo hecho eso y aun asin no funciona
No das detalles de problema, respondes mal a quien quiere ayudarte. ¿Así esperas recibir ayuda?
Ni te tomas la molestia en detallar el problema con tu code...
Mensajes: 93
Temas: 35
Registro en: Jul 2014
Reputación:
0
(28/07/2014, 01:29 PM)Mario AR. escribió: (28/07/2014, 08:23 AM)Lito escribió: has mirao el code o solo as leido lo q estoy intentando hacer?
si te das cuenta ya tengo hecho eso y aun asin no funciona
No das detalles de problema, respondes mal a quien quiere ayudarte. ¿Así esperas recibir ayuda?
Ni te tomas la molestia en detallar el problema con tu code...
@ Mario AR. lo que el quiere yo también lo busco y necesito lo que el quiere es que la knife congele con el segundo clic por ejemplo si un ct acuchilla a un tt, el ct quedara congelado por 3 segundos.
Aquí hay un thread pero no entiendo como hacerlo. Creo el takedamage todo pero no funciona.
http://amxmodx-es.com/Thread-Cuchillo-se...HNS-Cs-1-6
Nadie nace sabiendo, todos estamos para aprender, y bueno aquí estoy yo.
Mensajes: 843
Temas: 13
Registro en: Nov 2013
Reputación:
11
01/08/2014, 12:37 AM
(Última modificación: 01/08/2014, 12:44 AM por UnrealT.)
Esta echo rapido y testeado y funciona bien!
Código PHP: #include <amxmodx> #include <fakemeta> #include <hamsandwich>
new bool:g_bCongelado[33]
public plugin_init() { RegisterHam(Ham_TakeDamage, "player", "fw_TakeDamage") register_forward(FM_PlayerPreThink, "fw_PlayerPreThink") }
public fw_TakeDamage(victim, inflictor, attacker, Float:damage, damage_type) { if (victim == attacker || !is_user_connected(attacker)) return HAM_IGNORED; if (get_user_weapon(attacker) != CSW_KNIFE) return HAM_IGNORED; if ( (pev(attacker, pev_button) & IN_ATTACK2) && get_user_team(victim) == 1) Congelar(attacker) return HAM_SUPERCEDE; }
public fw_PlayerPreThink(id) { if (!is_user_alive(id)) return; if (g_bCongelado[id]) { set_pev(id, pev_velocity, Float:{0.0,0.0,0.0}) set_pev(id, pev_maxspeed, 1.0) } }
public Congelar(id) { if (!is_user_alive(id)) return; if (pev(id, pev_flags) & FL_ONGROUND) set_pev(id, pev_gravity, 999999.9) else set_pev(id, pev_gravity, 0.000001) g_bCongelado[id] = true set_task(3.0, "Descongelar", id) }
public Descongelar(id) { if (!is_user_alive(id)) return; g_bCongelado[id] = false set_pev(id, pev_gravity, 1.0) set_pev(id, pev_maxspeed, 250.0) // Puse esto por las dudas, xq el hns creo que los tt no tienen ningun arma. }
public client_disconnect(id) remove_task(id)
Mensajes: 1,616
Temas: 19
Registro en: Oct 2013
Reputación:
16
¿Prethink para eso?
No lo recomiendo usar.
Ni te molestes en enviarme un mensaje privado para pedirme ayuda porque NO lo voy a contestar.
Gracias por su atención.
Mensajes: 93
Temas: 35
Registro en: Jul 2014
Reputación:
0
(01/08/2014, 12:37 AM)UnrealT escribió: Esta echo rapido y testeado y funciona bien!
Código PHP: #include <amxmodx> #include <fakemeta> #include <hamsandwich>
new bool:g_bCongelado[33]
public plugin_init() { RegisterHam(Ham_TakeDamage, "player", "fw_TakeDamage") register_forward(FM_PlayerPreThink, "fw_PlayerPreThink") }
public fw_TakeDamage(victim, inflictor, attacker, Float:damage, damage_type) { if (victim == attacker || !is_user_connected(attacker)) return HAM_IGNORED; if (get_user_weapon(attacker) != CSW_KNIFE) return HAM_IGNORED; if ( (pev(attacker, pev_button) & IN_ATTACK2) && get_user_team(victim) == 1) Congelar(attacker) return HAM_SUPERCEDE; }
public fw_PlayerPreThink(id) { if (!is_user_alive(id)) return; if (g_bCongelado[id]) { set_pev(id, pev_velocity, Float:{0.0,0.0,0.0}) set_pev(id, pev_maxspeed, 1.0) } }
public Congelar(id) { if (!is_user_alive(id)) return; if (pev(id, pev_flags) & FL_ONGROUND) set_pev(id, pev_gravity, 999999.9) else set_pev(id, pev_gravity, 0.000001) g_bCongelado[id] = true set_task(3.0, "Descongelar", id) }
public Descongelar(id) { if (!is_user_alive(id)) return; g_bCongelado[id] = false set_pev(id, pev_gravity, 1.0) set_pev(id, pev_maxspeed, 250.0) // Puse esto por las dudas, xq el hns creo que los tt no tienen ningun arma. }
public client_disconnect(id) remove_task(id)
Lo probé en un dedicado con bots y nada no los congela, y me puse admin en el dedicado y los bots no puedan quitarme nada de daño.
Nadie nace sabiendo, todos estamos para aprender, y bueno aquí estoy yo.
Mensajes: 6,664
Temas: 81
Registro en: Jan 2014
Reputación:
68
no seria congelar(victim) ??
► NO DOY AYUDA VIA MENSAJE PRIVADO ◄
* Si requieres algún servicio de pago puedes contactarme vía MP o en mi facebook
Mensajes: 1,011
Temas: 17
Registro en: Jul 2014
Reputación:
34
No por que es para el hns es decir que el terrorista al darle un toque al hider( CT ) tiene que darle chance y para eso es el congelar.
Mensajes: 189
Temas: 6
Registro en: Jan 2014
Reputación:
6
(01/08/2014, 01:36 PM)MenteEnBlanco escribió: Lo probé en un dedicado con bots y nada no los congela
Para qe funcione con bots hay qe cambiar el registerham
(01/08/2014, 01:36 PM)MenteEnBlanco escribió: y me puse admin en el dedicado y los bots no puedan quitarme nada de daño.
No deberia devolver supercede. Creo qe un ignored es suficiente, o handled como mucho
Mensajes: 843
Temas: 13
Registro en: Nov 2013
Reputación:
11
Que raro yo lo probe con bots tmb y me funciona bien , fijate cambiando lo que dice NikKOo31
Mensajes: 189
Temas: 6
Registro en: Jan 2014
Reputación:
6
(01/08/2014, 04:14 PM)UnrealT escribió: Que raro yo lo probe con bots tmb y me funciona bien , fijate cambiando lo que dice NikKOo31
Personalmente jamás tuve problemas con los bot, pero se qe mucha gente si :p
Proba agregar esto
Código PHP: new bool:g_hamczbots
public plugin_init() { RegisterHam(Ham_TakeDamage, "player", "fw_TakeDamage") //esto ya lo tenes RegisterHam(Ham_Player_PreThink, "fw_PlayerPreThink") //esto era de fakemeta y te lo cambie a ham :p }
public client_putinserver(id) { if(is_user_bot(id) && !g_hamczbots) set_task(0.1, "register_ham_czbots", id) }
public register_ham_czbots(id) { if(g_hamczbots || !is_user_connected(id)) return
RegisterHamFromEntity(Ham_TakeDamage, id, "fw_TakeDamage") //el forward va a la misma funcion qe ya tenes RegisterHamFromEntity(Ham_Player_PreThink, id, "fw_PlayerPreThink") //y aca lo mismo g_hamczbots = true }
Aca esta la fuente
Mensajes: 2,105
Temas: 196
Registro en: Mar 2014
Reputación:
13
01/08/2014, 04:48 PM
(Última modificación: 01/08/2014, 04:53 PM por K.-'.)
a mi tampoco en la funcion de ham_killed ( matar a un boludo ) no me anda con los bots , cuando lo pruebo en un sv hosteado si me anda , nose por que , haora voy a pobar algo cualquier cosa edito msg
edit : no , no pude hacerlo , estube chequeando que es un bot y sume la variable y no :/
(10/10/2014, 06:38 PM)RauliTop escribió: (10/10/2014, 04:40 PM)ivan escribió: no sabía que se podia poner los iconos gestuales cuando das reputacion negativa/positiva. ui, peligro...
pronto habrán reputaciones de ivan:
hace muy muy muii buenos tutoriales me encataan
Mensajes: 189
Temas: 6
Registro en: Jan 2014
Reputación:
6
(01/08/2014, 04:48 PM)K.- escribió: a mi tampoco en la funcion de ham_killed ( matar a un boludo ) no me anda con los bots , cuando lo pruebo en un sv hosteado si me anda , nose por que , haora voy a pobar algo cualquier cosa edito msg
Depende los bots qe estes usando
Mensajes: 93
Temas: 35
Registro en: Jul 2014
Reputación:
0
(01/08/2014, 04:14 PM)UnrealT escribió: Que raro yo lo probe con bots tmb y me funciona bien , fijate cambiando lo que dice NikKOo31
Si funciona UnrealT si lo congela pero no ataca osea cuando el CT le pega al TT el ct queda congelado los 3 segundos pero no le quita nada de daño al TT
Nadie nace sabiendo, todos estamos para aprender, y bueno aquí estoy yo.
Mensajes: 843
Temas: 13
Registro en: Nov 2013
Reputación:
11
cambia el return HAM_SUPERCEDE; por HAM_IGNORED;
Mensajes: 1
Temas: 0
Registro en: Sep 2015
Reputación:
0
En donde pongo en la carpeta del cs de mi server un archivo php noc nda de eso yo tambien quiero q cuando un ct le pegue con el cuchillo al tt se quede por 3 segundos quietos xfa respondan
|