diff --git a/plugins/esf/ESF_mod_tutorial.txt b/plugins/esf/ESF_mod_tutorial.txt new file mode 100755 index 00000000..cc24381b --- /dev/null +++ b/plugins/esf/ESF_mod_tutorial.txt @@ -0,0 +1,310 @@ +---------------------- [ ESF modification tutorial version > [ 1.0 ] < ] ---------------------------- +---------------- [ Made by LynX for purpose of attaching it to AMX Mod X documentation ] ------------ +-------------------------------------[ (c) 2005 ] --------------------------------------------------- +-----------------[Credits go to Jinto for originally developing some functions]---------------------- + +----------------------------------------------- +[ Chapter 1 ] -> [ Powerup color modification ] +----------------------------------------------- + +[//////////////////////////////////START//////////////////////////////] + +To modify the powerup color, you need to capture the game message, +then modify it. + +Here is the basic color override plugin example. + +[--------------------------------------Example-------------------------------------] + +#include +#include + +public plugin_init() + +{ + + register_plugin("Powerup modification","final","LynX") + register_message( get_user_msgid( "Powerup" ), "PowerupMessage" ) + + return PLUGIN_CONTINUE + +} + +public PowerupMessage( msgid, dest, pEnt ) + +{ + + set_msg_arg_int( 2, ARG_BYTE, red ); + set_msg_arg_int( 3, ARG_BYTE, green ); + set_msg_arg_int( 4, ARG_BYTE, blue ); + + return PLUGIN_CONTINUE; + +} + +[------------------------------------Example-------------------------------------- ] + +This above would change everyones powerup color to the one you specify. +To get the id of player, use + +[------------------------------------Example-------------------------------------- ] + +new player = get_msg_arg_int(1) + +[------------------------------------Example-------------------------------------- ] + +This concludes the powerup color changing section. + +[///////////////////////////////////END//////////////////////////////////////////// ] + +----------------------------------------------------------------------------------- + + +--------------------------------------------- +[ Chapter 2 ] -> [ Turbo modification ] +--------------------------------------------- + +[ //////////////////////////////////START////////////////////////////////////////// ] + + +To modify Turbo you need to find the turbo entity & change its model/skin. +This all must be in client_PostThink, otherwise, it would change it only when one function is called. + +Here is the basic Turbo color replacement plugin: + +[------------------------------------Example-------------------------------------- ] + +#include +#include +#include +#include + +public plugin_init() + +{ + + register_plugin("Turbo color change","final","LynX") + + return PLUGIN_CONTINUE + +} + +public client_PostThink(id) + +{ + + new entity; + new maxentities = get_global_int(GL_maxEntities); + + for( entity = 1; entity < maxentities; entity++) { + if ( !is_valid_ent( entity ) ) + continue; + + new owner = entity_get_edict( entity, EV_ENT_owner ); + if( owner == id ) { + + new szModel[32]; + entity_get_string( entity, EV_SZ_model, szModel, 31 ); + + if( containi( szModel, "aura" ) != -1 ) { + entity_set_int( entity, EV_INT_skin, SKIN_NUMBER ); // replace skin number with number from 1 to 5 + } + } + } + + return PLUGIN_CONTINUE + +} + +[------------------------------------Example-------------------------------------- ] + +Notice that the SKIN_NUMBER needs to be deleted and replaced with skin number. +Here is the list of skins, use the number to get the right color: + +1 - white +2 - green +3 - purple +4 - red +5 - yellow + +This concludes the turbo color changing section. +::NOTE:: You can set the model or any other stuff of aura since "entity" is the id of +aura when using the code snippet above. +So just use that id when changing something aura related. + +[///////////////////////////////////END//////////////////////////////////////////// ] + +----------------------------------------------------------------------------------- + + + +--------------------------------------------- +[ Chapter 3 ] -> [ Attack charge sprite modification ] +--------------------------------------------- + +[ //////////////////////////////////START////////////////////////////////////////// ] + +To modify attack sprite, use this below. + +[------------------------------------Example-------------------------------------- ] + +#include +#include +#include +#include + +public plugin_init() + +{ + + register_plugin("Attack sprite","final","Lynx") + + return PLUGIN_CONTINUE + +} + +public client_PostThink(id) + +{ + + new ent = find_ent_in_sphere( -1, vOrigin, 64.0 ); + while( ent > 0 ) + + { + + new szModel[32]; + entity_get_string( ent, EV_SZ_model, szModel, 31 ); + if( containi( szModel, "sprites/sprite.spr" ) != -1 ) + + { + + entity_set_model( ent, "sprites/sprite2.spr" ); + + } + + } + + return PLUGIN_CONTINUE + +} + +[------------------------------------Example-------------------------------------- ] + +You need to find the charge sprite of the attack you want to change, then place it except +sprite.spr +If its found, put your charge replacement sprite except of sprite2.spr + +This concludes Attack charge sprite section. + +[///////////////////////////////////END//////////////////////////////////////////// ] + +----------------------------------------------------------------------------------- + +--------------------------------------------- +[ Chapter 4 ] -> [ Attack beam sprite modification ] +--------------------------------------------- + +[ //////////////////////////////////START////////////////////////////////////////// ] + +In this section, the tutorial will show how to change the beam trail, head. start. + +Watch this example: + + +[------------------------------------Example-------------------------------------- ] + +#include +#include +#include +#include + +public plugin_init() + +{ + + register_plugin("Attack modification","final","EncorE_SX") + register_message( get_user_msgid( "EETrail" ), "trail" ); + + return PLUGIN_CONTINUE + +} + +new sprite +new sprite2 + +public trail( id ) + +{ + + new playerID = get_msg_arg_int( 1 ); + + new clip,ammo + + new weapon = get_user_weapon( pid, clip, ammo ) + + if( weapon == WEAPON ) + + { + + set_msg_arg_int( 5, ARG_SHORT, sprite ); // beam start + set_msg_arg_int( 6, ARG_SHORT, sprite ); // beam head + set_msg_arg_int( 7, ARG_SHORT, sprite ); + set_msg_arg_int( 8, ARG_SHORT, sprite2 ); // trail + + return PLUGIN_CONTINUE; + + } + + + return PLUGIN_CONTINUE; + +} + + + +[------------------------------------Example-------------------------------------- ] + +::NOTICE:: This above shows how to check if player has certain attack selected, +and if he has, its changed. If not, its not changed. I'm leaving up to you to find the numbers of +weapons. +Here is just a basic list of attacks. + +[---EXAMPLE---] + +generic beam = 4 +gallit gun = 5 +kamehameha = 6 +finalflash = 15 + +[---EXAMPLE---] + +This concludes the weapon sprite changing tutoiral(s). + +[///////////////////////////////////END//////////////////////////////////////////// ] + +----------------------------------------------------------------------------------- + +--------------------------------------------- +[ Chapter 5 ] -> [ Creating a transformation ] +--------------------------------------------- + +[ //////////////////////////////////START////////////////////////////////////////// ] + +I won't put any snippets here since this is just pure AMXX. +To create a transformation, you need to block ascend button and see if conditions were met to +go in some other transformation. +To create a transformation, simply connect a bunch of set_task's in one chain. +Usefull stuff when creating transformations is "avatar" functions, since +this will allow you wheter is player ascended to that level or no, without extra array. +Then you can use procedures described above. + +This concluded the Create transformation explanation % also concluded the whole tutorial. + +[///////////////////////////////////END//////////////////////////////////////////// ] + +----------------------------------------------------------------------------------- + +In next version of this tutorial there will be more explanations and code snippets, since this +is rushed version for AMX Mod X release. + +---[ LynX ]---