Raised This Month: $128 Target: $400
 32% 

Blockmaker - Adding Blocks (12 Step) In-Depth | Updated 12/24/2013!


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
GXLZPGX
Veteran Member
Join Date: Sep 2009
Old 12-21-2009 , 01:00   Blockmaker - Adding Blocks (12 Step) In-Depth | Updated 12/24/2013!
Reply With Quote #1

This tutorial assumes you already know the basics of coding, or at least know what it is, and that you have a copy of the original Blockmaker.
Blockmaker v4.01

I suggest using Notepad++ because of the user friendly basic look it has, but you can (obviously) use your favorite coding program.




Step 1

The first step is creating a data holder for the deagle, as shown below.

PHP Code:
#include <amxmodx>
#include <amxmisc>
#include <engine>
#include <fun>
#include <cstrike>
#include <fakemeta>
 
#pragma semicolon 1;
 
#define PLUGIN "blockmaker"
#define VERSION "4.01"
#define AUTHOR "Necro"
#define BM_ADMIN_LEVEL ADMIN_MENU    //admin access level to use this plugin. ADMIN_MENU = flag 'u'
 
new DeagleUsed[33]; 
new DeagleUsed[33]; is the data holder. Typically for player data, there are 33 cells, 32 for the maximum number of players in a server and an extra cell for the data itself.



Step 2


PHP Code:
new const gszBlockModelDefault[] = "models/blockmaker/bm_block_default.mdl";
new const 
gszBlockModelPlatform[] = "models/blockmaker/bm_block_platform.mdl";
new const 
gszBlockModelBhop[] = "models/blockmaker/bm_block_bhop.mdl";
new const 
gszBlockModelDamage[] = "models/blockmaker/bm_block_damage.mdl";
new const 
gszBlockModelHealer[] = "models/blockmaker/bm_block_healer.mdl";
new const 
gszBlockModelInvincibility[] = "models/blockmaker/bm_block_invincibility.mdl";
new const 
gszBlockModelStealth[] = "models/blockmaker/bm_block_stealth.mdl";
new const 
gszBlockModelSpeedBoost[] = "models/blockmaker/bm_block_speedboost.mdl";
new const 
gszBlockModelNoFallDamage[] = "models/blockmaker/bm_block_nofalldamage.mdl";
new const 
gszBlockModelIce[] = "models/blockmaker/bm_block_ice.mdl";
new const 
gszBlockModelDeath[] = "models/blockmaker/bm_block_death.mdl";
new const 
gszBlockModelNuke[] = "models/blockmaker/bm_block_nuke.mdl";
new const 
gszBlockModelCamouflage[] = "models/blockmaker/bm_block_camouflage.mdl";
new const 
gszBlockModelLowGravity[] = "models/blockmaker/bm_block_lowgravity.mdl";
new const 
gszBlockModelFire[] = "models/blockmaker/bm_block_fire.mdl";
new const 
gszBlockModelRandom[] = "models/blockmaker/bm_block_random.mdl";
new const 
gszBlockModelSlap[] = "models/blockmaker/bm_block_slap.mdl";
new const 
gszBlockModelHoney[] = "models/blockmaker/bm_block_honey.mdl";
new const 
gszBlockModelBarrierCT[] = "models/blockmaker/bm_block_barrier_ct.mdl";
new const 
gszBlockModelBarrierT[] = "models/blockmaker/bm_block_barrier_t.mdl";
new const 
gszBlockModelBootsOfSpeed[] = "models/blockmaker/bm_block_bootsofspeed.mdl";
new const 
gszBlockModelGlass[] = "models/blockmaker/bm_block_glass.mdl";
new const 
gszBlockModelBhopNoSlow[] = "models/blockmaker/bm_block_bhop_noslow.mdl";
new const 
gszBlockModelAutoBhop[] = "models/blockmaker/bm_block_autobhop.mdl";
new const 
gszBlockModelDeagle[] = "models/blockmaker/bm_block_default.mdl"
These allocate each constant a model path, that way, if in any further code, we need to define a blocks model path, we remove the need to rinse and repeat.



Step 3


