Raised This Month: $64 Target: $400
 16% 

[INFO] Fakemeta & Ham detailed function descriptions and examples


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
ot_207
Veteran Member
Join Date: Jan 2008
Location: Romania The Love Country
Old 05-26-2009 , 09:03   [INFO] Fakemeta & Ham detailed function descriptions and examples
Reply With Quote #1

Fakemeta Func Wiki

I think that we all need to contribute to this topic so let's get it started.

FakeMeta Functions
HamSandWich Functions
Contributors
  • Arkshine
  • Starsailor
  • joropito
  • Nomexous
__________________
My approved plug-ins | Good for newbies! | Problems?

Back, will come around when I have time.

Last edited by ot_207; 09-17-2010 at 08:28. Reason: Type fixes :P
ot_207 is offline
ot_207
Veteran Member
Join Date: Jan 2008
Location: Romania The Love Country
Old 05-26-2009 , 09:18   Re: [INFO] Fakemeta & Ham detailed function descriptions and examples
Reply With Quote #2

Fakemeta function:
PHP Code:
EngFunc_PointContents 
Description:
This function checks an origin and gives us information of its whearabouts.

The constants that this function returns are these:
Code:
#define	CONTENTS_EMPTY                  -1
#define	CONTENTS_SOLID                  -2
#define	CONTENTS_WATER                  -3
#define	CONTENTS_SLIME                  -4
#define	CONTENTS_LAVA                   -5
#define	CONTENTS_SKY                    -6
#define	CONTENTS_ORIGIN                 -7          // Removed at csg time
#define	CONTENTS_CLIP                   -8          // Changed to contents_solid
#define	CONTENTS_CURRENT_0              -9
#define	CONTENTS_CURRENT_90             -10
#define	CONTENTS_CURRENT_180            -11
#define	CONTENTS_CURRENT_270            -12
#define	CONTENTS_CURRENT_UP             -13
#define	CONTENTS_CURRENT_DOWN           -14
#define CONTENTS_TRANSLUCENT            -15
#define	CONTENTS_LADDER                 -16
#define	CONTENT_FLYFIELD                -17
#define	CONTENT_GRAVITY_FLYFIELD        -18
#define	CONTENT_FOG                     -19
Usage:
PHP Code:
static Float:origin[3]
static 
result
result 
engfunc(EngFunc_PointContentsorigin)
// if for example result is CONTENTS_SKY
// then the origin that we see is in the sky we can for example use this to see where a player is aming if he is aiming at sky this will be the result! 
__________________
My approved plug-ins | Good for newbies! | Problems?

Back, will come around when I have time.
ot_207 is offline
Arkshine
AMX Mod X Plugin Approver
Join Date: Oct 2005
Old 05-26-2009 , 09:26   Re: [INFO] Fakemeta & Ham detailed function descriptions and examples
Reply With Quote #3

( Nice initiative but I think it should be update on the wiki too because more readable. Also for here creating a list for fakemeta and ham would be interesting. )

Last edited by Arkshine; 05-26-2009 at 09:30.
Arkshine is offline
joaquimandrade
Veteran Member
Join Date: Dec 2008
Location: Portugal
Old 05-26-2009 , 09:35   Re: [INFO] Fakemeta & Ham detailed function descriptions and examples
Reply With Quote #4

Nice ot.
__________________
joaquimandrade is offline
ot_207
Veteran Member
Join Date: Jan 2008
Location: Romania The Love Country
Old 05-26-2009 , 09:39   Re: [INFO] Fakemeta & Ham detailed function descriptions and examples
Reply With Quote #5

Quote:
Originally Posted by arkshine View Post
( Nice initiative but I think it should be update on the wiki too because more readable. Also for here creating a list for fakemeta and ham would be interesting. )
I think that we should update here first and after that do a wiki.
And thanks!

Quote:
Originally Posted by joaquimandrade View Post
Nice ot.
Thanks! If you have functions or constants that are important please post .
__________________
My approved plug-ins | Good for newbies! | Problems?

