Raised This Month: $ Target: $400
 0% 

Beginning to understand*CODING*


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
dongfatt
Member
Join Date: Aug 2005
Old 07-23-2006 , 22:47   Beginning to understand*CODING*
Reply With Quote #1

Code:
#include <amxmodx>
#include <amxmisc>
#include <engine>
#include <engine_stocks>
#include <string>
#include <fun>
#include <harbu>

#define Author	"James J. Kelly Jr."
#define Version	"FINAL"
#define Plugin	"FireMod"

#define Sprite				"sprites/afire.spr"
#define Sprite_Smoke		"sprites/steam1.spr"
#define Sprite_Scale		0.80
#define Sprite_Offset		(Sprite_Scale * (Sprite_Scale * 100))+12
#define Sprite_Framerate	10.0

#define Burning_Sound		"ambience/fire.wav"
#define Extinguisher_Sound	"fire_ext.wav"
#define Painful_Sound		"player/pl_fallpain3.wav"

#define SOUND_STOP			(1<<5)

#define DAMAGE_BURN				8

#define MAX_FLAMES				200

#define FLAME_INDEX_INDEX		0
#define FLAME_INDEX_HEALTH		1
#define FLAME_INDEX_SPREAD		2
#define FLAME_INDEX_LIFETIME	3
#define FLAME_INDEX_SMOKE		4

#define PI						3.14159265358979323846

new smoke = 0;

new gPlayerLastExtinguish[32];

new gFlames[MAX_FLAMES][5];

new mcfdjobs[2];

new Float:cosTable[361];
new Float:sinTable[361];

public plugin_init()
{

	register_plugin(Plugin,Version,Author);
	
	for( new i = 0; i < 361; i++ )
	{
		
		cosTable[i] = floatcos(float(i));
		sinTable[i] = floatsin(float(i));
		
	}
	
	register_cvar("fire_max_flames","200");
	register_cvar("rp_item_extinguisher","1");
	
	register_cvar("rp_fire_jobid_mcfd","50 54");
	
	register_event("DeathMsg","client_death","a");

	register_srvcmd("server_spawnflame","server_spawnflame");	
	register_srvcmd("item_fire","item_fire");
	register_srvcmd("item_extinguisher","item_extinguisher");

	register_clcmd("say","sayHandle");

	register_concmd("amx_createflame","admin_createflame",ADMIN_BAN,"Creates a flame at the specified position");
	register_concmd("amx_extinguish","admin_extinguish",ADMIN_BAN,"Extinguishes all the fires in the map");
	register_concmd("amx_entity","admin_entity",ADMIN_ALL,"Displays information on the given entity");

	server_cmd("exec addons/amxmodx/configs/firemod.cfg");
	server_cmd("exec addons/amxmodx/configs/HarbuRP/harbu_rp_config.cfg");
	
	cvar_to_array("rp_fire_jobid_mcfd",31,mcfdjobs,2);
	
	//set_task(1.0,"flameEffect",0,"",0,"b");
	set_task(1.0,"timer",0,"",0,"b");
		
}

public plugin_precache()
{

	precache_model(Sprite);
	smoke = precache_model(Sprite_Smoke);
	
	precache_sound(Burning_Sound);
	precache_sound(Extinguisher_Sound);
	precache_sound(Painful_Sound);
		
}

public plugin_credits(id)
{

	client_print(id,engprint_console,"/*=======================================*\^n");
	client_print(id,engprint_console,"|* FireMod                               *|^n");
	client_print(id,engprint_console,"|*=======================================*|^n");
	client_print(id,engprint_console,"|* ©Copyright 2006 by James J. Kelly Jr. *|^n");
	client_print(id,engprint_console,"\*=======================================*/^n");

	return PLUGIN_HANDLED;
			
}

public client_putinserver(id)
{

	set_task(8.0,"plugin_credits",id);
		
}

public client_connect(id)
{
	
	gPlayerLastExtinguish[id] = 0;
		
}