PHP Code:
// block & teleport types
const gBlockMax 25;
new 
gSelectedBlockType[gBlockMax];
new 
gRender[gBlockMax];
new 
gRed[gBlockMax];
new 
gGreen[gBlockMax];
new 
gBlue[gBlockMax];
new 
gAlpha[gBlockMax]; 
What you really want to pay attention to here is "const gBlockMax = 25;." This describes the maximum number of blocks allowed. If you don't change this every time you add a new block, you might get a few errors. Unfortunately, many of those being none that I will help you with because you chose to be oblivious. I suggest you check this integer every time you get an error that you don't understand.



Step 4

(Note that all of the letters you see in this code will differ from yours; I've organized mine and altered the original code, you may do so as well if you'd like.)

PHP Code:
    BM_PLATFORM,        //A
    
BM_BHOP,        //B
    
BM_DAMAGE,        //C
    
BM_HEALER,        //D
    
BM_NOFALLDAMAGE,    //E
    
BM_ICE,            //F
    
BM_TRAMPOLINE,        //G
    
BM_SPEEDBOOST,        //H
    
BM_INVINCIBILITY,    //I
    
BM_STEALTH,        //J
    
BM_DEATH,        //K
    
BM_NUKE,        //L
    
BM_CAMOUFLAGE,        //M
    
BM_LOWGRAVITY,        //N
    
BM_FIRE,        //O
    
BM_SLAP,        //P
    
BM_RANDOM,        //Q
    
BM_HONEY,        //R
    
BM_BARRIER_CT,        //S
    
BM_BARRIER_T,        //T
    
BM_BOOTSOFSPEED,    //U
    
BM_GLASS,        //V
    
BM_BHOP_NOSLOW,        //W
    
BM_AUTO_BHOP,        //X
    
BM_DEAGLE//Y 
The two forward slashes that follow all of these block definitions are comments and render anything after it useless to the server, these are notes for personal use and future reference.



Step 5


(Note again that this has been re-organized by me.)

PHP Code:
    "Platform",
    
"Bunnyhop",
    
"Damage",
    
"Healer",
    
"No Fall Damage",
    
"Ice",
    
"Trampoline",
    
"Speed Boost",
    
"Invincibility",
    
"Stealth",
    
"Death",
    
"Nuke",
    
"Camouflage",
    
"Low Gravity",
    
"Fire",
    
"Slap",
    
"Random",
    
"Honey",
    
"CT Barrier",
    
"T Barrier",
    
"Boots Of Speed",
    
"Glass",
    
"Bunnyhop (No slow down)",
    
"Auto Bunnyhop",
    
"Deagle" 
This is what shows up in the menu, so here we're just adding "Deagle" to the menu.
Note: When editing this, do not forgot to place a comma after the last item in the list to let the plugin know that there is more to the menu. For example, incorrect use:
PHP Code:
"Auto Bunnyhop"
"Deagle" 
correct use:
PHP Code:
"Auto Bunnyhop",
"Deagle" 
Failing to do so will give you a compiling error.



Step 6


