Код за потвърждение: Избери целия код
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <hamsandwich>
#include <fakemeta>
#if AMXX_VERSION_NUM < 183
#include <dhudmessage>
#define client_disconnected client_disconnect
#endif
#if !defined MAX_PLAYERS
#define MAX_PLAYERS 32
#endif
#define PLUGIN "CSO Costumes"
#define VERSION "1.1"
#define AUTHOR "Smilex_Gamer"
//#define MYSQL
#if defined MYSQL
#include <sqlx>
new cvar_host, cvar_user, cvar_pass, cvar_db, cvar_table
new Host[64], User[64], Pass[64], Db[64], Table[64]
new Handle:g_SqlTuple
new g_Error[512]
#endif
#define PREFIX "[CSO Costumes]"
enum _:Vars
{
g_name[90],
g_price,
g_model[90],
g_preview[90]
}
new const Costumes_SkinCT[][Vars] =
{
// { Name, Price, ModelName, Image }
{ }, // Don't Remove it
{ "Natasha", 100, "natasha", "https://i.imgur.com/Jo86p64.png" },
{ "Choi Ji Yoon" , 100, "choijiyoon", "https://i.imgur.com/OVHJFiu.png" },
{ "Criss", 100, "criss", "https://i.imgur.com/W4Q4R8D.png" },
{ "May", 100, "chngirl01", "https://i.imgur.com/mEW2QeN.png" },
{ "Keith Icahn", 100, "hunter", "https://i.imgur.com/5Vo0wkT.png" },
{ "Gerard", 100, "gerrard", "https://i.imgur.com/rUStUht.png" },
{ "Lucia", 100, "marinegirl", "https://i.imgur.com/N1CT6sF.png" },
{ "Enzo", 100, "marineboy", "https://i.imgur.com/lQsuDDS.png" },
{ "Natasha (casual)", 100, "natasha2", "https://i.imgur.com/hy8wN9s.png" },
{ "Alice (Limited Edition)", 100, "alice2", "https://i.imgur.com/HD9PthU.png" },
{ "Walter", 100, "mercenaryct", "https://i.imgur.com/VREpWz1.png" },
{ "Choi Ji Yoon (Limited Edition)", 100, "choijiyoon2", "https://i.imgur.com/ellRnmI.png" },
{ "Isabelle", 100, "boxxergirl", "https://i.imgur.com/s40JELb.png" },
{ "Henry", 100, "henry", "https://i.imgur.com/1yvYqvU.png" },
{ "Dominique", 100, "dominique", "https://i.imgur.com/4Jhtr50.png" },
{ "Soi", 100, "soi", "https://i.imgur.com/aQQKPwf.png" },
{ "Ha Ly", 100, "vngirl", "https://i.imgur.com/ehGS4lC.png" },
{ "Dr. Han", 100, "jinct", "https://i.imgur.com/Og0n0gD.png" },
{ "Rebecca", 100, "police", "https://i.imgur.com/nMKb6QQ.png" },
{ "Ian", 100, "twctclass", "https://i.imgur.com/7tUcrB4.png" },
{ "Dorothy Dark Knight", 100, "buffclassa", "https://i.imgur.com/EB2TxL7.png" },
{ "Sonya Lycanthrope", 100, "buffclasslycan", "https://i.imgur.com/t832kJo.png" },
{ "Transcendent Choi Ji Yoon", 100, "buffclasschoijiyoon", "https://i.imgur.com/EjpzPIA.png" },
{ "Lisa", 100, "lisa", "https://i.imgur.com/zDescEb.png" },
{ "Transcendent Fernando", 100, "buffclassfernando", "https://i.imgur.com/xi84CWH.png" },
{ "Fernando", 100, "fernando", "https://i.imgur.com/5UdqwVM.png" },
{ "Alice", 100, "ma_aliceblue", "https://i.imgur.com/3wVYnFd.png" },
{ "Choi Ji Yoon (Soccer)", 100, "sccjy", "https://i.imgur.com/x9iQp8a.png" },
{ "Max Thacker", 100, "scvip", "https://i.imgur.com/DEn4vUL.png" },
{ "Special Agent Lucia", 100, "19s1marinegirl", "https://i.imgur.com/5hT7tK1.png" }
}
new const Costumes_SkinTR[][Vars] =
{
// { Name, Price, ModelName, Image }
{ }, // Don't Remove it
{ "Jennifer", 100, "jennifer", "https://i.imgur.com/BUkavV4.png" },
{ "Ritsuka" , 100, "ritsuka", "https://i.imgur.com/RDRTofq.png" },
{ "Yuri", 100, "yuri", "https://i.imgur.com/ey0ebvp.png" },
{ "Erika", 100, "jpngirl01", "https://i.imgur.com/o8f0zZy.png" },
{ "Spade", 100, "spade", "https://i.imgur.com/yz4kC2d.jpg" },
{ "David Black", 100, "davidblack", "https://i.imgur.com/bZgyHbJ.png" },
{ "Michaela", 100, "pirategirl", "https://i.imgur.com/84brccu.png" },
{ "Raven", 100, "pirateboy", "https://i.imgur.com/Ap2NaIL.png" },
{ "Jennifer (Uniform)", 100, "jennifer2", "https://i.imgur.com/ZmHSXgH.png" },
{ "Yuri (Limited Edition)", 100, "yuri2", "https://i.imgur.com/OQaZo8u.png" },
{ "Carlito", 100, "mercenarytr", "https://i.imgur.com/WafIOGW.png" },
{ "Michaela (Limited Edition)", 100, "pirategirl2", "https://i.imgur.com/QQexlaF.png" },
{ "Lingling", 100, "idolgirl", "https://i.imgur.com/MTcZcg6.png" },
{ "Gunsmith", 100, "gunsmith", "https://i.imgur.com/l9qTQ2H.png" },
{ "Alin", 100, "alin", "https://i.imgur.com/svfRWlV.png" },
{ "Jim", 100, "zim", "https://i.imgur.com/mqGJqf0.png" },
{ "Krieg", 100, "vnman", "https://i.imgur.com/YK5vUAs.png" },
{ "Jenny", 100, "jintr", "https://i.imgur.com/Ve5gNRb.png" },
{ "Ace", 100, "thief", "https://i.imgur.com/rdVfw2R.png" },
{ "Yuwei", 100, "twtrclass", "https://i.imgur.com/kGNfjKh.png" },
{ "Flora Paladin", 100, "buffclassb", "https://i.imgur.com/oOrdD9K.png" },
{ "Elizabeth Crimson Hunter", 100, "buffclasshunter", "https://i.imgur.com/WOc5Ko7.png" },
{ "Transcendent Yuri", 100, "buffclassyuri", "https://i.imgur.com/rUrJk28.png" },
{ "Transcendent Michaela", 100, "buffclasspirategirl", "https://i.imgur.com/9ewbvwe.png" },
{ "Mila", 100, "mila", "https://i.imgur.com/KGd9w38.png" },
{ "Transcendent Blair", 100, "buffclassblair", "https://i.imgur.com/ird6KaU.png" },
{ "Rose Phoenix", 100, "buffclassphoenix", "https://i.imgur.com/NrLUbLB.png" },
{ "Blair", 100, "blair", "https://i.imgur.com/swmpFqB.png" },
{ "Alice", 100, "ma_alicered", "https://i.imgur.com/ui323NB.png" },
{ "Yuri (Soccer)", 100, "scyuri", "https://i.imgur.com/DNnhVKq.png" },
{ "Asia Red Army (Soccer)", 100, "scjra", "https://i.imgur.com/hJSFqFF.png" },
{ "Pirate Michaela", 100, "19s1pirategirl", "https://i.imgur.com/wI1MugO.png" }
}
new const CostumeModels[][] =
{
"models/costumes/costume_head.mdl", // ModelNo 0
"models/costumes/costume_head2.mdl", // ModelNo 1
"models/costumes/costume_back.mdl", // ModelNo 2
"models/costumes/costume_back2.mdl", // ModelNo 3
"models/costumes/costume_pelvis.mdl" // ModelNo 4
}
enum _:Vars2
{
g_name[90],
g_price,
g_model,
g_anim,
g_preview1[90]
}
new const Costumes_Head[][Vars2] =
{
// { Name, Price, ModelNo, Sequence, Image }
{ }, // Don't Remove it
{ "Angel Halo", 100, 0, 2, "https://i.imgur.com/rJ2rwJh.png" },
{ "Cat Ears", 100, 0, 7, "https://i.imgur.com/p4KdlQl.png" },
{ "Devil Horns", 100, 0, 10, "https://i.imgur.com/scMYPcv.png" },
{ "Polar Bear Head", 100, 0, 20, "https://i.imgur.com/vtUP9es.png" },
{ "Bunny Ears", 100, 0, 1, "https://i.imgur.com/ECPYhjS.png" },
{ "Non La", 100, 0, 15, "https://i.imgur.com/GbnFNak.png" },
{ "Pharaoh Mask", 100, 1, 2, "https://i.imgur.com/Ttvtu8a.png" },
{ "Pumpkin Head", 100, 0, 22, "https://i.imgur.com/JiCtqcX.png" },
{ "Snowman Head", 100, 0, 23, "https://i.imgur.com/KeNUBJs.png" },
{ "Pig Ears", 100, 0, 19, "https://i.imgur.com/iRx6Qks.png" },
{ "Panda Ears", 100, 0, 18, "https://i.imgur.com/DNhprvg.png" },
{ "Bazzi Head", 100, 0, 3, "https://i.imgur.com/VfqMRoS.png" },
{ "Dao Head", 100, 0, 9, "https://i.imgur.com/WPE2sfU.png" },
{ "Squirrel Ears", 100, 0, 24, "https://i.imgur.com/JjWs8vL.png" },
{ "Indian Warbonnet", 100, 0, 14, "https://i.imgur.com/eNTEPaN.png" },
{ "Indian Face", 100, 1, 4, "https://i.imgur.com/UhsyweB.png" },
{ "Dinosaur Head", 100, 0, 11, "https://i.imgur.com/pKq1qFu.png" },
{ "Dark Knight Mask", 100, 0, 26, "https://i.imgur.com/gHwccpv.png" },
{ "Paladin Crown", 100, 0, 27, "https://i.imgur.com/2DIczIt.png" },
{ "Crimson Hunter Bat Headband", 100, 0, 6, "https://i.imgur.com/MXVHzRq.png" },
{ "Golden Mask", 100, 0, 13, "https://i.imgur.com/GuDGLmn.png" },
{ "Afro Hair", 100, 0, 0, "https://i.imgur.com/l00fOYT.png" },
{ "Elegant Hair", 100, 0, 8, "https://i.imgur.com/RxyFifi.png" },
{ "Provocation Apple", 100, 0, 21, "https://i.imgur.com/UgXui4o.png" },
{ "Gentleman Mustache", 100, 0, 12, "https://i.imgur.com/Rosh32h.png" },
{ "Idol Sunglasses", 100, 1, 3, "https://i.imgur.com/2sQJ02F.png" },
{ "Boxing Headgear", 100, 0, 4, "https://i.imgur.com/87i7J1y.png" },
{ "Superhero Helmet", 100, 0, 25, "https://i.imgur.com/oSTCdNG.png" },
{ "Crono Athletic's Face", 100, 1, 1, "https://i.imgur.com/p6MnPvX.png" },
{ "Jack's Mask", 100, 1, 5, "https://i.imgur.com/ybdKDYc.png" },
{ "Oberon's Bomb Hair Band", 100, 0, 17, "https://i.imgur.com/NqkO0th.png" },
{ "Oberon's Horn", 100, 0, 16, "https://i.imgur.com/KSiSL2F.png" },
{ "Bunny Ears", 100, 1, 9, "https://i.imgur.com/gidqo62.png" },
{ "Butterfly Antenna", 100, 1, 10, "https://i.imgur.com/LpS16VW.png" },
{ "Rooster Comb", 100, 1, 11, "https://i.imgur.com/4qWnMhq.png" }
}
new const Costumes_Back[][Vars2] =
{
// { Name, Price, ModelNo, Sequence, Image }
{ }, // Don't Remove it
{ "Angel Wings", 100, 2, 0, "https://i.imgur.com/pTezbbF.png" },
{ "Cat Tuna", 100, 2, 2, "https://i.imgur.com/WBEuHBO.png" },
{ "Devil Wings", 100, 2, 4, "https://i.imgur.com/S631X5G.png" },
{ "Penguin Doll", 100, 2, 16, "https://i.imgur.com/sN3YhKp.png" },
{ "Mummy Doll", 100, 2, 6, "https://i.imgur.com/sIpLF1P.png" },
{ "Kid Ghost", 100, 2, 18, "https://i.imgur.com/aofwXbV.png" },
{ "Christmas Socks", 100, 2, 19, "https://i.imgur.com/Nks0qjS.png" },
{ "Pig Fork", 100, 2, 15, "https://i.imgur.com/98lqB8B.png" },
{ "Panda Doll", 100, 2, 14, "https://i.imgur.com/RDFwncd.png" },
{ "Acorn", 100, 2, 20, "https://i.imgur.com/bRhC4Bx.png" },
{ "Clock", 100, 2, 23, "https://i.imgur.com/PpYDnn7.png" },
{ "Chinese Flag", 100, 3, 0, "https://i.imgur.com/wOSvI3g.png" },
{ "Indian Shield", 100, 2, 12, "https://i.imgur.com/tGgJuNT.png" },
{ "Dinosaur Puppet", 100, 2, 5, "https://i.imgur.com/Fm9FboU.png" },
{ "Phoenix Wings", 100, 3, 3, "https://i.imgur.com/ZWhYlX5.png" },
{ "Golden Shield", 100, 2, 9, "https://i.imgur.com/nYXjCTv.png" },
{ "Provocation Target", 100, 2, 17, "https://i.imgur.com/LE4mGBy.png" },
{ "Gentleman Stick", 100, 2, 8, "https://i.imgur.com/Zra6Fle.png" },
{ "Idol Microphone", 100, 2, 11, "https://i.imgur.com/yv6RHAp.png" },
{ "Superhero Backpack", 100, 2, 21, "https://i.imgur.com/aAawWC6.png" },
{ "Tyrant Crab's Bag", 100, 2, 3, "https://i.imgur.com/IOJfKov.png" },
{ "Mr. X's shell", 100, 3, 1, "https://i.imgur.com/x5AOlmY.png" },
{ "Crono Wing's Wings", 100, 3, 2, "https://i.imgur.com/bBEIwm3.png" },
{ "Laser Wing's Wings", 100, 2, 10, "https://i.imgur.com/elTVPvV.png" },
{ "Frozen Terror's Bat", 100, 2, 7, "https://i.imgur.com/v0a441u.png" },
{ "Kraken's Bazooka", 100, 2, 13, "https://i.imgur.com/A6mwOwR.png" },
{ "Titan Doll", 100, 2, 22, "https://i.imgur.com/GIXLSYY.png" },
{ "Angra's Wings", 100, 2, 1, "https://i.imgur.com/DenbUHq.png" },
{ "Military Assault Pack", 100, 3, 4, "https://i.imgur.com/5VaxvDa.png" },
{ "Butterfly Wings", 100, 3, 5, "https://i.imgur.com/YkfHRxc.png" }
}
new const Costumes_Pelvis[][Vars2] =
{
// { Name, Price, ModelNo, Sequence, Image }
{ }, // Don't Remove it
{ "Cat Tail", 100, 4, 1, "https://i.imgur.com/79l8GfB.png" },
{ "Devil Tail", 100, 4, 3, "https://i.imgur.com/0Ns1zSI.png" },
{ "Pig Tail", 100, 4, 7, "https://i.imgur.com/oTfAOIb.png" },
{ "Panda Tail", 100, 4, 6, "https://i.imgur.com/dIZr4cC.png" },
{ "Squirrel Tail", 100, 4, 9, "https://i.imgur.com/vRE74rB.png" },
{ "Indian Belt", 100, 4, 5, "https://i.imgur.com/IJ7quzL.png" },
{ "Lycanthrope Wolf Tail", 100, 4, 0, "https://i.imgur.com/HeC0knd.png" },
{ "Provocation Arrow", 100, 4, 8, "https://i.imgur.com/4HYNDic.png" },
{ "Gentleman Hand Clock", 100, 4, 4, "https://i.imgur.com/zEzjnll.png" },
{ "Boxing Champion Belt", 100, 4, 10, "https://i.imgur.com/UToRFtl.png" },
{ "3D Maneuver Gear", 100, 4, 2, "https://i.imgur.com/pJlIhN0.png" },
{ "Bunny Tail", 100, 4, 11, "https://i.imgur.com/dYsXh5P.png" }
}
enum _:Vars3
{
g_skinct,
g_skintr,
g_head,
g_back,
g_pelvis,
g_cash,
g_buying,
g_costume,
g_CostumeModelHead,
g_CostumeModelBack,
g_CostumeModelPelvis
}
new g_vars[33][Vars3]
new g_acquiredSkinCT[33][sizeof Costumes_SkinCT], g_acquiredSkinTR[33][sizeof Costumes_SkinTR], g_acquiredHead[33][sizeof Costumes_Head], g_acquiredBack[33][sizeof Costumes_Back], g_acquiredPelvis[33][sizeof Costumes_Pelvis]
new cvar_killcash
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
RegisterHam(Ham_Spawn, "player", "fw_PlayerSpawn_Post", 1)
register_event("DeathMsg", "Event_DeathMsg", "a")
register_clcmd("say /costumes", "clcmd_costumes")
register_clcmd("say /inventory", "clcmd_inventory")
register_clcmd("say /shop", "clcmd_shop")
register_clcmd("say /deactivate", "clcmd_deactivate")
register_clcmd("say /cash", "clcmd_cash")
cvar_killcash = register_cvar("cash_kill", "5")
#if defined MYSQL
register_event("SendAudio", "Event_Round_End", "a", "2=%!MRAD_terwin", "2=%!MRAD_ctwin", "2=%!MRAD_rounddraw")
cvar_host = register_cvar("Host_Costumes", "")
cvar_user = register_cvar("User_Costumes", "")
cvar_pass = register_cvar("Pass_Costumes", "")
cvar_db = register_cvar("Db_Costumes", "")
cvar_table = register_cvar("Table_Costumes", "")
set_task(1.0, "MySql_Init")
#endif
}
public plugin_precache()
{
new buffer[128]
for(new i = 0; i < sizeof CostumeModels; i++)
precache_model(CostumeModels[i])
for(new i = 1; i < sizeof Costumes_SkinCT; i++)
{
formatex(buffer, charsmax(buffer), "models/player/%s/%s.mdl", Costumes_SkinCT[i][g_model], Costumes_SkinCT[i][g_model])
precache_model(buffer)
}
for(new i = 1; i < sizeof Costumes_SkinTR; i++)
{
formatex(buffer, charsmax(buffer), "models/player/%s/%s.mdl", Costumes_SkinTR[i][g_model], Costumes_SkinTR[i][g_model])
precache_model(buffer)
}
}
#if defined MYSQL
public MySql_Init()
{
get_pcvar_string(cvar_host, Host, charsmax(Host))
get_pcvar_string(cvar_user, User, charsmax(User))
get_pcvar_string(cvar_pass, Pass, charsmax(Pass))
get_pcvar_string(cvar_db, Db, charsmax(Db))
get_pcvar_string(cvar_table, Table, charsmax(Table))
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)
static len; len = 0
new szTemp[4000]
len += formatex(szTemp[len], charsmax(szTemp), "CREATE TABLE IF NOT EXISTS %s (Id INT(11) AUTO_INCREMENT PRIMARY KEY,SteamId varchar(32),Cash INT(11),SkinCT INT(11),SkinTR INT(11),Head INT(11),Back INT(11),Pelvis INT(11)", Table)
for(new i = 1; i < sizeof Costumes_SkinCT; i++)
len += formatex(szTemp[len], charsmax(szTemp), ",SkinCT%d INT(1)", i)
for(new i = 1; i < sizeof Costumes_SkinTR; i++)
len += formatex(szTemp[len], charsmax(szTemp), ",SkinTR%d INT(1)", i)
for(new i = 1; i < sizeof Costumes_Head; i++)
len += formatex(szTemp[len], charsmax(szTemp), ",Head%d INT(1)", i)
for(new i = 1; i < sizeof Costumes_Back; i++)
len += formatex(szTemp[len], charsmax(szTemp), ",Back%d INT(1)", i)
for(new i = 1; i < sizeof Costumes_Pelvis; i++)
len += formatex(szTemp[len], charsmax(szTemp), ",Pelvis%d INT(1)", i)
len += formatex(szTemp[len], charsmax(szTemp), ")")
new Handle:Queries
Queries = SQL_PrepareQuery(SqlConnection, szTemp)
if(!SQL_Execute(Queries))
{
SQL_QueryError(Queries, g_Error, charsmax(g_Error))
set_fail_state(g_Error)
}
SQL_FreeHandle(Queries)
SQL_FreeHandle(SqlConnection)
}
public plugin_end() SQL_FreeHandle(g_SqlTuple)
public Load_MySql(id)
{
new szSteamId[32], szTemp[512]; get_pcvar_string(cvar_table, Table, charsmax(Table))
get_user_authid(id, szSteamId, charsmax(szSteamId))
new Data[1]
Data[0] = id
formatex(szTemp, charsmax(szTemp), "SELECT * FROM `%s` WHERE (`%s`.`SteamId` = '%s')", Table, Table, 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 id
id = Data[0]
if(SQL_NumResults(Query) < 1)
{
new szSteamId[32]
get_user_authid(id, szSteamId, charsmax(szSteamId))
if (equal(szSteamId, "ID_PENDING"))
return PLUGIN_HANDLED
static len; len = 0
new szTemp[4000]; get_pcvar_string(cvar_table, Table, charsmax(Table))
len += formatex(szTemp[len], charsmax(szTemp), "INSERT INTO `%s` (`SteamId`,`Cash`,`SkinCT`,`SkinTR`,`Head`,`Back`,`Pelvis`", Table)
for(new i = 1; i < sizeof Costumes_SkinCT; i++)
len += formatex(szTemp[len], charsmax(szTemp), ",`SkinCT%d`", i)
for(new i = 1; i < sizeof Costumes_SkinTR; i++)
len += formatex(szTemp[len], charsmax(szTemp), ",`SkinTR%d`", i)
for(new i = 1; i < sizeof Costumes_Head; i++)
len += formatex(szTemp[len], charsmax(szTemp), ",`Head%d`", i)
for(new i = 1; i < sizeof Costumes_Back; i++)
len += formatex(szTemp[len], charsmax(szTemp), ",`Back%d`", i)
for(new i = 1; i < sizeof Costumes_Pelvis; i++)
len += formatex(szTemp[len], charsmax(szTemp), ",`Pelvis%d`", i)
len += formatex(szTemp[len], charsmax(szTemp), ") VALUES ('%s','0','0','0','0','0','0'", szSteamId)
for(new i = 1; i < sizeof Costumes_SkinCT; i++)
len += formatex(szTemp[len], charsmax(szTemp), ",'0'")
for(new i = 1; i < sizeof Costumes_SkinTR; i++)
len += formatex(szTemp[len], charsmax(szTemp), ",'0'")
for(new i = 1; i < sizeof Costumes_Head; i++)
len += formatex(szTemp[len], charsmax(szTemp), ",'0'")
for(new i = 1; i < sizeof Costumes_Back; i++)
len += formatex(szTemp[len], charsmax(szTemp), ",'0'")
for(new i = 1; i < sizeof Costumes_Pelvis; i++)
len += formatex(szTemp[len], charsmax(szTemp), ",'0'")
len += formatex(szTemp[len], charsmax(szTemp), ")")
SQL_ThreadQuery(g_SqlTuple, "IgnoreHandle", szTemp)
}
else
{
static query = 2;
g_vars[id][g_cash] = SQL_ReadResult(Query, query); query++
g_vars[id][g_skinct] = SQL_ReadResult(Query, query); query++
g_vars[id][g_skintr] = SQL_ReadResult(Query, query); query++
g_vars[id][g_head] = SQL_ReadResult(Query, query); query++
g_vars[id][g_back] = SQL_ReadResult(Query, query); query++
g_vars[id][g_pelvis] = SQL_ReadResult(Query, query); query++
for(new i = 1; i < sizeof Costumes_SkinCT; i++)
{
g_acquiredSkinCT[id][i] = SQL_ReadResult(Query, query)
query++
}
for(new i = 1; i < sizeof Costumes_SkinTR; i++)
{
g_acquiredSkinTR[id][i] = SQL_ReadResult(Query, query)
query++
}
for(new i = 1; i < sizeof Costumes_Head; i++)
{
g_acquiredHead[id][i] = SQL_ReadResult(Query, query)
query++
}
for(new i = 1; i < sizeof Costumes_Back; i++)
{
g_acquiredBack[id][i] = SQL_ReadResult(Query, query)
query++
}
for(new i = 1; i < sizeof Costumes_Pelvis; i++)
{
g_acquiredPelvis[id][i] = SQL_ReadResult(Query, query)
query++
}
}
return PLUGIN_HANDLED
}
public Save_MySql(id)
{
new szSteamId[32], szTemp[4000]; get_pcvar_string(cvar_table, Table, charsmax(Table))
get_user_authid(id, szSteamId, charsmax(szSteamId))
static len; len = 0
len += formatex(szTemp[len], charsmax(szTemp), "UPDATE `%s` SET `Cash` = '%i', `SkinCT` = '%i', `SkinTR` = '%i', `Head` = '%i', `Back` = '%i', `Pelvis` = '%i'", Table, g_vars[id][g_cash], g_vars[id][g_skinct], g_vars[id][g_skintr], g_vars[id][g_head], g_vars[id][g_back], g_vars[id][g_pelvis])
for(new i = 1; i < sizeof Costumes_SkinCT; i++)
len += formatex(szTemp[len], charsmax(szTemp), ",`SkinCT%d` = '%i'", i, g_acquiredSkinCT[id][i])
for(new i = 1; i < sizeof Costumes_SkinTR; i++)
len += formatex(szTemp[len], charsmax(szTemp), ",`SkinTR%d` = '%i'", i, g_acquiredSkinTR[id][i])
for(new i = 1; i < sizeof Costumes_Head; i++)
len += formatex(szTemp[len], charsmax(szTemp), ",`Head%d` = '%i'", i, g_acquiredHead[id][i])
for(new i = 1; i < sizeof Costumes_Back; i++)
len += formatex(szTemp[len], charsmax(szTemp), ",`Back%d` = '%i'", i, g_acquiredBack[id][i])
for(new i = 1; i < sizeof Costumes_Pelvis; i++)
len += formatex(szTemp[len], charsmax(szTemp), ",`Pelvis%d` = '%i'", i, g_acquiredPelvis[id][i])
formatex(szTemp[len], charsmax(szTemp), " WHERE `%s`.`SteamId` = '%s';", Table, szSteamId)
SQL_ThreadQuery(g_SqlTuple, "IgnoreHandle", szTemp)
}
public IgnoreHandle(FailState, Handle:Query, Error[], Errcode, Data[], DataSize)
{
SQL_FreeHandle(Query)
return PLUGIN_HANDLED
}
public Event_Round_End()
{
for(new i = 1; i <= get_maxplayers(); i++)
{
if(is_user_connected(i))
Save_MySql(i)
}
}
public client_disconnect(id) Save_MySql(id)
#endif
public client_putinserver(id)
{
g_vars[id][g_cash] = 0
g_vars[id][g_skinct] = 0
g_vars[id][g_skintr] = 0
g_vars[id][g_head] = 0
g_vars[id][g_back] = 0
g_vars[id][g_pelvis] = 0
for(new i = 1; i < sizeof Costumes_SkinCT; i++)
g_acquiredSkinCT[id][i] = 0
for(new i = 1; i < sizeof Costumes_SkinTR; i++)
g_acquiredSkinTR[id][i] = 0
for(new i = 1; i < sizeof Costumes_Head; i++)
g_acquiredHead[id][i] = 0
for(new i = 1; i < sizeof Costumes_Back; i++)
g_acquiredBack[id][i] = 0
for(new i = 1; i < sizeof Costumes_Pelvis; i++)
g_acquiredPelvis[id][i] = 0
#if defined MYSQL
Load_MySql(id)
#endif
}
public fw_PlayerSpawn_Post(id)
{
if(is_user_alive(id))
{
checkCostumes(id, 0)
checkCostumes(id, 1)
checkCostumes(id, 2)
checkCostumes(id, 3)
}
}
public Event_DeathMsg()
{
new attacker = read_data(1)
new victim = read_data(2)
new victimname[32]
get_user_name(victim, victimname, charsmax(victimname))
if(attacker == victim || !is_user_connected(attacker) || !is_user_connected(victim))
return PLUGIN_HANDLED;
colorchat(attacker, "^04%s^01 You won ^04%d^01 Cash for killing ^04%s^01.", PREFIX, get_pcvar_num(cvar_killcash), victimname)
g_vars[attacker][g_cash] += get_pcvar_num(cvar_killcash)
return PLUGIN_HANDLED;
}
public clcmd_costumes(id)
{
show_menu_costumes(id)
return PLUGIN_HANDLED;
}
public clcmd_inventory(id)
{
show_menu_inventory(id)
return PLUGIN_HANDLED;
}
public clcmd_shop(id)
{
show_menu_shop(id)
return PLUGIN_HANDLED;
}
public clcmd_deactivate(id)
{
g_vars[id][g_skinct] = 0
g_vars[id][g_skintr] = 0
g_vars[id][g_head] = 0
g_vars[id][g_back] = 0
g_vars[id][g_pelvis] = 0
cs_reset_user_model(id)
reset_costume(id, 1)
reset_costume(id, 2)
reset_costume(id, 3)
colorchat(id, "^04%s^01 You deactivated all your ^04Costumes^01.", PREFIX)
return PLUGIN_HANDLED;
}
public clcmd_cash(id)
{
colorchat(id, "^04%s^01 You have ^04%d^01 Cash.", PREFIX, g_vars[id][g_cash])
return PLUGIN_HANDLED;
}
public menu_costumes(id, menu, item)
{
if (item == MENU_EXIT)
{
menu_destroy(id)
return PLUGIN_HANDLED
}
new data[6], iName[64]
new access, callback
menu_item_getinfo(menu, item, access, data,5, iName, 63, callback)
new key = str_to_num(data)
switch (key)
{
case 0:
{
show_menu_inventory(id)
}
case 1:
{
show_menu_shop(id)
}
}
return PLUGIN_HANDLED;
}
show_menu_costumes(id)
{
new msgm[128]
formatex(msgm, charsmax(msgm), "\r%s \yCostumes", PREFIX)
new menu = menu_create(msgm, "menu_costumes")
menu_additem(menu, "Inventory", "0", 0);
menu_additem(menu, "Shop", "1", 0);
menu_setprop(menu, MPROP_EXITNAME, "\wExit")
menu_display(id, menu, 0)
}
public menu_inventory(id, menu, item)
{
if (item == MENU_EXIT)
{
show_menu_costumes(id)
return PLUGIN_HANDLED
}
new data[6], iName[64]
new access, callback
menu_item_getinfo(menu, item, access, data,5, iName, 63, callback)
new key = str_to_num(data)
switch (key)
{
case 0..4:
{
g_vars[id][g_costume] = key
show_menu_costumeinv(id)
}
case 5:
{
clcmd_deactivate(id)
show_menu_inventory(id)
}
}
return PLUGIN_HANDLED;
}
show_menu_inventory(id)
{
new msgm[128]
formatex(msgm, charsmax(msgm), "\r%s \yInventory", PREFIX)
new menu = menu_create(msgm, "menu_inventory")
menu_additem(menu, "Skin CT", "0", 0);
menu_additem(menu, "Skin TR", "1", 0);
menu_additem(menu, "Head", "2", 0);
menu_additem(menu, "Back", "3", 0);
menu_additem(menu, "Pelvis", "4", 0);
menu_additem(menu, "Deactivate all Costumes", "5", 0);
menu_setprop(menu, MPROP_EXITNAME, "\wFechar")
menu_display(id, menu, 0)
}
public menu_costumeinv(id, menu, item)
{
if (item == MENU_EXIT)
{
show_menu_inventory(id)
return PLUGIN_HANDLED
}
new data[6], iName[64]
new access, callback
menu_item_getinfo(menu, item, access, data,5, iName, 63, callback)
new key = str_to_num(data)
new keyc
switch(g_vars[id][g_costume])
{
case 0:
{
for(new i = 1; i < sizeof Costumes_SkinCT; i++)
{
if(!g_acquiredSkinCT[id][i])
continue
if(keyc == key)
{
g_vars[id][g_skinct] = i
break;
}
keyc++
}
checkCostumes(id, 0)
colorchat(id, "^04%s^01 You activated the Costume^04 %s^01.", PREFIX, Costumes_SkinCT[g_vars[id][g_skinct]][g_name])
}
case 1:
{
for(new i = 1; i < sizeof Costumes_SkinTR; i++)
{
if(!g_acquiredSkinTR[id][i])
continue
if(keyc == key)
{
g_vars[id][g_skintr] = i
break;
}
keyc++
}
checkCostumes(id, 0)
colorchat(id, "^04%s^01 You activated the Costume^04 %s^01.", PREFIX, Costumes_SkinTR[g_vars[id][g_skintr]][g_name])
}
case 2:
{
for(new i = 1; i < sizeof Costumes_Head; i++)
{
if(!g_acquiredHead[id][i])
continue
if(keyc == key)
{
g_vars[id][g_head] = i
break;
}
keyc++
}
checkCostumes(id, 1)
colorchat(id, "^04%s^01 You activated the Costume^04 %s^01.", PREFIX, Costumes_Head[g_vars[id][g_head]][g_name])
}
case 3:
{
for(new i = 1; i < sizeof Costumes_Back; i++)
{
if(!g_acquiredBack[id][i])
continue
if(keyc == key)
{
g_vars[id][g_back] = i
break;
}
keyc++
}
checkCostumes(id, 2)
colorchat(id, "^04%s^01 You activated the Costume^04 %s^01.", PREFIX, Costumes_Back[g_vars[id][g_back]][g_name])
}
case 4:
{
for(new i = 1; i < sizeof Costumes_Pelvis; i++)
{
if(!g_acquiredPelvis[id][i])
continue
if(keyc == key)
{
g_vars[id][g_pelvis] = i
break;
}
keyc++
}
checkCostumes(id, 3)
colorchat(id, "^04%s^01 You activated the Costume^04 %s^01.", PREFIX, Costumes_Pelvis[g_vars[id][g_pelvis]][g_name])
}
}
show_menu_costumeinv(id)
return PLUGIN_HANDLED;
}
show_menu_costumeinv(id)
{
new msgm[128], msg[128], msg1[128], item
formatex(msgm, charsmax(msgm), "\r%s \yInventory: %s^n\r", PREFIX, g_vars[id][g_costume] > -1 ? g_vars[id][g_costume] > 0 ? g_vars[id][g_costume] > 1 ? g_vars[id][g_costume] > 2 ? g_vars[id][g_costume] > 3 ? "Pelvis" : "Back" : "Head" : "Skin TR" : "Skin CT" : "")
new menu = menu_create(msgm, "menu_costumeinv")
switch(g_vars[id][g_costume])
{
case 0:
{
for(new i = 1; i < sizeof Costumes_SkinCT; i++)
{
if(!g_acquiredSkinCT[id][i])
continue
formatex(msg, charsmax(msg), "%s%s", Costumes_SkinCT[i][g_name], g_vars[id][g_skinct] == i ? " \r[Activated]" : "")
formatex(msg1, charsmax(msg1), "%d", item)
menu_additem(menu, msg, msg1, 0);
item++
}
}
case 1:
{
for(new i = 1; i < sizeof Costumes_SkinTR; i++)
{
if(!g_acquiredSkinTR[id][i])
continue
formatex(msg, charsmax(msg), "%s%s", Costumes_SkinTR[i][g_name], g_vars[id][g_skintr] == i ? " \r[Activated]" : "")
formatex(msg1, charsmax(msg1), "%d", item)
menu_additem(menu, msg, msg1, 0);
item++
}
}
case 2:
{
for(new i = 1; i < sizeof Costumes_Head; i++)
{
if(!g_acquiredHead[id][i])
continue
formatex(msg, charsmax(msg), "%s%s", Costumes_Head[i][g_name], g_vars[id][g_head] == i ? " \r[Activated]" : "")
formatex(msg1, charsmax(msg1), "%d", item)
menu_additem(menu, msg, msg1, 0);
item++
}
}
case 3:
{
for(new i = 1; i < sizeof Costumes_Back; i++)
{
if(!g_acquiredBack[id][i])
continue
formatex(msg, charsmax(msg), "%s%s", Costumes_Back[i][g_name], g_vars[id][g_back] == i ? " \r[Activated]" : "")
formatex(msg1, charsmax(msg1), "%d", item)
menu_additem(menu, msg, msg1, 0);
item++
}
}
case 4:
{
for(new i = 1; i < sizeof Costumes_Pelvis; i++)
{
if(!g_acquiredPelvis[id][i])
continue
formatex(msg, charsmax(msg), "%s%s", Costumes_Pelvis[i][g_name], g_vars[id][g_pelvis] == i ? " \r[Activated]" : "")
formatex(msg1, charsmax(msg1), "%d", item)
menu_additem(menu, msg, msg1, 0);
item++
}
}
}
menu_setprop(menu, MPROP_BACKNAME, "\wBack")
menu_setprop(menu, MPROP_NEXTNAME, "\wNext")
menu_setprop(menu, MPROP_EXITNAME, "\wExit")
menu_display(id, menu, 0)
if(!item)
{
colorchat(id, "^04%s^01 You don't have any ^04%s^01 Costume in your inventory.", PREFIX, g_vars[id][g_costume] > -1 ? g_vars[id][g_costume] > 0 ? g_vars[id][g_costume] > 1 ? g_vars[id][g_costume] > 2 ? g_vars[id][g_costume] > 3 ? "Pelvis" : "Back" : "Head" : "Skin TR" : "Skin CT" : "")
show_menu_inventory(id)
}
}
public menu_shop(id, menu, item)
{
if (item == MENU_EXIT)
{
show_menu_costumes(id)
return PLUGIN_HANDLED
}
new data[6], iName[64]
new access, callback
menu_item_getinfo(menu, item, access, data,5, iName, 63, callback)
new key = str_to_num(data)
g_vars[id][g_costume] = key
show_menu_costumeshop(id)
return PLUGIN_HANDLED;
}
show_menu_shop(id)
{
new msgm[128]
formatex(msgm, charsmax(msgm), "\r%s \yShop^n\wCash: \r%d", PREFIX, g_vars[id][g_cash])
new menu = menu_create(msgm, "menu_shop")
menu_additem(menu, "Skin CT", "0", 0);
menu_additem(menu, "Skin TR", "1", 0);
menu_additem(menu, "Head", "2", 0);
menu_additem(menu, "Back", "3", 0);
menu_additem(menu, "Pelvis", "4", 0);
menu_setprop(menu, MPROP_EXITNAME, "\wExit")
menu_display(id, menu, 0)
}
public menu_costumeshop(id, menu, item)
{
if (item == MENU_EXIT)
{
show_menu_shop(id)
return PLUGIN_HANDLED
}
new data[6], iName[64]
new access, callback
menu_item_getinfo(menu, item, access, data,5, iName, 63, callback)
new key = str_to_num(data)
if(!g_vars[id][g_costume] && g_acquiredSkinCT[id][key+1] || g_vars[id][g_costume] == 1 && g_acquiredSkinTR[id][key+1] || g_vars[id][g_costume] == 2 && g_acquiredHead[id][key+1] || g_vars[id][g_costume] == 3 && g_acquiredBack[id][key+1] || g_vars[id][g_costume] == 4 && g_acquiredPelvis[id][key+1])
{
colorchat(id, "^04%s^01 You already have this ^04Costume^01!", PREFIX)
show_menu_costumeshop(id)
}
else
{
g_vars[id][g_buying] = key+1
show_menu_buycostume(id)
}
return PLUGIN_HANDLED;
}
show_menu_costumeshop(id)
{
new msgm[128], msg[128], msg1[128], msg2[128]
formatex(msgm, charsmax(msgm), "\r%s \yShop: %s^n\wCash: \r%d^n", PREFIX, g_vars[id][g_costume] > -1 ? g_vars[id][g_costume] > 0 ? g_vars[id][g_costume] > 1 ? g_vars[id][g_costume] > 2 ? g_vars[id][g_costume] > 3 ? "Pelvis" : "Back" : "Head" : "Skin TR" : "Skin CT" : "", g_vars[id][g_cash])
new menu = menu_create(msgm, "menu_costumeshop")
switch(g_vars[id][g_costume])
{
case 0:
{
for(new i = 1; i < sizeof Costumes_SkinCT; i++)
{
formatex(msg2, charsmax(msg2), "[Price: %d]", Costumes_SkinCT[i][g_price])
formatex(msg, charsmax(msg), "%s%s \r%s", g_acquiredSkinCT[id][i] ? "\d" : "", Costumes_SkinCT[i][g_name], g_acquiredSkinCT[id][i] ? "[Acquired]" : msg2)
formatex(msg1, charsmax(msg1), "%d", i-1)
menu_additem(menu, msg, msg1, 0);
}
}
case 1:
{
for(new i = 1; i < sizeof Costumes_SkinTR; i++)
{
formatex(msg2, charsmax(msg2), "[Price: %d]", Costumes_SkinTR[i][g_price])
formatex(msg, charsmax(msg), "%s%s \r%s", g_acquiredSkinTR[id][i] ? "\d" : "", Costumes_SkinTR[i][g_name], g_acquiredSkinTR[id][i] ? "[Acquired]" : msg2)
formatex(msg1, charsmax(msg1), "%d", i-1)
menu_additem(menu, msg, msg1, 0);
}
}
case 2:
{
for(new i = 1; i < sizeof Costumes_Head; i++)
{
formatex(msg2, charsmax(msg1), "[Price: %d]", Costumes_Head[i][g_price])
formatex(msg, charsmax(msg), "%s%s \r%s", g_acquiredHead[id][i] ? "\d" : "", Costumes_Head[i][g_name], g_acquiredHead[id][i] ? "[Acquired]" : msg2)
formatex(msg1, charsmax(msg1), "%d", i-1)
menu_additem(menu, msg, msg1, 0);
}
}
case 3:
{
for(new i = 1; i < sizeof Costumes_Back; i++)
{
formatex(msg2, charsmax(msg2), "[Price: %d]", Costumes_Back[i][g_price])
formatex(msg, charsmax(msg), "%s%s \r%s", g_acquiredBack[id][i] ? "\d" : "", Costumes_Back[i][g_name], g_acquiredBack[id][i] ? "[Acquired]" : msg2)
formatex(msg1, charsmax(msg1), "%d", i-1)
menu_additem(menu, msg, msg1, 0);
}
}
case 4:
{
for(new i = 1; i < sizeof Costumes_Pelvis; i++)
{
formatex(msg2, charsmax(msg2), "[Price: %d]", Costumes_Pelvis[i][g_price])
formatex(msg, charsmax(msg), "%s%s \r%s", g_acquiredPelvis[id][i] ? "\d" : "", Costumes_Pelvis[i][g_name], g_acquiredPelvis[id][i] ? "[Acquired]" : msg2)
formatex(msg1, charsmax(msg1), "%d", i-1)
menu_additem(menu, msg, msg1, 0);
}
}
}
menu_setprop(menu, MPROP_BACKNAME, "\wBack")
menu_setprop(menu, MPROP_NEXTNAME, "\wNext")
menu_setprop(menu, MPROP_EXITNAME, "\wExit")
menu_display(id, menu, 0)
}
public menu_buycostume(id, menu, item)
{
if (item == MENU_EXIT)
{
show_menu_costumeshop(id)
return PLUGIN_HANDLED
}
new data[6], iName[64]
new access, callback
menu_item_getinfo(menu, item, access, data,5, iName, 63, callback)
new key = str_to_num(data)
if(!key)
{
show_motd_costume(id)
show_menu_buycostume(id)
return PLUGIN_HANDLED
}
switch(g_vars[id][g_costume])
{
case 0:
{
if(g_vars[id][g_cash] >= Costumes_SkinCT[g_vars[id][g_buying]][g_price])
{
g_vars[id][g_cash] -= Costumes_SkinCT[g_vars[id][g_buying]][g_price]
g_acquiredSkinCT[id][g_vars[id][g_buying]] = 1
g_vars[id][g_skinct] = g_vars[id][g_buying]
checkCostumes(id, 0)
colorchat(id, "^04%s^01 You bought the Costume^04 %s^01 successfully.", PREFIX, Costumes_SkinCT[g_vars[id][g_buying]][g_name])
colorchat(id, "^04%s^01 You can deactivate all Costumes in your Inventory or writing ^04/deactivate^01.", PREFIX)
}
else
colorchat(id, "^04%s^01 You don't have enough ^04Cash^01 to buy this Costume!", PREFIX)
}
case 1:
{
if(g_vars[id][g_cash] >= Costumes_SkinTR[g_vars[id][g_buying]][g_price])
{
g_vars[id][g_cash] -= Costumes_SkinTR[g_vars[id][g_buying]][g_price]
g_acquiredSkinTR[id][g_vars[id][g_buying]] = 1
g_vars[id][g_skintr] = g_vars[id][g_buying]
checkCostumes(id, 0)
colorchat(id, "^04%s^01 You bought the Costume^04 %s^01 successfully.", PREFIX, Costumes_SkinTR[g_vars[id][g_buying]][g_name])
colorchat(id, "^04%s^01 You can deactivate all Costumes in your Inventory or writing ^04/deactivate^01.", PREFIX)
}
else
colorchat(id, "^04%s^01 You don't have enough ^04Cash^01 to buy this Costume!", PREFIX)
}
case 2:
{
if(g_vars[id][g_cash] >= Costumes_Head[g_vars[id][g_buying]][g_price])
{
g_vars[id][g_cash] -= Costumes_Head[g_vars[id][g_buying]][g_price]
g_acquiredHead[id][g_vars[id][g_buying]] = 1
g_vars[id][g_head] = g_vars[id][g_buying]
checkCostumes(id, 1)
colorchat(id, "^04%s^01 You bought the Costume^04 %s^01 successfully.", PREFIX, Costumes_Head[g_vars[id][g_buying]][g_name])
colorchat(id, "^04%s^01 You can deactivate all Costumes in your Inventory or writing ^04/deactivate^01.", PREFIX)
}
else
colorchat(id, "^04%s^01 You don't have enough ^04Cash^01 to buy this Costume!", PREFIX)
}
case 3:
{
if(g_vars[id][g_cash] >= Costumes_Back[g_vars[id][g_buying]][g_price])
{
g_vars[id][g_cash] -= Costumes_Back[g_vars[id][g_buying]][g_price]
g_acquiredBack[id][g_vars[id][g_buying]] = 1
g_vars[id][g_back] = g_vars[id][g_buying]
checkCostumes(id, 2)
colorchat(id, "^04%s^01 You bought the Costume^04 %s^01 successfully.", PREFIX, Costumes_Back[g_vars[id][g_buying]][g_name])
colorchat(id, "^04%s^01 You can deactivate all Costumes in your Inventory or writing ^04/deactivate^01.", PREFIX)
}
else
colorchat(id, "^04%s^01 You don't have enough ^04Cash^01 to buy this Costume!", PREFIX)
}
case 4:
{
if(g_vars[id][g_cash] >= Costumes_Pelvis[g_vars[id][g_buying]][g_price])
{
g_vars[id][g_cash] -= Costumes_Pelvis[g_vars[id][g_buying]][g_price]
g_acquiredPelvis[id][g_vars[id][g_buying]] = 1
g_vars[id][g_pelvis] = g_vars[id][g_buying]
checkCostumes(id, 3)
colorchat(id, "^04%s^01 You bought the Costume^04 %s^01 successfully.", PREFIX, Costumes_Pelvis[g_vars[id][g_buying]][g_name])
colorchat(id, "^04%s^01 You can deactivate all Costumes in your Inventory or writing ^04/deactivate^01.", PREFIX)
}
else
colorchat(id, "^04%s^01 You don't have enough ^04Cash^01 to buy this Costume!", PREFIX)
}
}
show_menu_costumeshop(id)
return PLUGIN_HANDLED;
}
show_menu_buycostume(id)
{
new msgm[128]
switch(g_vars[id][g_costume])
{
case 0: formatex(msgm, charsmax(msgm), "\r%s \yShop: Skin CT^n\wCostume: \r%s^n\wPrice: \r%d", PREFIX, Costumes_SkinCT[g_vars[id][g_buying]][g_name], Costumes_SkinCT[g_vars[id][g_buying]][g_price])
case 1: formatex(msgm, charsmax(msgm), "\r%s \yShop: Skin TR^n\wCostume: \r%s^n\wPrice: \r%d", PREFIX, Costumes_SkinTR[g_vars[id][g_buying]][g_name], Costumes_SkinTR[g_vars[id][g_buying]][g_price])
case 2: formatex(msgm, charsmax(msgm), "\r%s \yShop: Head^n\wCostume: \r%s^n\wPrice: \r%d", PREFIX, Costumes_Head[g_vars[id][g_buying]][g_name], Costumes_Head[g_vars[id][g_buying]][g_price])
case 3: formatex(msgm, charsmax(msgm), "\r%s \yShop: Back^n\wCostume: \r%s^n\wPrice: \r%d", PREFIX, Costumes_Back[g_vars[id][g_buying]][g_name], Costumes_Back[g_vars[id][g_buying]][g_price])
case 4: formatex(msgm, charsmax(msgm), "\r%s \yShop: Pelvis^n\wCostume: \r%s^n\wPrice: \r%d", PREFIX, Costumes_Pelvis[g_vars[id][g_buying]][g_name], Costumes_Pelvis[g_vars[id][g_buying]][g_price])
}
new menu = menu_create(msgm, "menu_buycostume")
menu_additem(menu, "Preview", "0", 0);
menu_additem(menu, "Buy", "1", 0);
menu_setprop(menu, MPROP_EXITNAME, "\wCancel Purchase")
menu_display(id, menu, 0)
}
public show_motd_costume(id)
{
static motd[2001], motd_name[128]
switch(g_vars[id][g_costume])
{
case 0:
{
formatex(motd, charsmax(motd), "<html><head><style>img { display: block; margin-top: 125px; margin-left: auto; margin-right: auto; }</style></head><body style=^"margin: 0px; background: #0e0e0e;^"><img src=^"%s^"></body></html>", Costumes_SkinCT[g_vars[id][g_buying]][g_preview])
formatex(motd_name, charsmax(motd_name), "%s", Costumes_SkinCT[g_vars[id][g_buying]][g_name]);
}
case 1:
{
formatex(motd, charsmax(motd), "<html><head><style>img { display: block; margin-top: 125px; margin-left: auto; margin-right: auto; }</style></head><body style=^"margin: 0px; background: #0e0e0e;^"><img src=^"%s^"></body></html>", Costumes_SkinTR[g_vars[id][g_buying]][g_preview])
formatex(motd_name, charsmax(motd_name), "%s", Costumes_SkinTR[g_vars[id][g_buying]][g_name]);
}
case 2:
{
formatex(motd, charsmax(motd), "<html><head><style>img { display: block; margin-top: 125px; margin-left: auto; margin-right: auto; }</style></head><body style=^"margin: 0px; background: #0e0e0e;^"><img src=^"%s^"></body></html>", Costumes_Head[g_vars[id][g_buying]][g_preview1])
formatex(motd_name, charsmax(motd_name), "%s", Costumes_Head[g_vars[id][g_buying]][g_name]);
}
case 3:
{
formatex(motd, charsmax(motd), "<html><head><style>img { display: block; margin-top: 125px; margin-left: auto; margin-right: auto; }</style></head><body style=^"margin: 0px; background: #0e0e0e;^"><img src=^"%s^"></body></html>", Costumes_Back[g_vars[id][g_buying]][g_preview1])
formatex(motd_name, charsmax(motd_name), "%s", Costumes_Back[g_vars[id][g_buying]][g_name]);
}
case 4:
{
formatex(motd, charsmax(motd), "<html><head><style>img { display: block; margin-top: 125px; margin-left: auto; margin-right: auto; }</style></head><body style=^"margin: 0px; background: #0e0e0e;^"><img src=^"%s^"></body></html>", Costumes_Pelvis[g_vars[id][g_buying]][g_preview1])
formatex(motd_name, charsmax(motd_name), "%s", Costumes_Pelvis[g_vars[id][g_buying]][g_name]);
}
}
show_motd(id, motd, motd_name);
}
public checkCostumes(id, key)
{
switch(key)
{
case 0:
{
switch(cs_get_user_team(id))
{
case CS_TEAM_T:
{
if(g_vars[id][g_skintr])
cs_set_user_model(id, Costumes_SkinTR[g_vars[id][g_skintr]][g_model])
}
case CS_TEAM_CT:
{
if(g_vars[id][g_skinct])
cs_set_user_model(id, Costumes_SkinCT[g_vars[id][g_skinct]][g_model])
}
}
}
case 1:
{
reset_costume(id, 1)
if(g_vars[id][g_head])
make_costume(id, CostumeModels[Costumes_Head[g_vars[id][g_head]][g_model]], 1, Costumes_Head[g_vars[id][g_head]][g_anim])
}
case 2:
{
reset_costume(id, 2)
if(g_vars[id][g_back])
make_costume(id, CostumeModels[Costumes_Back[g_vars[id][g_back]][g_model]], 2, Costumes_Back[g_vars[id][g_back]][g_anim])
}
case 3:
{
reset_costume(id, 3)
if(g_vars[id][g_pelvis])
make_costume(id, CostumeModels[Costumes_Pelvis[g_vars[id][g_pelvis]][g_model]], 3, Costumes_Pelvis[g_vars[id][g_pelvis]][g_anim])
}
}
}
public make_costume(id, model[], part, anim)
{
switch(part)
{
case 1:
{
g_vars[id][g_CostumeModelHead] = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "info_target"))
set_pev(g_vars[id][g_CostumeModelHead], pev_movetype, MOVETYPE_FOLLOW)
set_pev(g_vars[id][g_CostumeModelHead], pev_aiment, id)
set_pev(g_vars[id][g_CostumeModelHead], pev_rendermode, kRenderNormal)
engfunc(EngFunc_SetModel, g_vars[id][g_CostumeModelHead], model)
set_pev(g_vars[id][g_CostumeModelHead], pev_body, anim)
set_pev(g_vars[id][g_CostumeModelHead], pev_sequence, anim)
set_pev(g_vars[id][g_CostumeModelHead], pev_animtime, get_gametime())
set_pev(g_vars[id][g_CostumeModelHead], pev_framerate, 1.0)
}
case 2:
{
g_vars[id][g_CostumeModelBack] = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "info_target"))
set_pev(g_vars[id][g_CostumeModelBack], pev_movetype, MOVETYPE_FOLLOW)
set_pev(g_vars[id][g_CostumeModelBack], pev_aiment, id)
set_pev(g_vars[id][g_CostumeModelBack], pev_rendermode, kRenderNormal)
engfunc(EngFunc_SetModel, g_vars[id][g_CostumeModelBack], model)
set_pev(g_vars[id][g_CostumeModelBack], pev_body, anim)
set_pev(g_vars[id][g_CostumeModelBack], pev_sequence, anim)
set_pev(g_vars[id][g_CostumeModelBack], pev_animtime, get_gametime())
set_pev(g_vars[id][g_CostumeModelBack], pev_framerate, 1.0)
}
case 3:
{
g_vars[id][g_CostumeModelPelvis] = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "info_target"))
set_pev(g_vars[id][g_CostumeModelPelvis], pev_movetype, MOVETYPE_FOLLOW)
set_pev(g_vars[id][g_CostumeModelPelvis], pev_aiment, id)
set_pev(g_vars[id][g_CostumeModelPelvis], pev_rendermode, kRenderNormal)
engfunc(EngFunc_SetModel, g_vars[id][g_CostumeModelPelvis], model)
set_pev(g_vars[id][g_CostumeModelPelvis], pev_body, anim)
set_pev(g_vars[id][g_CostumeModelPelvis], pev_sequence, anim)
set_pev(g_vars[id][g_CostumeModelPelvis], pev_animtime, get_gametime())
set_pev(g_vars[id][g_CostumeModelPelvis], pev_framerate, 1.0)
}
}
}
public reset_costume(id, number)
{
switch(number)
{
case 1:
{
fm_set_entity_visibility(g_vars[id][g_CostumeModelHead], 0)
g_vars[id][g_CostumeModelHead] = 0
}
case 2:
{
fm_set_entity_visibility(g_vars[id][g_CostumeModelBack], 0)
g_vars[id][g_CostumeModelBack] = 0
}
case 3:
{
fm_set_entity_visibility(g_vars[id][g_CostumeModelPelvis], 0)
g_vars[id][g_CostumeModelPelvis] = 0
}
}
}
colorchat(id, const input[], any:...)
{
static szMsg[191], msgSayText;
if (!msgSayText)
msgSayText = get_user_msgid("SayText");
replace_all(szMsg, 190, "!g", "^04");
replace_all(szMsg, 190, "!y", "^01");
replace_all(szMsg, 190, "!t", "^03");
vformat(szMsg, 190, input, 3);
message_begin(id ? MSG_ONE_UNRELIABLE : MSG_BROADCAST, msgSayText, .player = id);
write_byte(id ? id : 33);
write_string(szMsg);
message_end();
}
stock fm_set_entity_visibility(index, visible = 1) {
set_pev(index, pev_effects, visible == 1 ? pev(index, pev_effects) & ~EF_NODRAW : pev(index, pev_effects) | EF_NODRAW);
return 1;
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ ansicpg1252\\ deff0{\\ fonttbl{\\ f0\\ fnil\\ fcharset0 Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1033\\ f0\\ fs16 \n\\ par }
*/
L 03/25/2019 - 23:22:05: [AMXX] Displaying debug trace (plugin "costumes.amxx", version "1.1")
L 03/25/2019 - 23:22:05: [AMXX] Run time error 10: native error (native "SQL_ReadResult")
L 03/25/2019 - 23:22:05: [AMXX] [0] costumes.sma::register_client (line 370)