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