public client_disconnect(id)
{

	gPlayerLastExtinguish[id] = 0;
		
}

public client_death()
{
	
	new id = read_data(2);
	
	gPlayerLastExtinguish[id] = 0;
	
}

public item_use(id,itemid)
{
	
	callfunc_begin ("item_use","HarbuRPAlpha.amxx");
	callfunc_push_int(id);
	callfunc_push_int(itemid);
	callfunc_end();
	
	return PLUGIN_HANDLED;
	
}

public Float:degtorad(Float:angle)
{
	return angle * PI / 180;
}

public Float:radtodeg(Float:angle)
{
	return angle * 180 / PI;
}

public sayHandle(id)
{

	new buffer[256], strArguments[3][32];

	read_argv(1,buffer,255)
	
	parse(buffer,strArguments[0],31,strArguments[1],31,strArguments[2],31);
	
	if( equali(strArguments[0],"/extinguisher") )
	{
		
		item_use(id,get_cvar_num("rp_item_extinguisher"));
		
		return PLUGIN_HANDLED;
			
	}
	
	return PLUGIN_CONTINUE;
		
}

public effectSmoke(spriteindex,origin[])
{
	
	message_begin(MSG_BROADCAST,SVC_TEMPENTITY);
	write_byte(5);
	write_coord(origin[0]); 
	write_coord(origin[1]); 
	write_coord(origin[2]);
	write_short(spriteindex);
	write_byte(10);
	write_byte(15);
	message_end();
	
	return PLUGIN_HANDLED;
		
}

public effectSmokeCloud(spriteindex,spritecount,origin[])
{

	for( new i = 0; i < spritecount; i++ )
	{
		
		new Float:fsmokeOrigin[3];
				
		fsmokeOrigin[0] = float(origin[0]);
		fsmokeOrigin[1] = float(origin[1]);
		fsmokeOrigin[2] = float(origin[2]+random_num(-90,50));
				
		new smokeDistance = random_num(10,60);
		
		new angle = random_num(0,360);
		
		fsmokeOrigin[0] += cosTable[angle] * smokeDistance;
		fsmokeOrigin[1] += sinTable[angle] * smokeDistance;
				
		new smokeOrigin[3];
				
		FVecIVec(fsmokeOrigin,smokeOrigin);
		
		effectSmoke(spriteindex,smokeOrigin);
		
	}
	
	return PLUGIN_HANDLED;
		
}

public removeFlame(id)
{

	emit_sound(gFlames[id][FLAME_INDEX_INDEX],CHAN_AUTO,Burning_Sound,1.0,ATTN_NORM,SOUND_STOP,PITCH_NORM);
	
	if( is_valid_ent(gFlames[id][FLAME_INDEX_INDEX]) )
	{
	
		remove_entity(gFlames[id][FLAME_INDEX_INDEX]);
		gFlames[id][FLAME_INDEX_INDEX] = 0;
			
	}
	
	return PLUGIN_HANDLED;
		
}

public getFlameCount()
{

	new flameCount = 0;
	
	for( new i = 0; i < MAX_FLAMES; i++ )
	{
	
		if( is_valid_ent(gFlames[i][FLAME_INDEX_INDEX]) ) flameCount += 1;
			
	}
	
	return flameCount;
		
}

public findFreeFlame()
{

	for( new i = 0; i < MAX_FLAMES; i++ )
	{
	
		if( !is_valid_ent(gFlames[i][FLAME_INDEX_INDEX]) ) return i;
			
	}
	
	return -1;
		
}

public timer()
{

	flameEffect();
	flameDamage();
	flameSpread();
	
	new player[32], playerCount;
	get_players(player,playerCount,"ac");
	
	for( new i = 0; i < playerCount; i++ )
	{
	
		gPlayerLastExtinguish[player[i]] -= 1;
		
		if( gPlayerLastExtinguish[player[i]] < 0 ) gPlayerLastExtinguish[player[i]] = 0;
			
	}
	
	return PLUGIN_HANDLED;
		
}