Back, will come around when I have time.
ot_207 is offline
ot_207
Veteran Member
Join Date: Jan 2008
Location: Romania The Love Country
Old 05-26-2009 , 10:08   Re: [INFO] Fakemeta & Ham detailed function descriptions and examples
Reply With Quote #6

Fakemeta function:
PHP Code:
EngFunc_TraceLine 
Description:
This function traces between 2 origins and gives us information about it.

The constants that we can use in flags:
PHP Code:
#define DONT_IGNORE_MONSTERS            0
#define IGNORE_MONSTERS                 1
#define IGNORE_MISSILE                  2
#define IGNORE_GLASS                    0x100 
These constants can be used together.
Ex: IGNORE_MISSILE | IGNORE_MONSTERS | IGNORE_GLASS - This makes the traceline ignore missiles, monsters (players) and glass.

Here is a drawing that will show you how it works!
PHP Code:
engfunc(EngFunc_TraceLinestartendIGNORE_GLASS0tr
[IMG]http://img529.**************/img529/1863/traceline1.jpg[/IMG]

PHP Code:
engfunc(EngFunc_TraceLinestartendDONT_IGNORE_MONSTERS0tr
[IMG]http://img529.**************/img529/1415/traceline2.jpg[/IMG]

PHP Code:
engfunc(EngFunc_TraceLinestartendIGNORE_GLASS0tr
[IMG]http://img529.**************/img529/5815/traceline3.jpg[/IMG]

PHP Code:
engfunc(EngFunc_TraceLinestartendIGNORE_GLASS0tr
[IMG]http://img529.**************/img529/326/traceline4.jpg[/IMG]

Functions that come with the TraceLine pack:
PHP Code:
// Description: This creates a trace handle! 
// It is important to use because we don't want our plugins to mess with eachothers info!
new ptr create_tr2() 
PHP Code:
// Description: This creates a trace handle! 
// It is important to use because we don't want our plugins to mess with each others info!
free_tr2(ptr
PHP Code:
// Description: Gets/Sets information from/in the trace_handle
[g|s]et_tr2(trace_handleCONSTANTnumber_if_needed!) 
CONSTANT Expresion has this posible values:
Code:
enum TraceResult
{
	TR_AllSolid,		// int
	TR_StartSolid,		// int
	TR_InOpen,		// int
	TR_InWater,		// int
	TR_flFraction,		// float
	TR_vecEndPos,		// float array[3]
	TR_flPlaneDist,		// float
	TR_vecPlaneNormal,	// float array[3]
	TR_pHit,		// int (edict_t*)
	TR_iHitgroup,		// int
};
The float and array values need the third argument! Example:

PHP Code:
    new allsolid get_tr2(traceTR_AllSolid)
    new 
startsolid get_tr2(traceTR_StartSolid)
    
// TR_StartSolid is a boolean that says whether you were "inside" something 
    // (usually the world) when the trace started (point A)
    // TR_AllSolid tells you if you ever got out of the "inside" or not.
    
    
new inopen get_tr2(traceTR_InOpen)
    
// TR_InOpen means that the start point is in Open
    // That means in the world and not in an ent or something
    
    
new hit get_tr2(traceTR_pHit)
    
// What was hit by the traceline. It will either be a player index,
    // entity index, 0 (part of map), or -1 (didn't hit anything; 
    // doesn't happen with player tracelines).
    
    
new hitgroup get_tr2(traceTR_iHitgroup)
    
// If the traceline hit another player, returns will be HIT_HEAD,
    // HIT_CHEST, HIT_LEFTLEG... etc. If the traceline hit part of the
    // map, this returns HIT_GENERIC.
    
    
new Float:fraction
    get_tr2
(traceTR_flFractionfraction)
    
// Returns a number between 0.0 and 1.0, indicating how far the
    // traceline traveled start to end before it hit something. Depending
    // on what conditions were passed to this traceline forward function,
    // it could either be a wall or another entity.
    
    
new Float:end_origin[3]
    
get_tr2(traceTR_vecEndPosend_origin)
    
// The official end of the traceline. Not necesarily the same as the
    // second argument passed to this traceline forward function.
    
    
new Float:normal[3]
    
get_tr2(traceTR_vecPlaneNormalnormal)
    
// Returns a 1 unit long vector normal to the spot that it hit. Note
    // that "normal" has a special connotation here. It doesn't mean "regular." 
Example Stock:
PHP Code:
stock is_wall_between_points(Float:start[3], Float:end[3], ignore_ent)
{
    
// Create the trace handle! It is best to create it!
    
new ptr create_tr2()
    
    
// The main traceline function!
    // This function ignores GLASS, MISSILE and MONSTERS!
    // Here is an example of how you should combine all the flags!
    
engfunc(EngFunc_TraceLinestartendIGNORE_GLASS IGNORE_MONSTERS IGNORE_MISSILEignore_entptr)
    
    
// We are interested in the fraction parameter
    
new fraction
    get_tr2
(ptrTR_flFractionfraction)
    
    
// Free the trace handle (don't forget to do this!)
    
free_tr2(ptr)
    
    
// If = 1.0 then it didn't hit anything!
    
return (fraction != 1.0)

Extra info:
Valve - arguments of the trace handle
TraceLine Tutorial (Nomexous)
__________________
My approved plug-ins | Good for newbies! | Problems?

Back, will come around when I have time.

Last edited by ot_207; 09-15-2009 at 17:51.
ot_207 is offline
ot_207
Veteran Member
Join Date: Jan 2008
Location: Romania The Love Country
Old 05-26-2009 , 10:37   Re: [INFO] Fakemeta & Ham detailed function descriptions and examples
Reply With Quote #7

Fakemeta function:
PHP Code:
EngFunc_FindEntityInSphere 
Description:
Find entities within a radius. The function returnes the next entity id after the start entity!

This is a drawing to show how this function works:
[IMG]http://img265.**************/img265/2395/screenshot053.png[/IMG]


If we use
PHP Code:
engfunc(EngFunc_FindEntityInSphere, -1originradius
The function in the situation above will return 1!
PHP Code:
engfunc(EngFunc_FindEntityInSphere20originradius
The function in the situation above will return 30!
PHP Code:
engfunc(EngFunc_FindEntityInSphere100originradius
The function in the situation above will return 0, meaning that it didn't find an entity with an id grater than 100!


Usage:
PHP Code:
engfunc(EngFunc_FindEntityInSphereent_to_startoriginradius
__________________
My approved plug-ins | Good for newbies! | Problems?

Back, will come around when I have time.

Last edited by ot_207; 05-27-2009 at 10:03.
ot_207 is offline
Dr.G
Senior Member
Join Date: Nov 2008
Old 05-26-2009 , 10:53   Re: [INFO] Fakemeta & Ham detailed function descriptions and examples
Reply With Quote #8

nice ot. if anyone think a sphere is another word for circle its not -> http://en.wikipedia.org/wiki/File:Sphere_wireframe.svg
__________________
Dr.G is offline
ot_207
Veteran Member
Join Date: Jan 2008
Location: Romania The Love Country
Old 05-26-2009 , 10:57   Re: [INFO] Fakemeta & Ham detailed function descriptions and examples
Reply With Quote #9

Quote:
Originally Posted by Dr.G View Post
nice ot. if anyone think a sphere is another word for circle its not -> http://en.wikipedia.org/wiki/File:Sphere_wireframe.svg
Thanks! That was just as an example. If someone would do a 3d design it would be great .
__________________
My approved plug-ins | Good for newbies! | Problems?

Back, will come around when I have time.

Last edited by ot_207; 05-26-2009 at 11:03.
ot_207 is offline
Dr.G
Senior Member
Join Date: Nov 2008
Old 05-26-2009 , 11:46   Re: [INFO] Fakemeta & Ham detailed function descriptions and examples
Reply With Quote #10

this is some screenshots from autocad
Attached Files
File Type: zip ScreenShot053.zip (111.8 KB, 359 views)
__________________
Dr.G is offline
Reply


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 09:13.


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