PHP Code:
new const gBlockSaveIds[gBlockMax] =
{
    
'A''B''C''D''E''F''G''H''I''J''K''L''M''N''O''P''Q''R''S''T''U''V''W''X''Y' 
This should be in order of Step 4, remember how we made a comment after the Deagle, and we used //Y?
This is in order, look up and down the list we used for the menu (the code before this). A = Platform, B = Bunnyhop, so on so forth. Again, your code will differ from mine, and again, you may organize it. If you've already begun organizing, I suggest you continue to do so.

Note: These ARE case sensitive, so when you're done with capital letters, you can move onto lower case, and then numbers or characters such as [email protected]#$% etc.

Step 7




PHP Code:
    //set block models to defaults
    
gszBlockModels[BM_PLATFORM] = gszBlockModelPlatform;
    
gszBlockModels[BM_BHOP] = gszBlockModelBhop;
    
gszBlockModels[BM_DAMAGE] = gszBlockModelDamage;
    
gszBlockModels[BM_HEALER] = gszBlockModelHealer;
    
gszBlockModels[BM_NOFALLDAMAGE] = gszBlockModelNoFallDamage;
    
gszBlockModels[BM_ICE] = gszBlockModelIce;
    
gszBlockModels[BM_TRAMPOLINE] = gszBlockModelDefault;
    
gszBlockModels[BM_SPEEDBOOST] = gszBlockModelSpeedBoost;
    
gszBlockModels[BM_INVINCIBILITY] = gszBlockModelInvincibility;
    
gszBlockModels[BM_STEALTH] = gszBlockModelStealth;
    
gszBlockModels[BM_DEATH] = gszBlockModelDeath;
    
gszBlockModels[BM_NUKE] = gszBlockModelNuke;
    
gszBlockModels[BM_CAMOUFLAGE] = gszBlockModelCamouflage;
    
gszBlockModels[BM_LOWGRAVITY] = gszBlockModelLowGravity;
    
gszBlockModels[BM_FIRE] = gszBlockModelFire;
    
gszBlockModels[BM_SLAP] = gszBlockModelSlap;
    
gszBlockModels[BM_RANDOM] = gszBlockModelRandom;
    
gszBlockModels[BM_HONEY] = gszBlockModelHoney;
    
gszBlockModels[BM_BARRIER_CT] = gszBlockModelBarrierCT;
    
gszBlockModels[BM_BARRIER_T] = gszBlockModelBarrierT;
    
gszBlockModels[BM_BOOTSOFSPEED] = gszBlockModelBootsOfSpeed;
    
gszBlockModels[BM_GLASS] = gszBlockModelGlass;
    
gszBlockModels[BM_BHOP_NOSLOW] = gszBlockModelBhopNoSlow;
    
gszBlockModels[BM_AUTO_BHOP] = gszBlockModelAutoBhop;
    
gszBlockModels[BM_DEAGLE] = gszBlockModelDeagle
Remember how we defined gszBlockModelDeagle to the model path? This coordinates all of the blocks within Steps 2 and 4, adjust your code to this snippet.



Step 8


PHP Code:
        if (equal(szType"PLATFORM")) blockType BM_PLATFORM;
        else if (
equal(szType"BHOP")) blockType BM_BHOP;
        else if (
equal(szType"DAMAGE")) blockType BM_DAMAGE;
        else if (
equal(szType"HEALER")) blockType BM_HEALER;
        else if (
equal(szType"NOFALLDAMAGE")) blockType BM_NOFALLDAMAGE;
        else if (
equal(szType"ICE")) blockType BM_ICE;
        else if (
equal(szType"TRAMPOLINE")) blockType BM_TRAMPOLINE;
        else if (
equal(szType"SPEEDBOOST")) blockType BM_SPEEDBOOST;
        else if (
equal(szType"INVINCIBILITY")) blockType BM_INVINCIBILITY;
        else if (
equal(szType"STEALTH")) blockType BM_STEALTH;
        else if (
equal(szType"DEATH")) blockType BM_DEATH;
        else if (
equal(szType"NUKE")) blockType BM_NUKE;
        else if (
equal(szType"CAMOUFLAGE")) blockType BM_CAMOUFLAGE;
        else if (
equal(szType"LOWGRAVITY")) blockType BM_LOWGRAVITY;
        else if (
equal(szType"FIRE")) blockType BM_FIRE;
        else if (
equal(szType"SLAP")) blockType BM_SLAP;
        else if (
equal(szType"RANDOM")) blockType BM_RANDOM;
        else if (
equal(szType"HONEY")) blockType BM_HONEY;
        else if (
equal(szType"BARRIER_CT")) blockType BM_BARRIER_CT;
        else if (
equal(szType"BARRIER_T")) blockType BM_BARRIER_T;
        else if (
equal(szType"BOOTSOFSPEED")) blockType BM_BOOTSOFSPEED;
        else if (
equal(szType"GLASS")) blockType BM_GLASS;
        else if (
equal(szType"BHOP_NOSLOW")) blockType BM_BHOP_NOSLOW;
        else if (
equal(szType"AUTO_BHOP")) blockType BM_AUTO_BHOP;
        else if (
equal(szType"DEAGLE")) blockType BM_DEAGLE
All this is saying, is that if the block created is a DEAGLE, give it the properties of BM_DEAGLE.



Step 9


PHP Code:
                        case BM_HEALERactionHeal(id);
                        case 
BM_DAMAGEactionDamage(id);
                        case 
BM_INVINCIBILITYactionInvincible(idfalse);
                        case 
BM_STEALTHactionStealth(idfalse);
                        case 
BM_TRAMPOLINEactionTrampoline(id);
                        case 
BM_SPEEDBOOSTactionSpeedBoost(id);
                        case 
BM_DEATHactionDeath(id);
                        case 
BM_NUKEactionNuke(idfalse);
                        case 
BM_LOWGRAVITYactionLowGravity(id);
                        case 
BM_CAMOUFLAGEactionCamouflage(idfalse);
                        case 
BM_FIREactionFire(ident);
                        case 
BM_SLAPactionSlap(id);
                        case 
BM_RANDOMactionRandom(ident);
                        case 
BM_HONEYactionHoney(id);
                        case 
BM_BOOTSOFSPEEDactionBootsOfSpeed(idfalse);
                        case 
BM_AUTO_BHOPactionAutoBhop(idfalse);
                        case 
BM_DEAGLEactionDeagle(id); 
Now we're coordinating BM_DEAGLE (which we coordinated with the block model path for the deagle block), to an action that will activate once you step on the block.



Step 10


PHP Code:
public eventRoundRestart()
{
    
//iterate through all players
    
for (new id 1id <= 32; ++id)
    {
        
//reset all players timers
        
resetTimers(id);
 
        
DeagleUsed[id] = false;
    }

public eventRoundRestart is just a list of what resets when the round restarts, in the action "actionDeagle(id);", it is set to make "DeagleUsed[id] = true;" which means that you have used a deagle block and you cant use it again, but, since I placed "DeagleUsed[id] = false;" under public eventRoundRestart, it lets the server know at the beginning of each round that I can use the deagle block again.



Step 11


PHP Code:
/***** BLOCK ACTIONS *****/
actionDeagle(id)
{
    if (
is_user_alive(id) && !DeagleUsed[id] && get_user_team(id) == 1)
        {
        
give_item(id"weapon_deagle");
        
cs_set_weapon_ammo(find_ent_by_owner(1"weapon_deagle"id), 1);
        
DeagleUsed[id] = true;
        new 
deaglename[42];
        
get_user_name(iddeaglename32);
        
set_hudmessage(255255255, -1.0, -1.006.04.0);
        
show_hudmessage(0"Be careful CT! %s has a Deagle!"deaglename);
    }
}
actionDamage(id)
{
    if (
halflife_time() >= gfNextDamageTime[id])
    {
        if (
get_user_health(id) > 0)
        {
            new 
Float:amount get_cvar_float("bm_damageamount");
            
fakedamage(id"damage block"amountDMG_CRUSH);
        }
 
        
gfNextDamageTime[id] = halflife_time() + 0.5;
    }

This is what we made BM_DEAGLE refer to when the player steps on the block specified. Most of this is self explanatory, and you may change to fit your needs. This will give the player a deagle with one bullet to use.



Step 12


PHP Code:
                        case 'A'createBlock(0BM_PLATFORMvVec1axissize);
                        case 
'B'createBlock(0BM_BHOPvVec1axissize);
                        case 
'C'createBlock(0BM_DAMAGEvVec1axissize);
                        case 
'D'createBlock(0BM_HEALERvVec1axissize);
                        case 
'E'createBlock(0BM_NOFALLDAMAGEvVec1axissize);
                        case 
'F'createBlock(0BM_ICEvVec1axissize);
                        case 
'G'createBlock(0BM_TRAMPOLINEvVec1axissize);
                        case 
'H'createBlock(0BM_SPEEDBOOSTvVec1axissize);
                        case 
'I'createBlock(0BM_INVINCIBILITYvVec1axissize);
                        case 
'J'createBlock(0BM_STEALTHvVec1axissize);
                        case 
'K'createBlock(0BM_DEATHvVec1axissize);
                        case 
'L'createBlock(0BM_NUKEvVec1axissize);
                        case 
'M'createBlock(0BM_CAMOUFLAGEvVec1axissize);
                        case 
'N'createBlock(0BM_LOWGRAVITYvVec1axissize);
                        case 
'O'createBlock(0BM_FIREvVec1axissize);
                        case 
'P'createBlock(0BM_SLAPvVec1axissize);
                        case 
'Q'createBlock(0BM_RANDOMvVec1axissize);
                        case 
'R'createBlock(0BM_HONEYvVec1axissize);
                        case 
'S'createBlock(0BM_BARRIER_CTvVec1axissize);
                        case 
'T'createBlock(0BM_BARRIER_TvVec1axissize);
                        case 
'U'createBlock(0BM_BOOTSOFSPEEDvVec1axissize);
                        case 
'V'createBlock(0BM_GLASSvVec1axissize);
                        case 
'W'createBlock(0BM_BHOP_NOSLOWvVec1axissize);
                        case 
'X'createBlock(0BM_AUTO_BHOPvVec1axissize);
                        case 
'Y'createBlock(0BM_DEAGLEvVec1axissize); 
Refer to Step 4 and place in the order that you've organized your blocks. This tells the server what block to create when you choose the selected item in the menu.


Other actions for more blocks.

Awp:

PHP Code:
actionAwp(id)
{
    if (
is_user_alive(id) && !AwpUsed[id] && get_user_team(id) == 1)
        {
        
give_item(id"weapon_awp");
        
cs_set_weapon_ammo(find_ent_by_owner(1"weapon_awp"id), 1);
        
AwpUsed[id] = true;
        new 
awpname[42];
        
get_user_name(idawpname32);
        
set_hudmessage(255255255, -1.0, -1.006.04.0);
        
show_hudmessage(0"Be careful CT! %s has a awp!"awpname);
    }

Damage Bhop:

PHP Code:
action_DMGBhop(ident)
{
    if ( 
get_gametime() >= gfDmgBhopNextUse[id] )
        {
            new 
fDamage 10;
            
fakedamage(id"Damage block"fDamageDMG_CRUSH);
 
            
gfDmgBhopNextUse[id] = get_gametime() + 0.5;
 
            if ( !
task_exists(TASK_SOLIDNOT ent) && !task_exists(TASK_SOLID ent) )
            {
            
set_task(0.1"task_SolidNot"TASK_SOLIDNOT ent);
            }
        }

Frost Grenade:

PHP Code:
actionFrostGrenade(idOverrideTimer)
{
    
//get game time
    
new Float:fTime halflife_time();
 
    
//make sure player is alive
    
if (fTime >= gfFrostGrenadeNextUse[id] || OverrideTimer)
    {
        if ( 
get_user_team id ) == )
        {
        
give_item(id"weapon_smokegrenade");
        }
 
        
//set the time when player can use frost grenade again
        
gfFrostNextUse[id] = fTime get_cvar_float("bm_frostgrenadecooldown");
 
        
//setup hud message to show who nuked what team
        
set_hudmessage(2552550, -1.00.3506.010.01.01.0);
 
    }
    else
    {
        
set_hudmessage(gHudRedgHudGreengHudBluegfTextXgfTextYgHudEffectsgfHudFxTimegfHudHoldTimegfHudFadeInTimegfHudFadeOutTimegHudChannel);
        
show_hudmessage(id"FROSTNADE BLOCK NEXT USE AFTER 1 ROUND"gfFrostNextUse[id] - fTime);
    }

Flash Grenade:

PHP Code:
actionFlashGrenade(idOverrideTimer)
{
    
//get game time
    
new Float:fTime halflife_time();
 
    
//make sure player is alive
    
if (fTime >= gfFlashGrenadeNextUse[id] || OverrideTimer)
    {
        
give_item(id"weapon_flashbang");
        {
            
//omg
        
}
 
        
//set the time when player can use flash grenade again
        
gfFlashNextUse[id] = fTime get_cvar_float("bm_flashgrenadecooldown");
 
        
//setup hud message to show who nuked what team
        
set_hudmessage(2552550, -1.00.3506.010.01.01.0);
 
    }
    else
    {
        
set_hudmessage(gHudRedgHudGreengHudBluegfTextXgfTextYgHudEffectsgfHudFxTimegfHudHoldTimegfHudFadeInTimegfHudFadeOutTimegHudChannel);
        
show_hudmessage(id"FLASH BLOCK NEXT USE AFTER 1 ROUND"gfFlashNextUse[id] - fTime);
    }

He Grenade:


PHP Code:
actionHeGrenade(idOverrideTimer)
{
    
//get game time
    
new Float:fTime halflife_time();
 
    
//make sure player is alive
    
if (fTime >= gfHENextUse[id] || OverrideTimer)
    {
        
//ID HE
        
give_item(id"weapon_hegrenade");
        {
            
//omg
        
}
 
        
//set the time when the player can use the nuke again (someone might have been invincible)
        
gfHENextUse[id] = fTime get_cvar_float("bm_hecooldown");
 
        
//setup hud message to show who nuked what team
        
set_hudmessage(2552550, -1.00.3506.010.01.01.0);
 
    }
    else
    {
        
set_hudmessage(gHudRedgHudGreengHudBluegfTextXgfTextYgHudEffectsgfHudFxTimegfHudHoldTimegfHudFadeInTimegfHudFadeOutTimegHudChannel);
        
show_hudmessage(id"NEXT USE AFTER 1 ROUND"gfHENextUse[id] - fTime);
    }

Money:

PHP Code:
actionMoney(idOverrideTimer)
{
    
//get game time
    
new Float:fTime halflife_time();
 
    
//make sure player is alive
    
if (fTime >= gfMoneyNextUse[id] || OverrideTimer)
    {
        
cs_set_user_money(idcs_get_user_money (id) + 5000) ;
        {
            
//omg
        
}
 
        
//set the time when the player can use the nuke again (someone might have been invincible)
        
gfMoneyNextUse[id] = fTime get_cvar_float("bm_moneycooldown");
 
        
//setup hud message to show who nuked what team
        
set_hudmessage(2552550, -1.00.3506.010.01.01.0);
 
    }
    else
    {
        
set_hudmessage(gHudRedgHudGreengHudBluegfTextXgfTextYgHudEffectsgfHudFxTimegfHudHoldTimegfHudFadeInTimegfHudFadeOutTimegHudChannel);
        
show_hudmessage(id"MONEY NEXT USE AFTER 1 ROUND"gfMoneyNextUse[id] - fTime);
    }

Low Trampoline:

PHP Code:
actionLowTrampoline(id)
{
    
//if trampoline timeout has exceeded (needed to prevent velocity being given multiple times)
    
if (halflife_time() >= gfTrampolineTimeout[id])
    {
        new 
Float:velocity[3];
 
        
//set player Z velocity to make player bounce
        
entity_get_vector(idEV_VEC_velocityvelocity);
        
velocity[2] = 250.0;                    //jump velocity
        
entity_set_vector(idEV_VEC_velocityvelocity);
 
        
entity_set_int(idEV_INT_gaitsequence6);           //play the Jump Animation
 
        
gfTrampolineTimeout[id] = halflife_time() + 0.5;
    }

High Trampoline:

PHP Code:
actionHighTrampoline(id)
{
    
//if trampoline timeout has exceeded (needed to prevent velocity being given multiple times)
    
if (halflife_time() >= gfTrampolineTimeout[id])
    {
        new 
Float:velocity[3];
 
        
//set player Z velocity to make player bounce
        
entity_get_vector(idEV_VEC_velocityvelocity);
        
velocity[2] = 750.0;                    //jump velocity
        
entity_set_vector(idEV_VEC_velocityvelocity);
 
        
entity_set_int(idEV_INT_gaitsequence6);           //play the Jump Animation
 
        
gfTrampolineTimeout[id] = halflife_time() + 0.5;
    }

USP
PHP Code:
actionUsp(id)
{
    if (
is_user_alive(id) && !UspUsed[id] && get_user_team(id) == 1)
        {
        
give_item(id"weapon_usp");
        
cs_set_weapon_ammo(find_ent_by_owner(1"weapon_usp"id), 1);
        
UspUsed[id] = true;
        new 
uspname[42];
        
get_user_name(iduspname32);
        
set_hudmessage(255255255, -1.0, -1.006.04.0);
        
show_hudmessage(0"All CTs Run , %s has a USP !!!!!"uspname);
    }

If you have any other actions for other weapons, just post them and I will add them to this section. Hope this was useful for you guys!
__________________
Currently accepting payment US DOLLARS ONLY for custom plugins, contact me through PM.

Last edited by GXLZPGX; 09-27-2015 at 07:47.
GXLZPGX is offline
NiQu
Veteran Member
Join Date: Nov 2009
Old 12-21-2009 , 01:05   Re: Blockmaker - Adding Blocks (Step-By-Step)
Reply With Quote #2

Great to finally see a tutorial like this out

This will help those who doesnt already now

+K on you.

Damage Bunnyhop Action:

PHP Code:
action_DMGBhop(ident)
{
    if ( 
get_gametime() >= gfDmgBhopNextUse[id] )
        {
            new 
fDamage 10;
            
fakedamage(id"Damage block"fDamageDMG_CRUSH);
        
            
gfDmgBhopNextUse[id] = get_gametime() + 0.5;

            if ( !
task_exists(TASK_SOLIDNOT ent) && !task_exists(TASK_SOLID ent) )
            {
            
set_task(0.1"task_SolidNot"TASK_SOLIDNOT ent);
            }
        }



Think this shud work

Last edited by NiQu; 12-21-2009 at 01:11.
NiQu is offline
Arkshine
AMX Mod X Plugin Approver
Join Date: Oct 2005
Old 12-21-2009 , 08:20   Re: Blockmaker - Adding Blocks (Step-By-Step)
Reply With Quote #3

Use this one.
__________________
Arkshine is offline
shuttle_wave
Veteran Member
Join Date: Apr 2009
Location: New Zealand
Old 12-21-2009 , 09:53   Re: Blockmaker - Adding Blocks (Step-By-Step)
Reply With Quote #4

Nice and usefull i was gonna make a tut on how to add blocks but NOw nvm theres a better TUT !! LOL!
Thanks
__________________
JailBreak Mod with Plugin API ( 90% ) Public
shuttle_wave is offline
GXLZPGX
Veteran Member
Join Date: Sep 2009
Old 12-21-2009 , 10:48   Re: Blockmaker - Adding Blocks (Step-By-Step)
Reply With Quote #5

Quote:
Originally Posted by Arkshine View Post
Use this one.
Grrr! But, maybe people just want the old fashion blockmaker with there own code. In my opinion, that link is just pure laziness!
__________________
Currently accepting payment US DOLLARS ONLY for custom plugins, contact me through PM.
GXLZPGX is offline
lolumad
Member
Join Date: Dec 2009
Old 12-21-2009 , 13:28   Re: Blockmaker - Adding Blocks (Step-By-Step)
Reply With Quote #6

can you add HeNade action? but like this, if player already have the he nade and goes to the HeNade block, the action wait he throw the he to give him the new one. Thx, hope u understand
and what is that blockmaker framework? I read and didn't understand :S
__________________
#include < >
#include <>
#include < >

Last edited by lolumad; 12-21-2009 at 13:33.
lolumad is offline
izzle
Senior Member
Join Date: Aug 2009
Old 12-21-2009 , 20:21   Re: Blockmaker - Adding Blocks (Step-By-Step)
Reply With Quote #7

http://forums.alliedmods.net/showthr...915#post810915
__________________
izzle is offline
Old 12-22-2009, 13:55
lolumad
This message has been deleted by Exolent[jNr]. Reason: Don't bump until 2 weeks have passed since last post.
Duff-Girl
Senior Member
Join Date: Feb 2009
Old 12-22-2009 , 19:01   Re: Blockmaker - Adding Blocks (Step-By-Step)
Reply With Quote #8

Nice tutorial do you know how to add blockmaker dimensions to the blocks?

then i mean do you know how to add sizes to blocks then i want to know plz tell me if you know many pepole tryes to figure out how to add sizes. but no one in this forums helps i made some topics but no help..

i give u +karma if u help
__________________
We sure do like blockmaker! :-P
  • I am learning PAWN if there is any tutorials PM me.
  • Im working on a project. plz give me tutorials.
Duff-Girl is offline
GXLZPGX
Veteran Member
Join Date: Sep 2009
Old 12-23-2009 , 00:26   Re: Blockmaker - Adding Blocks (Step-By-Step)
Reply With Quote #9

Quote:
Originally Posted by Duff-Girl View Post
Nice tutorial do you know how to add blockmaker dimensions to the blocks?

then i mean do you know how to add sizes to blocks then i want to know plz tell me if you know many pepole tryes to figure out how to add sizes. but no one in this forums helps i made some topics but no help..

i give u +karma if u help
Such as poles?

Quote:
Originally Posted by izzle View Post
Please do not redirect.. if they didn't like mine they would go search somewhere else.
__________________
Currently accepting payment US DOLLARS ONLY for custom plugins, contact me through PM.
GXLZPGX is offline
Duff-Girl
Senior Member
Join Date: Feb 2009
Old 12-23-2009 , 07:52   Re: Blockmaker - Adding Blocks (Step-By-Step)
Reply With Quote #10

no i mean a normal block. please take a look at this topic then i think you ill understand : http://forums.alliedmods.net/showthread.php?t=95776

i want to add tiny,small,big,large to the models i have made.
__________________
We sure do like blockmaker! :-P
  • I am learning PAWN if there is any tutorials PM me.
  • Im working on a project. plz give me tutorials.
Duff-Girl 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 15:10.


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