public flameEffect()
{
	
	for( new i = 0; i < MAX_FLAMES; i++ )
	{
			
		if( is_valid_ent(gFlames[i][FLAME_INDEX_INDEX]) )
		{	
		
			gFlames[i][FLAME_INDEX_SMOKE] -= 1;
			
			if( gFlames[i][FLAME_INDEX_SMOKE] <= 0 )
			{
			
				gFlames[i][FLAME_INDEX_SMOKE] = random_num(5,10);
			
				new entOrigin[3];
				new Float:fentOrigin[3];
					
				entity_get_vector(gFlames[i][FLAME_INDEX_INDEX],EV_VEC_origin,fentOrigin);
				
				FVecIVec(fentOrigin,entOrigin);
				
				effectSmokeCloud(smoke,random_num(1,5),entOrigin);
			
			}
			
		}
		
	}
	
	return PLUGIN_HANDLED;
	
}

public flameSpread()
{
	
	for( new i = 0; i < MAX_FLAMES; i++ )
	{
			
		if( is_valid_ent(gFlames[i][FLAME_INDEX_INDEX]) )
		{

			gFlames[i][FLAME_INDEX_SPREAD] -= 1;
				
			if( getFlameCount() >= get_cvar_num("fire_max_flames") || getFlameCount() >= MAX_FLAMES )
			{
						
				gFlames[i][FLAME_INDEX_SPREAD] = 1;
						
			}
			else if( gFlames[i][FLAME_INDEX_SPREAD] == 0 )
			{
		
				new Float:entPosition[3];
		
				entity_get_vector(gFlames[i][FLAME_INDEX_INDEX],EV_VEC_origin,entPosition);
					
				new entDistance = random_num(40,120);
				new angle = random_num(0,360);
		
				entPosition[0] += cosTable[angle] * entDistance;
				entPosition[1] += sinTable[angle] * entDistance;
					
				if( PointContents(entPosition) == CONTENTS_EMPTY )
				{
		
					new newPosition[3];
			
					FVecIVec(entPosition,newPosition);
						
					drop_fire(newPosition);

				}
				else
				{
					
					gFlames[i][FLAME_INDEX_SPREAD] = 1;
							
				}
					
			}
				
			if ( gFlames[i][FLAME_INDEX_SPREAD] < -1 ) gFlames[i][FLAME_INDEX_SPREAD] = -1;
			
			gFlames[i][FLAME_INDEX_LIFETIME] -= 1;
				
			if( gFlames[i][FLAME_INDEX_LIFETIME] <= 0 || gFlames[i][FLAME_INDEX_HEALTH] <= 0 )
			{

				removeFlame(i);
				
			}
			
		}
		
	}
	
	return PLUGIN_HANDLED;
	
}

public flameDamage()
{

	new player[32], playerCount;
	get_players(player,playerCount,"ac");
	
	new bool:playerInjured[32];
	
	for( new i = 0; i < MAX_FLAMES; i++ )
	{
		
		for( new j = 0; j < playerCount; j++ )
		{
			
			new playerId = player[j];
			
			new playerOrigin[3];
			get_user_origin(playerId,playerOrigin);
			
			if( is_valid_ent(gFlames[i][FLAME_INDEX_INDEX]) )
			{
			
				new entOrigin[3];
				new Float:fentOrigin[3];
				
				entity_get_vector(gFlames[i][FLAME_INDEX_INDEX],EV_VEC_origin,fentOrigin);
					
				FVecIVec(fentOrigin,entOrigin);
				
				if( !playerInjured[playerId] && get_distance(playerOrigin,entOrigin) <= 100 )
				{
						
					emit_sound(playerId, CHAN_ITEM, Painful_Sound, 1.0, ATTN_NORM, 0, PITCH_NORM);
					
					new playerHealth = get_user_health(playerId);
					
					new playerJob = get_user_job(playerId);
					
					if( playerJob >= mcfdjobs[0] && playerJob <= mcfdjobs[1] )
					{
						playerHealth -= random_num(5,8);
					}
					else
					{
						playerHealth -= random_num(10,15);	
					}
					
					playerInjured[playerId] = true;
					
					fakedamage(playerId,"Fire",float(random_num(10,15)),DAMAGE_BURN);
					
					if( playerHealth <= 0 )
					{
						
						user_silentkill(playerId);
						client_print(playerId,print_chat,"[FireMod] You have burned to death!^n");
						
					}
					else
					{
					
						set_user_health(playerId,playerHealth);
							
					}

				}
				
			}
			
		}
			
	}
	
	return PLUGIN_HANDLED;
		
}

