Senior Member
Join Date: Jul 2011
Location: Serbia, Nis
|
09-16-2011
, 06:25
need help [API]
|
#1
|
Okay this is my first API but im stuck and i don't know what to do further
INCLUDE FILE
PHP Code:
#if defined _achievements_included #endinput #endif
#define _achievements_included
native register_achievement(const naziv[], const opis[])
Main Plugin File
PHP Code:
#include <amxmodx> #include <cstrike> #include <fakemeta> #include <fun> #include <hamsandwich> #include <nvault>
new killstreak[33] new deathstreak[33] new killstreak_deagle[33] new killstreak_knife[33] new kills[33]
new bool:first_kill[33] new bool:first_death[33] new bool:marine[33] new bool:rambo[33] new bool:killer[33] new bool:looser[33] new bool:senior_member[33] new bool:veteran_member[33]
new g_Vault
public plugin_init() { register_plugin("Achievements", "0.3", "MiloS -.-") g_Vault = nvault_open("Achievements") RegisterHam(Ham_Spawn, "player", "HamSpawn", 1) RegisterHam(Ham_Killed, "player", "HamKilled", 1) register_clcmd("say /a", "Achievements") register_clcmd("say_team /a", "Achievements") register_dictionary("Achievements.txt") }
public plugin_natives() { register_native("register_achievement", "RegisterAchievement") }
public RegisterAchievement(plugin, params) {
public client_putinserver(id) { set_task(10.0, "ShowMarketing", id + 149) }
public Achievements(id) { new cb = menu_makecallback("Achievements_CallBack") new menu = menu_create("Achievements:", "Achievements_Handle") menu_additem(menu, "First Kill", _, _, cb) menu_additem(menu, "First Death", _, _, cb) menu_additem(menu, "Marine", _, _, cb) menu_additem(menu, "Rambo", _, _, cb) menu_additem(menu, "Killer", _, _, cb) menu_additem(menu, "Looser", _, _, cb) menu_additem(menu, "Senior Member", _, _, cb) menu_additem(menu, "Veteran Member", _, _, cb) menu_display(id, menu) }
public Achievements_CallBack(id, menu, item) { if(!first_kill[id] && item == 0 || !first_death[id] && item == 1 || !marine[id] && item == 2 || !rambo[id] && item == 3 || !killer[id] && item == 4 || !looser[id] && item == 5 || !senior_member[id] && item == 6 || !veteran_member[id] && item == 7) { return ITEM_DISABLED } else { return ITEM_ENABLED } return PLUGIN_CONTINUE }
public Achievements_Handle(id, menu, item) { if(item == MENU_EXIT) { menu_destroy(menu) return PLUGIN_HANDLED } menu_display(id, menu) switch(item) { case 0: { client_print(id, print_chat, "[Achievements] %L", id, "FIRST_KILL") } case 1: { client_print(id, print_chat, "[Achievements] %L", id, "FIRST_DEATH") } case 2: { client_print(id, print_chat, "[Achievements] %L", id, "MARINE") client_print(id, print_chat, "[Achievements] %L", id, "MARINE_REWARD") } case 3: { client_print(id, print_chat, "[Achievements] %L", id, "RAMBO") } case 4: { client_print(id, print_chat, "[Achievements] %L", id, "KILLER") client_print(id, print_chat, "[Achievements] %L", id, "KILLER_REWARD") } case 5: { client_print(id, print_chat, "[Achievements] %L", id, "LOOSER") client_print(id, print_chat, "[Achievements] %L", id, "LOOSER_REWARD") } case 6: { client_print(id, print_chat, "[Achievements] %L", id, "SENIOR_MEMBER") client_print(id, print_chat, "[Achievements] %L", id, "SENIOR_MEMBER_REWARD") } case 7: { client_print(id, print_chat, "[Achievements] %L", id, "VETERAN_MEMBER") client_print(id, print_chat, "[Achievements] %L", id, "VETERAN_MEMBER_REWARD") } } return PLUGIN_CONTINUE }
public HamKilled(id, attacker) { if(!is_user_alive(attacker) || !is_user_connected(attacker)) { killstreak[attacker] = 0 killstreak_deagle[attacker] = 0 killstreak_knife[attacker] = 0 return HAM_IGNORED } if(get_user_team(attacker) != get_user_team(id)) { killstreak[attacker] ++ kills[attacker] ++ deathstreak[attacker] = 0 switch(get_user_weapon(attacker)) { case CSW_DEAGLE: { killstreak_deagle[attacker] ++ } case CSW_KNIFE: { killstreak_knife[attacker] ++ } } } if(get_user_team(id) != get_user_team(attacker)) { deathstreak[id] ++ } switch(killstreak[attacker]) { case 1: { first_kill[attacker] = true client_print(attacker, print_chat, "%L", id, "C_FIRST_KILL") SaveData(attacker) } case 10: { killer[attacker] = true client_print(attacker, print_chat, "%L", id, "C_KILLER") SaveData(attacker) } } switch(kills[attacker]) { case 1000: { senior_member[attacker] = true client_print(attacker, print_chat, "%L", id, "C_SENIOR_MEMBER") SaveData(attacker) } case 10000: { veteran_member[attacker] = true client_print(attacker, print_chat, "%L", id, "C_VETERAN_MEMBER") SaveData(attacker) } } switch(killstreak_deagle[attacker]) { case 7: { marine[attacker] = true client_print(attacker, print_chat, "%L", id, "C_MARINE") SaveData(attacker) } } switch(killstreak_knife[attacker]) { case 5: { rambo[attacker] = true client_print(attacker, print_chat, "%L", id, "C_RAMBO") SaveData(attacker) } } switch(deathstreak[id]) { case 1: { first_death[id] = true client_print(attacker, print_chat, "%L", id, "C_FIRST_DEATH") SaveData(id) } case 10: { looser[id] = true client_print(attacker, print_chat, "%L", id, "C_LOOSER") SaveData(id) } } return HAM_IGNORED }
public HamSpawn(id) { if(!is_user_alive(id)) { return HAM_IGNORED } if(marine[id]) { give_item(id, "weapon_deagle") cs_set_user_bpammo(id, CSW_DEAGLE, 35) } if(killer[id]) { set_user_health(id, get_user_health(id) + 5) } if(looser[id]) { set_user_health(id, get_user_health(id) - 3) } return HAM_IGNORED }
public SaveData(id) { new AuthID[35] get_user_authid(id, AuthID, 34) new vaultkey[64], vaultdata[256] format(vaultkey, 63, "%s-Mod", AuthID) format(vaultdata, 255, "%i#%i#%i#%i#%i#%i#%i#", first_kill[id], first_death[id], marine[id], rambo[id], killer[id], looser[id], kills[id]) nvault_set(g_Vault, vaultkey, vaultdata) return PLUGIN_CONTINUE }
public LoadData(id) { new AuthID[35] get_user_authid(id, AuthID, 34) new vaultkey[64], vaultdata[256] format(vaultkey, 63, "%s-Mod", AuthID) format(vaultdata, 255, "%i#%i#%i#%i#%i#%i#%i#", first_kill[id], first_death[id], marine[id], rambo[id], killer[id], looser[id], kills[id]) nvault_get(g_Vault, vaultkey, vaultdata, 255) replace_all(vaultdata, 255, "#", " ") new first_kill_a[32], first_death_a[32], marine_a[32], rambo_a[32], killer_a[32], looser_a[32], kills_a[32] parse(vaultdata, first_kill_a, 31, first_death_a, 31, marine_a, 31, rambo_a, 31, killer_a, 31, looser_a, 31, kills_a, 31) first_kill[id] = str_to_num(first_kill_a) ? false : true first_death[id] = str_to_num(first_death_a) ? false : true marine[id] = str_to_num(marine_a) ? false : true rambo[id] = str_to_num(rambo_a) ? false : true killer[id] = str_to_num(killer_a) ? false : true looser[id] = str_to_num(looser_a) ? false : true kills[id] = str_to_num(kills_a) return PLUGIN_CONTINUE }
public ShowMarketing(id) { id -= 149 client_print(id, print_chat, "[Achievements] %L", id, "MARKETING") }
public client_disconnect(id) { remove_task(id + 149) }
public plugin_end() { nvault_close(g_Vault) }
Side Plugin
PHP Code:
#include <amxmodx> #include <fun> #include <cstrike> #include <hamsandwich> #include <achievements>
new const naziv[] = "Marinac" new const opis[] = "Svake nove runde dobija pun Deagle"
new killstreak_deagle[33]
new bool:marinac[33]
public plugin_init() { register_plugin(naziv, "1.0", "MiloS -.-") register_achievement(naziv, opis) RegisterHam(Ham_Killed, "player", "HamKilled", 1) RegisterHam(Ham_Spawn, "player", "HamSpawn", 1) }
public HamKilled(victim, attacker) { if(!is_user_alive(attacker)) { killstreak_deagle[attacker] = 0 return PLUGIN_HANDLED } if(attacker != victim) { if(get_user_weapon(attacker) == CSW_DEAGLE) { killstreak_deagle[attacker] ++ } } if(get_user_weapon(attacker) == CSW_DEAGLE) { switch(killstreak_deagle[attacker]) { case 10: { client_print(attacker, print_chat, "[Achievements] Cestitamo, dobio si achievement Marinac") marinac[attacker] = true } } } return PLUGIN_CONTINUE }
public HamSpawn(id) { if(marinac[id]) { give_item(id, "weapon_deagle") cs_set_user_bpammo(id, CSW_DEAGLE, 35) } }
I know i'm near, i want to put side achievement plugin into main's plugin menu, and thats where i'm stuck :\
And P.S. Ignore Marine achievement in main plugin, i will delete it
Please HELP OUT!!!
__________________
Sorry about my BAD English
Last edited by Krle; 09-16-2011 at 07:14.
|
|