Raised This Month: $ Target: $400
 0% 

Learn FakeMeta Converted a plugin! How did I do?


  
 
 
Thread Tools Display Modes
Prev Previous Post   Next Post Next
Author Message
Styles
Veteran Member
Join Date: Jul 2004
Location: California
Old 09-27-2007 , 14:05   Learn FakeMeta Converted a plugin! How did I do?
Reply With Quote #1

Hey!
Ive been learning fakemeta a lot more. And I decided to take a plugin I found and convert it to FakeMeta from Engine.

I commented out the Engine Commands.

How did I do? Is it right?

http://forums.alliedmods.net/showthr...ght=DeathBones

Thats the original Plugin

Code:
#include <amxmodx>
#include <amxmisc>
#include <fakemeta>



#define PLUGIN "DeathBones"
#define VERSION "1.1.0"
#define AUTHOR "mogel"



#define BONE_ALPHA_TASK_BASIS 1000
new pcv_deathmatch	// Deathmatch-Support
new pcv_bonestime	// anzeigen der Bones



#define ALPHA EV_INT_iuser4
#define PLAYER EV_INT_iuser3



public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR)

	register_message(get_user_msgid("DeathMsg"), "Event_Death")
	register_event("HLTV", "Event_FreezeTime", "a", "1=0", "2=0")
	
	register_cvar("DeathBones", VERSION, FCVAR_SERVER | FCVAR_SPONLY | FCVAR_UNLOGGED)
	
	pcv_deathmatch = register_cvar("db_deathmatch", "0")	// per default kein DM-Support
	pcv_bonestime = register_cvar("db_bonestime", "30.0")	// 30 Sekunden
}
public plugin_precache() {
	precache_model("models/skeleton.mdl")
}
public Event_FreezeTime() {
	new players[32], count
	get_players(players, count, "h")
	for(new i = 0; i < count; i++)
	{
		new player = players[i]
		
		// Render zurück setzen
		set_pev(player, pev_renderfx, kRenderFxNone)
		set_pev(player, pev_rendercolor, 255,255,255)
		set_pev(player, pev_rendermode, kRenderNormal)
		set_pev(player, pev_renderamt, 0.0)
	}
	
	//remove_entity_name("deathbones")
	engfunc(EngFunc_RemoveEntity, "deathbones")
}
public Event_Death() {
	new player = get_msg_arg_int(2)
	
	new Float:bones[3]
	new Float:angle[3]
	
	pev(player, pev_origin, bones)
	//entity_get_vector(player, EV_VEC_origin, bones)
	pev(player, pev_angles, angle)
	//entity_get_vector(player, EV_VEC_angles, angle)
	bones[2] -= 32.0 // gleich nach unten setzen
	
	// Bones erstellen
	new entity = engfunc(EngFunc_CreateEntity, "info_target")
	//new entity = create_entity("info_target")
	set_pev(entity, pev_classname, "deathbones")
	//entity_set_string(entity, EV_SZ_classname, "deathbones")
	set_pev(entity, pev_model, "models/skeleton.mdl")
	//entity_set_model(entity, "models/skeleton.mdl")
	set_pev(entity, pev_origin, bones)
	//entity_set_origin(entity, bones)
	set_pev(entity, pev_angles, angle)
	//entity_set_vector(entity, EV_VEC_angles, angle)

	set_pev(entity, pev_movetype, MOVETYPE_TOSS)
	//entity_set_int(entity, EV_INT_movetype, MOVETYPE_TOSS)
	set_pev(entity, pev_solid, SOLID_NOT)
	//entity_set_int(entity, EV_INT_solid, SOLID_NOT)
	
	// Bones erstmal unsichtbar
	set_pev(entity, pev_renderfx, kRenderFxNone)
	set_pev(entity, pev_rendercolor, 255,255,255)
	set_pev(entity, pev_rendermode, kRenderTransAlpha)
	set_pev(entity, pev_renderamt, 0.0)

	// Spieler durch Bones wechseln
	set_pev(entity, pev_iuser3, player)
	//entity_set_int(entity, PLAYER, player)		// den Bones dem Spieler zuweisen
	set_pev(entity, pev_iuser4, 0)
	//entity_set_int(entity, ALPHA, 0)		// aktuelles Alpha für die Bones
	set_task(1.0, "BonesAlphaIn", entity)
}
public BonesAlphaIn(bones) {
	if (!pev_valid(bones)) return
	
	new alpha = pev(bones,pev_effects, pev_iuser4 + 1)
	//new alpha = entity_get_int(bones, ALPHA) + 1
	new player = pev(bones, pev_effects, pev_iuser3)
	//new player = entity_get_int(bones, PLAYER)
	
	// Spieler ausblenden, aber nur wenn kein DM-Modus
	if ((pev_valid(player)) && !get_pcvar_num(pcv_deathmatch))
	{
		set_pev(player, pev_renderfx, kRenderFxNone)
		set_pev(player, pev_rendercolor, 255,255,255)
		set_pev(player, pev_rendermode, kRenderTransAlpha)
		set_pev(player, pev_renderamt, float(256 - alpha * 16))
	}
	
	if (pev_valid(bones))
	{
		set_pev(bones, pev_renderfx, kRenderFxNone)
		set_pev(bones, pev_rendercolor, 255,255,255)
		set_pev(bones, pev_rendermode, kRenderTransAlpha)
		set_pev(bones, pev_renderamt, float(alpha * 16 - 1))
	}
	
	// neuen Alpha-Wert merken
	//entity_set_int(bones, ALPHA, alpha)
	pev(bones, pev_iuser4, alpha)
	// jetzt entscheiden .. .weiter Alpha oder liegen lassen
	if (alpha >= 16)
	{
		// wenn kein DM dann Spieler jetzt nach unten setzen
		if (!get_pcvar_num(pcv_deathmatch))
		{
			// Bones werden am Rundenanfng automatisch gelöscht
			PlayerMove(player)
		} else
		{
			// im DM-Modus nach X Sekunden wieder ausblenden
			set_task(get_pcvar_float(pcv_bonestime), "BonesAlphaOut", bones)
		}
	} else
	{
		set_task(0.1, "BonesAlphaIn", bones)
	}
}
public BonesAlphaOut(bones) {
	if (!pev_valid(bones)) return
	
	//new alpha = entity_get_int(bones, ALPHA) - 1
	new alpha = pev(bones,pev_effects, pev_iuser4 - 1)
	
	if (pev_valid(bones))
	{
		set_pev(bones, pev_renderfx, kRenderFxNone)
		set_pev(bones, pev_rendercolor, 255,255,255)
		set_pev(bones, pev_rendermode, kRenderTransAlpha)
		set_pev(bones, pev_renderamt, float(alpha * 16 - 1))
	}
	
	// neuen Alpha-Wert merken
	//entity_set_int(bones, ALPHA, alpha)
	pev(bones, pev_iuser4, alpha)
	
	// jetzt entscheiden .. .weiter Alpha oder killen
	if (alpha)
	{
		set_task(0.1, "BonesAlphaOut", bones)
	} else
	{
		//remove_entity(bones)
		engfunc(EngFunc_RemoveEntity, "deathbones")
	}			
}
public PlayerMove(player) {
	new Float:pos[3]
	//entity_get_vector(player, EV_VEC_origin, pos)
	pev(player, pev_origin, pos)
	pos[2] -= 2000.0
	//entity_set_vector(player, EV_VEC_origin, pos)
	set_pev(player, pev_origin, pos)
}
Thanks
Styles is offline
Send a message via AIM to Styles
 


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 16:01.


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