public drop_fire(entOrigin[3])
{

	if( getFlameCount() >= get_cvar_num("fire_max_flames") || getFlameCount() >= MAX_FLAMES ) return -1;
	
	new flameIndex = findFreeFlame();
	
	if( flameIndex < 0 ) return -1;
	
	new entId = create_entity("env_sprite");
	
	if( !entId ) return PLUGIN_HANDLED;
	
	entity_set_string(entId,EV_SZ_classname,"item_fire");
	
	DispatchKeyValue(entId,"spawnflags","1");
	
	entity_set_float(entId,EV_FL_framerate,Sprite_Framerate);
	entity_set_float(entId,EV_FL_scale,Sprite_Scale);
	entity_set_float(entId,EV_FL_renderamt,200.0);
	
	entity_set_float(entId,EV_FL_max_health,99999.0);
	entity_set_float(entId,EV_FL_health,99999.0);
	
	entity_set_int(entId,EV_INT_rendermode,5);

	entity_set_int(entId,EV_INT_solid,SOLID_TRIGGER);
	entity_set_int(entId,EV_INT_movetype,MOVETYPE_NONE);
	
	entity_set_string(entId,EV_SZ_model,Sprite);

	new Float:minBox[3] = { -2.5, -2.5, -2.5 };
	new Float:maxBox[3] = { 2.5, 2.5, -2.5 };
	
	entity_set_size(entId,minBox,maxBox);
	
	new Float:fentOrigin[3];
	IVecFVec(entOrigin,fentOrigin);
	
	entity_set_vector(entId,EV_VEC_origin,fentOrigin);
	
	drop_to_floor(entId);

	entity_get_vector(entId,EV_VEC_origin,fentOrigin);
		
	fentOrigin[2] += Sprite_Offset;
		
	entity_set_vector(entId,EV_VEC_origin,fentOrigin);
	
	DispatchSpawn(entId);
	
	gFlames[flameIndex][FLAME_INDEX_INDEX] = entId;
	gFlames[flameIndex][FLAME_INDEX_HEALTH] = random_num(6,18);
	gFlames[flameIndex][FLAME_INDEX_SPREAD] = random_num(10,20);
	gFlames[flameIndex][FLAME_INDEX_LIFETIME] = random_num(300,600);
	gFlames[flameIndex][FLAME_INDEX_SMOKE] = random_num(5,10);
	
	emit_sound(entId,CHAN_AUTO,Burning_Sound,1.0,ATTN_NORM,0,PITCH_NORM);
	
	return entId;
		
}

/*
public natv_firemod_drop_fire(origin[3])
{

	param_convert(1);
	
	return drop_fire(origin);

}
*/

