Code: Select all
#include <amxmodx>#include <cstrike>#include <sqlx>#include <rcsgo> enum Color{ NORMAL = 1, // clients scr_concolor cvar color GREEN, // Green Color TEAM_COLOR, // Red, grey, blue GREY, // grey RED, // Red BLUE, // Blue} new TeamName[][] = { "", "TERRORIST", "CT", "SPECTATOR"} new Host[] = ""new User[] = "new Pass[] = "new Db[] = "" new Handle:g_SqlTuplenew g_Error[512] enum _:Achieves // Define the available Achievements, dont forget commas{ MURDER, // Done SURVIVOR, // Done AIMKEY, // Done EXECUTION, // Done ONEHPHERO, // Done HATTRICK, AK_DILETANTAS, AK_MEG, AK_PROF, M4A1_PRAD, M4A1_MEG, M4A1_PROF, DEAGLE_PRAD, DEAGLE_MEG, DEAGLE_PROF, KNIFE_PRAD, KNIFE_MEG, KNIFE_PROF, AWP_PRAD, AWP_MEG, AWP_PROF } new const AchName[Achieves][] = // Define the Achievements Names, dont forget commas{ "Karo Dievas", "Išgyventojas", "Aimas", "Ace", "1 HP Didvyris", "3 Iš eilės", "AK pradininkas", "AK mėgėjas", "AK profesionalas", "M4A1 pradininkas", "M4A1 mėgėjas", "M4A1 profesionalas", "DEAGLE pradininkas", "DEAGLE mėgėjas", "DEAGLE profesionalas", "KNIFE pradininkas", "KNIFE mėgėjas", "KNIFE profesionalas", "AWP pradininkas", "AWP mėgėjas", "AWP profesionalas"} new const AchDescription[Achieves][] = // Define the Achievements Description, dont forget commas{ "Nužudyk 500 priešų", "Išgyvenk 250 raundų", "Padaryk 125 HS", "Padaryk ACE", "Nužudyk 5 priešus su 1 HP", "Padaryk 3 HS iš eilės", "Nužudyk 100 priešų su AK47", "Nužudyk 500 priešų su AK47", "Nužudyk 1000 priešų su AK47", "Nužudyk 100 priešų su M4A1", "Nužudyk 500 priešų su M4A1", "Nužudyk 1000 priešų su M4A1", "Nužudyk 100 priešų su DEAGLE", "Nužudyk 500 priešų su DEAGLE", "Nužudyk 1000 priešų su DEAGLE", "Nužudyk 15 priešų su KNIFE", "Nužudyk 50 priešų su KNIFE", "Nužudyk 100 priešų su KNIFE", "Nužudyk 100 priešų su AWP", "Nužudyk 500 priešų su AWP", "Nužudyk 1000 priešų su AWP"} new const AchRequirement[Achieves] = // Define Requirements. For non progress achievements use 1 (Like Secret Phrase), dont forget commas{ 500, 250, 125, 5, 5, 3, 100, 500, 1000, 100, 500, 1000, 100, 500, 1000, 15, 50, 100, 100, 500, 1000 } new const AchPTS[Achieves] = // Define Requirements. For non progress achievements use 1 (Like Secret Phrase), dont forget commas{ 1000, 1000, 1000, 500, 2000, 500, 500, 2500, 8000, 500, 2500, 8000, 500, 2500, 8000, 500, 2500, 8000, 500, 2500, 8000 } new const prefix[] = "[AK-47.LT]" new Achievement[33][Achieves]new szTemp[555 char] public plugin_init() { register_plugin("Achievements", "5.0", "fLaXXiE") register_event("DeathMsg", "Event_DeathMsg", "a") register_logevent("EventRoundStart", 2, "1=Round_Start") register_logevent( "Event_Roundend", 2, "1=Round_End" ); register_concmd("pasiekimai", "CmdAch"); register_clcmd("say /achievements", "CmdAch") register_clcmd("say /ach", "CmdAch") register_clcmd("say /a", "CmdAch") set_task(1.0, "MySql_Init")} public client_putinserver(iPlayer) Load_MySql(iPlayer) public client_disconnected(iPlayer){ Save_MySql(iPlayer)} public plugin_end() SQL_FreeHandle(g_SqlTuple) public CmdAch(iPlayer) { new g_AchMenu = menu_create("\wPasiekimai", "Achievements_Handler") new Key[6] for(new iAch = 0; iAch < Achieves; iAch++) { if(Achievement[iPlayer][iAch] == 0) formatex(szTemp, charsmax(szTemp), "\d%s - [%d/%d]", AchName[iAch], Achievement[iPlayer][iAch], AchRequirement[iAch]) else if(Achievement[iPlayer][iAch] >= AchRequirement[iAch]) formatex(szTemp, charsmax(szTemp), "\y%s \w- [\rĮVYKDYTAS\w]", AchName[iAch]) else formatex(szTemp, charsmax(szTemp), "\y%s \w- [\r%d\w/\r%d\w]", AchName[iAch], Achievement[iPlayer][iAch], AchRequirement[iAch]) menu_additem(g_AchMenu, szTemp, Key) } menu_setprop(g_AchMenu, MPROP_EXIT, MEXIT_ALL) menu_display(iPlayer, g_AchMenu, 0) } public Achievements_Handler(iPlayer, g_AchMenu, item) { if(item == MENU_EXIT) { menu_destroy(g_AchMenu) return PLUGIN_HANDLED } else { if(Achievement[iPlayer][item] >= AchRequirement[item]) { ColorChat(iPlayer, GREEN, "AK-47.LT: ^4Pasiekimas ^3ĮVYKDYTAS") CmdAch(iPlayer); } else { ColorChat(iPlayer, RED, "AK-47.LT: ^4%s ir ^3laimėk ^4%d ^3taškų", AchDescription[item], AchPTS[item]) CmdAch(iPlayer); } } return PLUGIN_CONTINUE } //////////////////////////////////////////////////////////// START OF ACHIEVEMENT ACTIONS /////////////////////////////////////////////////////////////// public Event_DeathMsg(){ new iKiller = read_data(1) new iVictim = read_data(2) new WeaponName[32] read_data(4, WeaponName, charsmax(WeaponName)) new szName[33]; get_user_name(iKiller, szName, charsmax(szName)) if(is_user_alive(iKiller) && get_user_team(iKiller) != get_user_team(iVictim)) { Achievement[iKiller][EXECUTION]++ if(Achievement[iKiller][EXECUTION] == AchRequirement[EXECUTION]) { ColorChat(0, RED, "%s ^4%s ^1Sėkmingai atrakino ^4%s ^1pasiekimą ir gavo^3 500 ^1taškų!", prefix,szName,AchName[EXECUTION]) set_user_points(iKiller, get_user_points(iKiller) + 500); } if(is_user_alive(iKiller) && get_user_team(iKiller) != get_user_team(iVictim)) { Achievement[iKiller][MURDER]++ if(Achievement[iKiller][MURDER] == AchRequirement[MURDER]) { ColorChat(0, RED, "%s ^4%s ^1Sėkmingai atrakino ^4%s ^1pasiekimą ir gavo^3 1000^1taškų!",prefix,szName,AchName[MURDER]) set_user_points(iKiller, get_user_points(iKiller) + 1000); } } if(get_user_health(iKiller) == 1) { Achievement[iKiller][ONEHPHERO]++ if(Achievement[iKiller][ONEHPHERO] == AchRequirement[ONEHPHERO]) { ColorChat(0, RED, "%s ^4%s ^1Sėkmingai atrakino ^4%s ^1pasiekimą ir gavo^3 2000 ^1taškų!", prefix, szName, AchName[ONEHPHERO]) set_user_points(iKiller, get_user_points(iKiller) + 2000); } } if(read_data(3)) { Achievement[iKiller][AIMKEY]++ if(Achievement[iKiller][AIMKEY] == AchRequirement[AIMKEY]) { ColorChat(0, RED, "%s ^4%s ^1Sėkmingai atrakino ^4%s ^1pasiekimą ir gavo^3 1000 ^1taškų!", prefix, szName, AchName[AIMKEY]) set_user_points(iKiller, get_user_points(iKiller) + 1000); } if( ++Achievement[iKiller][HATTRICK] == AchRequirement[HATTRICK] ) { ColorChat(0, RED, "%s ^4%s ^1Sėkmingai atrakino ^4%s ^1pasiekimą ir gavo^3 500 ^1taškų!", prefix, szName, AchName[HATTRICK]) set_user_points(iKiller, get_user_points(iKiller) + 500); } } if(equali(WeaponName, "ak47")) { Achievement[iKiller][AK_DILETANTAS]++ if(Achievement[iKiller][AK_DILETANTAS] == AchRequirement[AK_DILETANTAS]) { ColorChat(0, RED, "%s ^4%s ^1Sėkmingai atrakino ^4%s ^1pasiekimą ir gavo^3 500 ^1taškų!", prefix, szName, AchName[AK_DILETANTAS]) set_user_points(iKiller, get_user_points(iKiller) + 500); } Achievement[iKiller][AK_MEG]++ if(Achievement[iKiller][AK_MEG] == AchRequirement[AK_MEG]) { ColorChat(0, RED, "%s ^4%s ^1Sėkmingai atrakino ^4%s ^1pasiekimą ir gavo^3 2500 ^1taškų!", prefix, szName, AchName[AK_MEG]) set_user_points(iKiller, get_user_points(iKiller) + 2500); } Achievement[iKiller][AK_PROF]++ if(Achievement[iKiller][AK_PROF] == AchRequirement[AK_PROF]) { ColorChat(0, RED, "%s ^4%s ^1Sėkmingai atrakino ^4%s ^1pasiekimą ir gavo^3 5000 ^1taškų!", prefix, szName, AchName[AK_PROF]) set_user_points(iKiller, get_user_points(iKiller) + 5000); } } if(equali(WeaponName, "m4a1")) { Achievement[iKiller][M4A1_PRAD]++ if(Achievement[iKiller][M4A1_PRAD] == AchRequirement[M4A1_PRAD]) { ColorChat(0, RED, "%s ^4%s ^1Sėkmingai atrakino ^4%s ^1pasiekimą ir gavo^3 500 ^1taškų!", prefix, szName, AchName[M4A1_PRAD]) set_user_points(iKiller, get_user_points(iKiller) + 500); } Achievement[iKiller][M4A1_MEG]++ if(Achievement[iKiller][M4A1_MEG] == AchRequirement[M4A1_MEG]) { ColorChat(0, RED, "%s ^4%s ^1Sėkmingai atrakino ^4%s ^1pasiekimą ir gavo^3 2500 ^1taškų!", prefix, szName, AchName[M4A1_MEG]) set_user_points(iKiller, get_user_points(iKiller) + 2500); } Achievement[iKiller][M4A1_PROF]++ if(Achievement[iKiller][M4A1_PROF] == AchRequirement[M4A1_PROF]) { ColorChat(0, RED, "%s ^4%s ^1Sėkmingai atrakino ^4%s ^1pasiekimą ir gavo^3 5000 ^1taškų!", prefix, szName, AchName[M4A1_PROF]) set_user_points(iKiller, get_user_points(iKiller) + 5000); } } if(equali(WeaponName, "deagle")) { Achievement[iKiller][DEAGLE_PRAD]++ if(Achievement[iKiller][DEAGLE_PRAD] == AchRequirement[DEAGLE_PRAD]) { ColorChat(0, RED, "%s ^4%s ^1Sėkmingai atrakino ^4%s ^1pasiekimą ir gavo^3 500 ^1taškų!", prefix, szName, AchName[DEAGLE_PRAD]) set_user_points(iKiller, get_user_points(iKiller) + 500); } Achievement[iKiller][DEAGLE_MEG]++ if(Achievement[iKiller][DEAGLE_MEG] == AchRequirement[DEAGLE_MEG]) { ColorChat(0, RED, "%s ^4%s ^1Sėkmingai atrakino ^4%s ^1pasiekimą ir gavo^3 2500 ^1taškų!", prefix, szName, AchName[DEAGLE_MEG]) set_user_points(iKiller, get_user_points(iKiller) + 2500); } Achievement[iKiller][DEAGLE_PROF]++ if(Achievement[iKiller][DEAGLE_PROF] == AchRequirement[DEAGLE_PROF]) { ColorChat(0, RED, "%s ^4%s ^1Sėkmingai atrakino ^4%s ^1pasiekimą ir gavo^3 5000 ^1taškų!", prefix, szName, AchName[DEAGLE_PROF]) set_user_points(iKiller, get_user_points(iKiller) + 5000); } } if(equali(WeaponName, "knife")) { Achievement[iKiller][KNIFE_PRAD]++ if(Achievement[iKiller][KNIFE_PRAD] == AchRequirement[KNIFE_PRAD]) { ColorChat(0, RED, "%s ^4%s ^1Sėkmingai atrakino ^4%s ^1pasiekimą ir gavo^3 500 ^1taškų!", prefix, szName, AchName[KNIFE_PRAD]) set_user_points(iKiller, get_user_points(iKiller) + 500); } Achievement[iKiller][KNIFE_MEG]++ if(Achievement[iKiller][KNIFE_MEG] == AchRequirement[KNIFE_MEG]) { ColorChat(0, RED, "%s ^4%s ^1Sėkmingai atrakino ^4%s ^1pasiekimą ir gavo^3 2500 ^1taškų!", prefix, szName, AchName[KNIFE_MEG]) set_user_points(iKiller, get_user_points(iKiller) + 2500); } Achievement[iKiller][KNIFE_PROF]++ if(Achievement[iKiller][KNIFE_PROF] == AchRequirement[KNIFE_PROF]) { ColorChat(0, RED, "%s ^4%s ^1Sėkmingai atrakino ^4%s ^1pasiekimą ir gavo^3 5000 ^1taškų!", prefix, szName, AchName[KNIFE_PROF]) set_user_points(iKiller, get_user_points(iKiller) + 5000); } } if(equali(WeaponName, "awp")) { Achievement[iKiller][AWP_PRAD]++ if(Achievement[iKiller][AWP_PRAD] == AchRequirement[AWP_PRAD]) { ColorChat(0, RED, "%s ^4%s ^1Sėkmingai atrakino ^4%s ^1pasiekimą ir gavo^3 500 ^1taškų!", prefix, szName, AchName[AWP_PRAD]) set_user_points(iKiller, get_user_points(iKiller) + 500); } Achievement[iKiller][AWP_MEG]++ if(Achievement[iKiller][AWP_MEG] == AchRequirement[AWP_MEG]) { ColorChat(0, RED, "%s ^4%s ^1Sėkmingai atrakino ^4%s ^1pasiekimą ir gavo^3 2500 ^1taškų!", prefix, szName, AchName[AWP_MEG]) set_user_points(iKiller, get_user_points(iKiller) + 2500); } Achievement[iKiller][AWP_PROF]++ if(Achievement[iKiller][AWP_PROF] == AchRequirement[AWP_PROF]) { ColorChat(0, RED, "%s ^4%s ^1Sėkmingai atrakino ^4%s ^1pasiekimą ir gavo^3 5000 ^1taškų!", prefix, szName, AchName[AWP_PROF]) set_user_points(iKiller, get_user_points(iKiller) + 5000); } } } return PLUGIN_CONTINUE} public EventRoundStart(){ new iPlayers[32], iNum, iPlayer, szName[33] get_players(iPlayers, iNum, "a") for(new i = 0; i < iNum; i++) { iPlayer = iPlayers[i] get_user_name(iPlayer, szName, charsmax(szName)) if(Achievement[iPlayer][EXECUTION] < 5) Achievement[iPlayer][EXECUTION] = 0 } return PLUGIN_CONTINUE} public Event_Roundend() { new iPlayers[32], iNum, iPlayer, szName[33] get_players(iPlayers, iNum, "a") for(new i = 0; i < iNum; i++) { iPlayer = iPlayers[i] get_user_name(iPlayer, szName, charsmax(szName)) if(is_user_alive(iPlayer)) { Achievement[iPlayer][SURVIVOR]++ if(Achievement[iPlayer][SURVIVOR] == AchRequirement[SURVIVOR]) { ColorChat(0, RED, "%s ^4%s ^1Sėkmingai atrakino ^4%s ^1pasiekimą ir gavo^3 1000 ^1taškų!", prefix, szName, AchName[SURVIVOR]) set_user_points(iPlayer, get_user_points(iPlayer) + 1000); } } } Save_MySql(iPlayer) return PLUGIN_CONTINUE} ///////////////////////////////////////////////////////////// END OF ACHIEVEMENT ACTIONS //////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////// START OF ACHIEVEMENT SAVING //////////////////////////////////////////////////////////////// public MySql_Init(){ g_SqlTuple = SQL_MakeDbTuple(Host,User,Pass,Db) new ErrorCode,Handle:SqlConnection = SQL_Connect(g_SqlTuple,ErrorCode,g_Error,charsmax(g_Error)) if(SqlConnection == Empty_Handle) set_fail_state(g_Error) new Handle:Queries Queries = SQL_PrepareQuery(SqlConnection,"CREATE TABLE IF NOT EXISTS achievements(steamid varchar(32), murder INT(11), survivor INT(11), aimkey INT(11), execution INT(11), onehphero INT(11), hattrick INT(11), akd INT(11), akm INT(11), akp INT(11), mpr INT(11), mm INT(11), mp INT(11), dpr INT(11), dm INT(11), dp INT(11), kpr INT(11), km INT(11), kp INT(11), awpr INT(11), awm INT(11), awp INT(11))") if(!SQL_Execute(Queries)) { SQL_QueryError(Queries,g_Error,charsmax(g_Error)) set_fail_state(g_Error) } SQL_FreeHandle(Queries) SQL_FreeHandle(SqlConnection) } public Load_MySql(iPlayer){ new szSteamId[32], szTemp[512] get_user_authid(iPlayer, szSteamId, charsmax(szSteamId)) new Data[1] Data[0] = iPlayer format(szTemp,charsmax(szTemp),"SELECT * FROM `achievements` WHERE (`achievements`.`steamid` = '%s')", szSteamId) SQL_ThreadQuery(g_SqlTuple,"register_client",szTemp,Data,1)} public register_client(FailState,Handle:Query,Error[],Errcode,Data[],DataSize){ if(FailState == TQUERY_CONNECT_FAILED) { log_amx("Load - Could not connect to SQL database. [%d] %s", Errcode, Error) } else if(FailState == TQUERY_QUERY_FAILED) { log_amx("Load Query failed. [%d] %s", Errcode, Error) } new iPlayer iPlayer = Data[0] if(SQL_NumResults(Query) < 1) { new szSteamId[32] get_user_authid(iPlayer, szSteamId, charsmax(szSteamId)) if (equal(szSteamId,"ID_PENDING")) return PLUGIN_HANDLED new szTemp[512] format(szTemp,charsmax(szTemp),"INSERT INTO `achievements` (`steamid`, `murder`, `survivor`, `aimkey`, `execution`, `onehphero`, `hattrick`, `akd`, `akm`, `akp`, `mpr`, `mm`, `mp`, `dpr`, `dm`, `dp`, `kpr`, `km`, `kp`, `awpr`, `awm`, `awp`)VALUES ('%s', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0')", szSteamId) SQL_ThreadQuery(g_SqlTuple,"IgnoreHandle",szTemp) } else { Achievement[iPlayer][MURDER] = SQL_ReadResult(Query, 1) Achievement[iPlayer][SURVIVOR] = SQL_ReadResult(Query, 2) Achievement[iPlayer][AIMKEY] = SQL_ReadResult(Query, 3) Achievement[iPlayer][EXECUTION] = SQL_ReadResult(Query, 4) Achievement[iPlayer][ONEHPHERO] = SQL_ReadResult(Query, 5) Achievement[iPlayer][HATTRICK] = SQL_ReadResult(Query, 6) Achievement[iPlayer][AK_DILETANTAS] = SQL_ReadResult(Query, 7) Achievement[iPlayer][AK_MEG] = SQL_ReadResult(Query, 8) Achievement[iPlayer][AK_PROF] = SQL_ReadResult(Query, 9) Achievement[iPlayer][M4A1_PRAD] = SQL_ReadResult(Query, 10) Achievement[iPlayer][M4A1_MEG] = SQL_ReadResult(Query, 11) Achievement[iPlayer][M4A1_PROF] = SQL_ReadResult(Query, 12) Achievement[iPlayer][DEAGLE_PRAD] = SQL_ReadResult(Query, 13) Achievement[iPlayer][DEAGLE_MEG] = SQL_ReadResult(Query, 14) Achievement[iPlayer][DEAGLE_PROF] = SQL_ReadResult(Query, 15) Achievement[iPlayer][KNIFE_PRAD] = SQL_ReadResult(Query, 16) Achievement[iPlayer][KNIFE_MEG] = SQL_ReadResult(Query, 17) Achievement[iPlayer][KNIFE_PROF] = SQL_ReadResult(Query, 18) Achievement[iPlayer][AWP_PRAD] = SQL_ReadResult(Query, 19) Achievement[iPlayer][AWP_MEG] = SQL_ReadResult(Query, 20) Achievement[iPlayer][AWP_PROF] = SQL_ReadResult(Query, 21) } return PLUGIN_HANDLED} public Save_MySql(iPlayer){ new szSteamId[32], szTemp[512], szTemp2[512] get_user_authid(iPlayer, szSteamId, charsmax(szSteamId)) format(szTemp,charsmax(szTemp),"UPDATE `achievements` SET `murder` = '%d', `survivor` = '%d', `aimkey` = '%d', `execution` = '%d', `onehphero` = '%d' WHERE `achievements`.`steamid` = '%s';", Achievement[iPlayer][MURDER], Achievement[iPlayer][SURVIVOR], Achievement[iPlayer][AIMKEY], Achievement[iPlayer][EXECUTION], Achievement[iPlayer][ONEHPHERO], szSteamId) format(szTemp2,charsmax(szTemp2),"UPDATE `achievements` SET `hattrick` = '%d', `akd` = '%d', `akm` = '%d', `akp` = '%d', `mpr` = '%d', `mm` = '%d', `mp` = '%d', `dpr` = '%d', `dm` = '%d', `dp` = '%d', `kpr` = '%d', `km` = '%d', `kp` = '%d', `awpr` = '%d', `awm` = '%d', `awp` = '%d' WHERE `achievements`.`steamid` = '%s';", Achievement[iPlayer][HATTRICK], Achievement[iPlayer][AK_DILETANTAS], Achievement[iPlayer][AK_MEG], Achievement[iPlayer][AK_PROF], Achievement[iPlayer][M4A1_PRAD], Achievement[iPlayer][M4A1_MEG], Achievement[iPlayer][M4A1_PROF], Achievement[iPlayer][DEAGLE_PRAD], Achievement[iPlayer][DEAGLE_MEG], Achievement[iPlayer][DEAGLE_PROF], Achievement[iPlayer][KNIFE_PRAD], Achievement[iPlayer][KNIFE_MEG], Achievement[iPlayer][KNIFE_PROF], Achievement[iPlayer][AWP_PRAD], Achievement[iPlayer][AWP_MEG], Achievement[iPlayer][AWP_PROF], szSteamId) SQL_ThreadQuery(g_SqlTuple,"IgnoreHandle",szTemp) SQL_ThreadQuery(g_SqlTuple,"IgnoreHandle",szTemp2)} public IgnoreHandle(FailState,Handle:Query,Error[],Errcode,Data[],DataSize){ SQL_FreeHandle(Query) return PLUGIN_HANDLED}///////////////////////////////////////////////////////////// END OF ACHIEVEMENT SAVING ///////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////// START OF ACHIEVEMENT COLORCHAT ///////////////////////////////////////////////////////////// ColorChat(id, Color:type, const msg[], {Float,Sql,Result,_}:...){ static message[256]; switch(type) { case NORMAL: // clients scr_concolor cvar color { message[0] = 0x01; } case GREEN: // Green { message[0] = 0x04; } default: // White, Red, Blue { message[0] = 0x03; } } vformat(message[1], 251, msg, 4); // Make sure message is not longer than 192 character. Will crash the server. message[192] = '^0'; static team, ColorChange, index, MSG_Type; if(id) { MSG_Type = MSG_ONE; index = id; } else { index = FindPlayer(); MSG_Type = MSG_ALL; } team = get_user_team(index); ColorChange = ColorSelection(index, MSG_Type, type); ShowColorMessage(index, MSG_Type, message); if(ColorChange) { Team_Info(index, MSG_Type, TeamName[team]); }} ShowColorMessage(id, type, message[]){ message_begin(type, get_user_msgid("SayText"), _, id); write_byte(id) write_string(message); message_end(); } Team_Info(id, type, team[]){ message_begin(type, get_user_msgid("TeamInfo"), _, id); write_byte(id); write_string(team); message_end(); return 1;} ColorSelection(index, type, Color:Type){ switch(Type) { case RED: { return Team_Info(index, type, TeamName[1]); } case BLUE: { return Team_Info(index, type, TeamName[2]); } case GREY: { return Team_Info(index, type, TeamName[0]); } } return 0;} FindPlayer(){ static i; i = -1; while(i <= get_maxplayers()) { if(is_user_connected(++i)) { return i; } } return -1;}//////////////////////////////////////////////////////////// END OF ACHIEVEMENT COLORCHAT /////////////////////////////////////////////////////////////// /* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE*{\\ rtf1\\ ansi\\ ansicpg1252\\ deff0\\ deflang1053{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ f0\\ fs16 \n\\ par }*/