| asdfdsdf |
11-27-2011 08:28 |
Help with Plugin
hallo im trying to make an achievement plugin for server with help of this tutorial i do everything good but i keep getting errors and how can i make it when they earn achievement they earn points for each achievement here is code
PHP Code:
/* Plugin generated by AMXX-Studio */
#include < amxmodx > #include < csx > #include < achievement_api >
#define PLUGIN "KnifeAch" #define VERSION "1.2" #define AUTHOR "Dieter"
const MaxClients = 32;
const MaxSteamIdChars = 35;
const TaskIdDelayConnect = 3799;
enum _:AchievementDataStruct { _Name[ MaxClients ], _Description[ 256 ], _save_Name[ MaxClients ], _Max_Value };
new const AchievementInfo[ achievementDataStruct ] = { "Rookie", "Kill 10 Enemies With Knife", "progress_rookie", 10 };
new AchievementPointer;
new SteamId[ MaxClients +1 ][ MaxSteamIdchars ];
new KnifeKills[ MaxClients +1 ];
new MaxPlayers;
public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR); AchievementPointer = RegisterAchievement( AchievementInfo[ _Name ], AchievementInfo[ _Description ], AchievementInfo[ _Save_Name ], AchievementInfo[ _Max_Value ] ); MaxPlayers = get_maxplayers( ); }
public client_connec( Client ) { set_task( 10.0, "TaskDelayConnect", Client + TaskIdDelayConnect ); }
public TaskDelayConnect( TaskId ) { new Client = TaskId - TaskIdDelayConnect; get_user_authid( Client, SteamId[ Client ],charsmax[ SteamId ) ); KnifeKills[ Client ] = GetAchievementData( SteamId[ Client ] /* our key */, AchievementInfo[ _Save_Name ] /* save name for achievement (declared in the array) */ ); if( GetClientAchievementStatus( AchievementPointer, KnifeKills[ Client ] ) == _In_Progress ) { SetAchievementData ( SteamId[ Client ] /* our key */, AchievementInfo[ _Save_Name ] /* save name for achievement */, KnifeKills[ Client ] /* data */ ); } else { ClientAchievementCompleted( Client, AchievementPointer, .Announce = false ); } remove_task( Client + TaskDelayConnect ); }
public client_disconnect( Client ) { KnifeKills[ Client ] = 0; }
public client_death( Killer, victim, WeaponIndex, HitPlace, TeamKill ) { if( 1 <= Victim <= MaxPlayers && 1 <= Killer <= MaxPlayers ) { if( Victim != Killer ) { if( WeaponIndex == CSW_KNIFE ) { KnifeKills[ Killer ]++; SetAchievementData( SteamId[ Killer ] /* our key */, AchievementInfo[ _Save_Name ] /* save name for achievement */, KnifeKills[ Killer ] /* data */ ); if( GetClientAchievementStatus( AchievementPointer, KnifeKills[ Killer ] ) == _In_Progress ) { ClientAchievementCompleted( Killer, AchievementPointer, .Announce = true ); // true is default, but just to clarify } } } } }
public Forward_ClientEarnedAchievement( const AchiPointer, const Client ) // called when client earned the achievement { if( AchiPointer == AchievementPointer ) { // this forward can be used to reward people stuff // perhaps a model or just something extra (like ie. cash from cashmod, pointsystem etc.) } }
i did this one just like the tutorial but not with grenade kills with knifekills instead what did i do wrong keep getting errors can someone help me with this also how to add points to each achievement thx
|