public admin_entity(id)
{
	
	new strArguments[1][32];
	
	read_argv(1,strArguments[0],31);
	
	new numArguments[1];
	
	numArguments[0] = str_to_num(strArguments[0]);
	
	if( !is_valid_ent(numArguments[0]) )
	{
		
		client_print(id,print_console,"Specified entity is invalid!");
		return PLUGIN_HANDLED;
		
	}
	
	new className[32];
	new target[32], targetName[32];
	
	entity_get_string(numArguments[0],EV_SZ_classname,className,31);
	entity_get_string(numArguments[0],EV_SZ_target,target,31);
	entity_get_string(numArguments[0],EV_SZ_targetname,targetName,31);
	
	client_print(id,print_console,"ID: %i^n",numArguments[0]);
	client_print(id,print_console,"Class: %s^n",className);
	client_print(id,print_console,"Name: %s^n",targetName);
	client_print(id,print_console,"Target: %s^n",target);
	
	return PLUGIN_HANDLED;
		
}

public server_spawnflame()
{

	new strArguments[3][32];
	
	read_argv(1,strArguments[0],31);
	read_argv(2,strArguments[1],31);
	read_argv(3,strArguments[2],31);
	
	if( equali(strArguments[0],"") || equali(strArguments[1],"") || equali(strArguments[2],"") )
	{
	
		server_print("[FireMod] Usage: server_spawnflame <x> <y> <z>^n");
		return PLUGIN_HANDLED;
			
	}
	
	new flameOrigin[3];
	
	flameOrigin[0] = str_to_num(strArguments[0]);
	flameOrigin[1] = str_to_num(strArguments[1]);
	flameOrigin[2] = str_to_num(strArguments[2]);
	
	drop_fire(flameOrigin);
	
	return PLUGIN_HANDLED;
	
}

public admin_createflame(id)
{
	
	if( !(get_user_flags(id) & ADMIN_BAN) )
	{
		
		client_print(id,print_console,"[FireMod] You do not have access to this command!^n");
		return PLUGIN_HANDLED;
		
	}
	
	new strArguments[3][32];
	
	read_argv(1,strArguments[0],31);
	read_argv(2,strArguments[1],31);
	read_argv(3,strArguments[2],31);
	
	if( equali(strArguments[0],"") || equali(strArguments[1],"") || equali(strArguments[2],"") )
	{
	
		client_print(id,print_console,"[FireMod] Usage: amx_createflame <x> <y> <z>^n");
		return PLUGIN_HANDLED;
			
	}
	
	new flameOrigin[3];
	
	flameOrigin[0] = str_to_num(strArguments[0]);
	flameOrigin[1] = str_to_num(strArguments[1]);
	flameOrigin[2] = str_to_num(strArguments[2]);
	
	new entId = drop_fire(flameOrigin);
	
	if( entId > 0 )
	{
	
		client_print(id,print_console,"[FireMod] Created flame successfully!^n");
			
	}
	else
	{
		
		client_print(id,print_console,"[FireMod] Flame creation unsuccessful!^n");
		
	}
	
	return PLUGIN_HANDLED;
	
}

public admin_extinguish(id)
{
	
	if( !(get_user_flags(id) & ADMIN_BAN) )
	{
		
		client_print(id,print_console,"[FireMod] You do not have access to this command!^n");
		return PLUGIN_HANDLED;
		
	}
	
	new entityRemoved;
	
	for( new i = 0; i < MAX_FLAMES; i++ )
	{
		
		if( is_valid_ent(gFlames[i][FLAME_INDEX_INDEX]) )
		{

			removeFlame(i);
				
			entityRemoved += 1;
		
		}
		
	}
	
	client_print(id,print_console,"[FireMod] %i flames extinguished!",entityRemoved);
	
	return PLUGIN_HANDLED;
	
}

public item_fire()
{
	
	new strArguments[1][64];
	
	read_argv(1,strArguments[0],63);
	
	if( equali(strArguments[0],"") ) return PLUGIN_HANDLED;
	
	new numArguments[1];
	
	numArguments[0] = str_to_num(strArguments[0]);
	
	if( !(is_user_connected(numArguments[0]) && is_user_alive(numArguments[0])) ) return PLUGIN_HANDLED;
	
	if( getFlameCount() >= get_cvar_num("fire_max_flames") || getFlameCount() >= MAX_FLAMES )
	{
	
		client_print(numArguments[0],print_chat,"[FireMod] Server has reached maximum allowed flame limit!");
		return PLUGIN_HANDLED;
			
	}
	
	new entOrigin[3];
	get_user_origin(numArguments[0],entOrigin);
	
	new entCount = random_num(1,1);
	
	for( new i = 0; i < entCount; i++ )
	{
		
		new Float:entPosition[3];
		
		IVecFVec(entOrigin,entPosition);
		
		new entDistance = random_num(40,50);
		new angle = random_num(0,360);
		
		entPosition[0] += cosTable[angle] * entDistance;
		entPosition[1] += sinTable[angle] * entDistance;
		
		if( PointContents(entPosition) == CONTENTS_EMPTY )
		{
		
			new newPosition[3];
		
			FVecIVec(entPosition,newPosition);
		
			drop_fire(newPosition);
		
		}
			
	}
	
	return PLUGIN_HANDLED;
	
}

public item_extinguisher()
{
	
	new strArguments[3][64];
	
	read_argv(1,strArguments[0],63);
	read_argv(2,strArguments[1],63);
	read_argv(3,strArguments[2],63);
	
	if( equali(strArguments[0],"") || equali(strArguments[1],"") || equali(strArguments[2],"") ) return PLUGIN_HANDLED;
	
	new numArguments[3];
	
	numArguments[0] = str_to_num(strArguments[0]);
	numArguments[1] = str_to_num(strArguments[1]);
	numArguments[2] = str_to_num(strArguments[2]);
	
	if( !(is_user_connected(numArguments[0]) && is_user_alive(numArguments[0])) ) return PLUGIN_HANDLED;
	
	if( gPlayerLastExtinguish[numArguments[0]] > 0 ) return PLUGIN_HANDLED;
	
	new playerOrigin[3];
	get_user_origin(numArguments[0],playerOrigin);
	
	new entityFound = 0;
	
	for( new i = 0; i < MAX_FLAMES; i++ )
	{
	
		if( is_valid_ent(gFlames[i][FLAME_INDEX_INDEX]) )
		{

			new Float:fentityOrigin[3];
			entity_get_vector(gFlames[i][FLAME_INDEX_INDEX],EV_VEC_origin,fentityOrigin);
				
			new entityOrigin[3];
			FVecIVec(fentityOrigin,entityOrigin);
				
			if( get_distance(playerOrigin,entityOrigin) <= 140 )
			{

				gFlames[i][FLAME_INDEX_HEALTH] -= numArguments[1];

				entityFound += 1;
					
				effectSmokeCloud(smoke,random_num(3,6),entityOrigin);
					
			}
				
		}
	
	}
	
	if( entityFound <= 0 )
	{
		client_print(numArguments[0],print_chat,"[FireMod] You must be near flames!^n");
	}
	else
	{
		emit_sound(numArguments[0],CHAN_ITEM,Extinguisher_Sound,1.0,ATTN_NORM,0,PITCH_NORM);
		gPlayerLastExtinguish[numArguments[0]] = numArguments[2];
	}
	
	return PLUGIN_HANDLED;
	
}
Can anyone have enough courtesy and generosity to break this down so i can understand it ? The only reason i chose this is because all the future plugins i planned to make will be similar to this, i have tried searching parts up but no results...THANKS ALLLOT TO WHOEVER DOES IT FOR ME...Thank you

Last edited by dongfatt; 07-23-2006 at 22:50.
dongfatt is offline
Xanimos
Veteran Member
Join Date: Apr 2005
Location: Florida
Old 07-23-2006 , 22:50   Re: Beginning to understand*CODING*
Reply With Quote #2

Ummmmm....wtf are supposed to do with this?
Xanimos is offline
Send a message via AIM to Xanimos Send a message via MSN to Xanimos
dongfatt
Member
Join Date: Aug 2005
Old 07-23-2006 , 22:51   Re: Beginning to understand*CODING*
Reply With Quote #3

sorry forgot to ask what to do with it...really sorry.
dongfatt is offline
s p l i t
Senior Member
Join Date: May 2006
Location: US, NC
Old 07-23-2006 , 23:30   Re: Beginning to understand*CODING*
Reply With Quote #4

s p l i t is offline
Send a message via AIM to s p l i t Send a message via MSN to s p l i t
dongfatt
Member
Join Date: Aug 2005
Old 07-23-2006 , 23:49   Re: Beginning to understand*CODING*
Reply With Quote #5

im asking if somone can break it down and explain each part to me...thank you for your reply.
dongfatt is offline
s p l i t
Senior Member
Join Date: May 2006
Location: US, NC
Old 07-23-2006 , 23:51   Re: Beginning to understand*CODING*
Reply With Quote #6

If you are just starting to code then you need to start small and work your way up. The plugin you have posted above is going to be too difficult for a first timer.
s p l i t is offline
Send a message via AIM to s p l i t Send a message via MSN to s p l i t
dongfatt
Member
Join Date: Aug 2005
Old 07-24-2006 , 02:01   Re: Beginning to understand*CODING*
Reply With Quote #7

Code:
public item_fire()
{
	
	new strArguments[1][64];
	
	read_argv(1,strArguments[0],63);
	
	if( equali(strArguments[0],"") ) return PLUGIN_HANDLED;
	
	new numArguments[1];
	
	numArguments[0] = str_to_num(strArguments[0]);
	
	if( !(is_user_connected(numArguments[0]) && is_user_alive(numArguments[0])) ) return PLUGIN_HANDLED;
	
	if( getFlameCount() >= get_cvar_num("fire_max_flames") || getFlameCount() >= MAX_FLAMES )
	{
	
		client_print(numArguments[0],print_chat,"[FireMod] Server has reached maximum allowed flame limit!");
		return PLUGIN_HANDLED;
			
	}
	
	new entOrigin[3];
	get_user_origin(numArguments[0],entOrigin);
	
	new entCount = random_num(1,1);
	
	for( new i = 0; i < entCount; i++ )
	{
		
		new Float:entPosition[3];
		
		IVecFVec(entOrigin,entPosition);
		
		new entDistance = random_num(40,50);
		new angle = random_num(0,360);
		
		entPosition[0] += cosTable[angle] * entDistance;
		entPosition[1] += sinTable[angle] * entDistance;
		
		if( PointContents(entPosition) == CONTENTS_EMPTY )
		{
		
			new newPosition[3];
		
			FVecIVec(entPosition,newPosition);
		
			drop_fire(newPosition);
		
		}
			
	}
	
	return PLUGIN_HANDLED;
	
}
ok this part of the code, this is a item called Fire, you can use this after you type in item_fire <id> in mysql database like anyother RP item, so if please if you can, break this down for me then maybe i can understand how to code items.

-thank you for the reply.

Last edited by dongfatt; 07-24-2006 at 02:15.
dongfatt is offline
dongfatt
Member
Join Date: Aug 2005
Old 07-24-2006 , 03:35   Re: Beginning to understand*CODING*
Reply With Quote #8

thanks alot for your effort and time comsuming work..i really appreciate it.

-thanks for the reply
dongfatt is offline
VEN
Veteran Member
Join Date: Jan 2005
Old 07-24-2006 , 03:40   Re: Beginning to understand*CODING*
Reply With Quote #9

Quote:
Code:
#include        // this module is always running with aamxmodx
This is not a module
VEN is offline
Hawk552
AMX Mod X Moderator
Join Date: Aug 2005
Old 07-24-2006 , 06:43   Re: Beginning to understand*CODING*
Reply With Quote #10

Raphero: Please, never post one of your plugins again. They're insults to everyone with any skill at all.
__________________
Hawk552 is offline
Send a message via AIM to Hawk552
Reply



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 05:10.


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