#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <fun>
#define PLUGIN "AMX Cards"
#define VERSION "1.5b"
#define AUTHOR "MaTTe (Forditotta: *s1mpla)"
new g_nMsgScreenFade
new g_nMsgScreenFade2
new hasCard[33];
new g_Switch, g_PCard, g_PCardMult, g_DCard, g_LCard, g_MaxLife, g_MCard, g_IACard, g_StrCard,
g_RBCard, g_ACard, g_MaxArmor, g_SpCard, g_SlCard, g_WCard, g_GCard, g_NCard, g_SpyCard, g_MoneyCard,
g_SglassesCard, g_MaxMoney, g_MoneyPerSec, g_BankruptCard, g_InvisCard, g_InvisPercentage,
g_GlowCard, g_CardMode
//*ColorChat Inc*//
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"
}
ColorChat(id, Color:type, const msg[], {Float,Sql,Result,_}:...)
{
new 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';
new 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[])
{
static bool:saytext_used;
static get_user_msgid_saytext;
if(!saytext_used)
{
get_user_msgid_saytext = get_user_msgid("SayText");
saytext_used = true;
}
message_begin(type, get_user_msgid_saytext, _, id);
write_byte(id)
write_string(message);
message_end();
}
Team_Info(id, type, team[])
{
static bool:teaminfo_used;
static get_user_msgid_teaminfo;
if(!teaminfo_used)
{
get_user_msgid_teaminfo = get_user_msgid("TeamInfo");
teaminfo_used = true;
}
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()
{
new i = -1;
while(i <= get_maxplayers())
{
if(is_user_connected(++i))
return i;
}
return -1;
}
//*Plugin*//
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
register_cvar("card_version", VERSION, FCVAR_SERVER|FCVAR_SPONLY);
register_clcmd("say /card", "cmd_card")
register_clcmd("say /kartya", "cmd_card")
register_clcmd("say_team /card", "cmd_card")
register_clcmd("say_team /kartya", "cmd_card")
register_clcmd("say /cardhelp", "cardhelp")
register_clcmd("say_team /cardhelp", "cardhelp")
register_clcmd("say /kartyasegitseg", "cardhelp")
register_clcmd("say_team /kartyasegitseg", "cardhelp")
g_Switch = register_cvar("card_amxcards", "1")
g_CardMode = register_cvar("card_mode", "1")
g_PCardMult = register_cvar("card_powercard_mult", "2.0")
g_MaxLife = register_cvar("card_lifecard_maxhealth", "200")
g_MaxArmor = register_cvar("card_armorcard_maxarmor", "500")
g_MaxMoney = register_cvar("card_moneycard_maxmoney", "16000")
g_MoneyPerSec = register_cvar("card_moneycard_mpc", "10")
g_InvisPercentage = register_cvar("card_invisiblepercent", "25")
g_PCard = register_cvar("card_powercard", "0")
g_DCard = register_cvar("card_deathcard", "0")
g_LCard = register_cvar("card_lifecard", "0")
g_MCard = register_cvar("card_mysterycard", "0")
g_IACard = register_cvar("card_infiniteammocard", "0")
g_StrCard = register_cvar("card_strippercard", "0")
g_RBCard = register_cvar("card_rainbowcard", "0")
g_ACard = register_cvar("card_armorcard", "0")
g_SpCard = register_cvar("card_speedcard", "0")
g_SlCard = register_cvar("card_slowcard", "0")
g_WCard = register_cvar("card_weaknesscard", "0")
g_GCard = register_cvar("card_gravitycard", "0")
g_NCard = register_cvar("card_nadecard", "0")
g_SpyCard = register_cvar("card_spycard", "0")
g_MoneyCard = register_cvar("card_moneycard", "0")
g_BankruptCard = register_cvar("card_bankruptcard", "0")
g_SglassesCard = register_cvar("card_sunglassescard", "0")
g_InvisCard = register_cvar("card_invisiblecard", "0")
g_GlowCard = register_cvar("card_glowcard", "0")
new CardMode = get_pcvar_num(g_CardMode)
switch(CardMode) {
case 0:
{
set_pcvar_num(g_PCard, 1)
set_pcvar_num(g_DCard, 1)
set_pcvar_num(g_LCard, 1)
set_pcvar_num(g_MCard, 1)
set_pcvar_num(g_IACard, 1)
set_pcvar_num(g_StrCard, 1)
set_pcvar_num(g_RBCard, 1)
set_pcvar_num(g_ACard, 1)
set_pcvar_num(g_SpCard, 1)
set_pcvar_num(g_SlCard, 1)
set_pcvar_num(g_WCard, 1)
set_pcvar_num(g_GCard, 1)
set_pcvar_num(g_NCard, 1)
set_pcvar_num(g_SpyCard, 1)
set_pcvar_num(g_MoneyCard, 1)
set_pcvar_num(g_BankruptCard, 1)
set_pcvar_num(g_SglassesCard, 1)
set_pcvar_num(g_InvisCard, 1)
set_pcvar_num(g_GlowCard, 1)
}
case 1:
{
set_pcvar_num(g_PCard, 1)
set_pcvar_num(g_DCard, 1)
set_pcvar_num(g_LCard, 1)
set_pcvar_num(g_MCard, 1)
set_pcvar_num(g_IACard, 1)
set_pcvar_num(g_StrCard, 1)
}
case 2:
{
set_pcvar_num(g_RBCard, 1)
set_pcvar_num(g_ACard, 1)
set_pcvar_num(g_SpCard, 1)
set_pcvar_num(g_SlCard, 1)
set_pcvar_num(g_WCard, 1)
set_pcvar_num(g_GCard, 1)
}
case 3:
{
set_pcvar_num(g_NCard, 1)
set_pcvar_num(g_SpyCard, 1)
set_pcvar_num(g_MoneyCard, 1)
set_pcvar_num(g_BankruptCard, 1)
set_pcvar_num(g_SglassesCard, 1)
set_pcvar_num(g_InvisCard, 1)
set_pcvar_num(g_GlowCard, 1)
}
}
register_logevent("logevent_round_end", 2, "1=Round_End")
set_task(300.0, "advertise")
if(!get_pcvar_num(g_SglassesCard))
return PLUGIN_CONTINUE
g_nMsgScreenFade2 = get_user_msgid("ScreenFade")
register_event("ScreenFade","sunglassescard","be","4=255","5=255","6=255","7>199")
return PLUGIN_CONTINUE
}
public cardhelp(id) {
show_motd(id, "help.txt", "Card Help")
}
public advertise(id){
client_print(id,print_chat,"^1[^4Random Kártya^1]Ezen a szerveren az ^3AMX Cards ^4 %s ^1verziója fut (további információért ^3/cardhelp ^1vagy ^3/kartyasegitseg^1)",VERSION)
}
public cmd_card(id) {
new nev[32]
get_user_name(id, nev, 31)
if(!get_pcvar_num(g_Switch))
return PLUGIN_HANDLED
if(hasCard[id]) {
ColorChat(id, GREEN, "^1[^4Random Kártya^1]Ebben a körben már kiválasztottál egy kártyát ^3%s ^1!",nev)
return PLUGIN_HANDLED;
}
hasCard[id] = 1;
new rand = random_num(1,19)
switch(rand)
{
case 1:
{
ColorChat(id, GREEN, "^1[^4Random Kártya^1]Szép munka ^3%s^1!Megkaptad a ^4 Halál ^1Kártyát!",nev)
deathcard(id)
}
case 2:
{
ColorChat(id, GREEN, "^1[^4Random Kártya^1]Szép munka ^3%s^1!Megkaptad a ^4 Élet ^1Kártyát!",nev)
lifecard(id)
}
case 3:
{
ColorChat(id, GREEN, "^1[^4Random Kártya^1]Szép munka ^3%s^1!Megkaptad a ^4 Rejtély ^1Kártyát!",nev)
mysterycard(id)
}
case 4:
{
ColorChat(id, GREEN, "^1[^4Random Kártya^1]Szép munka ^3%s^1!Megkaptad a ^4 Végtelen Löszer ^1Kártyát!",nev)
infiniteammocard(id)
}
case 5:
{
ColorChat(id, GREEN, "^1[^4Random Kártya^1]Szép munka ^3%s^1!Megkaptad a ^4 Lefegyvezerés ^1Kártyát!",nev)
strippercard(id)
}
case 6:
{
ColorChat(id, GREEN, "^1[^4Random Kártya^1]Szép munka ^3%s^1!Megkaptad a ^4 Szivárvány ^1Kártyát!",nev)
rainbowcard(id)
}
case 7:
{
ColorChat(id, GREEN, "^1[^4Random Kártya^1]Szép munka ^3%s^1!Megkaptad a ^4 Páncél ^1Kártyát!",nev)
armorcard(id)
}
case 8:
{
ColorChat(id, GREEN, "^1[^4Random Kártya^1]Szép munka ^3%s^1!Megkaptad a ^4 Sebesség ^1Kártyát!",nev)
speedcard(id)
}
case 9:
{
ColorChat(id, GREEN, "^1[^4Random Kártya^1]Szép munka ^3%s^1!Megkaptad a ^4 Lassú ^1Kártyát!",nev)
slowcard(id)
}
case 10:
{
ColorChat(id, GREEN, "^1[^4Random Kártya^1]Szép munka ^3%s^1!Megkaptad a ^4 Erö ^1Kártyát!",nev)
powercard(id)
}
case 11:
{
ColorChat(id, GREEN, "^1[^4Random Kártya^1]Szép munka ^3%s^1!Megkaptad a ^4 Gyengeség^1Kártyát!",nev)
weaknesscard(id)
}
case 12:
{
ColorChat(id, GREEN, "^1[^4Random Kártya^1]Szép munka ^3%s^1!Megkaptad a ^4 Gravitáció ^1Kártyát!",nev)
gravitycard(id)
}
case 13:
{
ColorChat(id, GREEN, "^1[^4Random Kártya^1]Szép munka ^3%s^1!Megkaptad a ^4 Gránát ^1Kártyát!",nev)
nadecard(id)
}
case 14:
{
ColorChat(id, GREEN, "^1[^4Random Kártya^1]Szép munka ^3%s^1!Megkaptad a ^4 Kém ^1Kártyát!",nev)
spycard(id)
}
case 15:
{
ColorChat(id, GREEN, "^1[^4Random Kártya^1]Szép munka ^3%s^1!Megkaptad a ^4 Pénz ^1Kártyát!",nev)
moneycard(id)
}
case 16:
{
ColorChat(id, GREEN, "^1[^4Random Kártya^1]Szép munka ^3%s^1!Megkaptad a ^4 Csöd ^1Kártyát!",nev)
bankruptcard(id)
}
case 17:
{
ColorChat(id, GREEN, "^1[^4Random Kártya^1]Szép munka ^3%s^1!Megkaptad a ^4 Láthatatlan ^1Kártyát!",nev)
invisiblecard(id)
}
case 18:
{
ColorChat(id, GREEN, "^1[^4Random Kártya^1]Szép munka ^3%s^1!Megkaptad a ^4 Világitó ^1Kártyát!",nev)
glowcard(id)
}
case 19:
{
ColorChat(id, GREEN, "^1[^4Random Kártya^1]Szép munka ^3%s^1!Megkaptad a ^4 Napszemüveg ^1Kártyát!",nev)
sunglassescard(id)
}
}
return PLUGIN_CONTINUE
}
public deathcard(id) {
if(!get_pcvar_num(g_DCard))
return PLUGIN_CONTINUE
client_cmd(id, "kill")
return PLUGIN_CONTINUE
}
public give_life(id) {
new health = get_user_health(id)
new maxhealth = get_pcvar_num(g_MaxLife)
if(health == maxhealth)
return PLUGIN_CONTINUE
set_user_health(id, health+3)
set_task(1.0, "give_life", id)
return PLUGIN_CONTINUE
}
public give_armor(id) {
new armor = get_user_armor(id)
new maxarmor = get_pcvar_num(g_MaxArmor)
if(armor == maxarmor)
return PLUGIN_CONTINUE
set_user_armor(id, armor+5)
set_task(1.0, "give_armor", id)
return PLUGIN_CONTINUE
}
public lifecard(id) {
if(!get_pcvar_num(g_LCard))
return PLUGIN_CONTINUE
give_life(id)
return PLUGIN_CONTINUE
}
public armorcard(id) {
if(!get_pcvar_num(g_ACard))
return PLUGIN_CONTINUE
give_armor(id)
return PLUGIN_CONTINUE
}
public speedcard(id) {
if(!get_pcvar_num(g_SpCard))
return PLUGIN_CONTINUE
set_user_maxspeed(id, 640.0)
return PLUGIN_CONTINUE
}
public slowcard(id) {
if(!get_pcvar_num(g_SlCard))
return PLUGIN_CONTINUE
set_user_maxspeed(id, 160.0)
return PLUGIN_CONTINUE
}
public powercard(id) {
if(!get_pcvar_num(g_PCard))
return PLUGIN_CONTINUE
new damage = read_data(2)
new Float:damage_mult = damage * get_pcvar_float(g_PCardMult)
damage == damage_mult
return PLUGIN_CONTINUE
}
public weaknesscard(id) {
if(!get_pcvar_num(g_WCard))
return PLUGIN_CONTINUE
new damage = read_data(2)
new Float:damage_mult = damage / get_cvar_float("powercard_mult")
damage == damage_mult
return PLUGIN_CONTINUE
}
public mysterycard(id) {
if(!get_pcvar_num(g_MCard))
return PLUGIN_CONTINUE
new rand2 = random_num(1, 3)
switch(rand2)
{
case 1:
{
set_user_noclip(id, 1)
}
case 2:
{
set_user_godmode(id, 1)
}
case 3:
{
set_user_rendering(id, kRenderFxNone, 0, 0, 0, kRenderNormal, 0)
}
}
return PLUGIN_CONTINUE
}
public infiniteammocard(id) {
if(!get_pcvar_num(g_IACard))
return PLUGIN_CONTINUE
new clip, ammo
get_user_weapon(id, clip, ammo)
if(clip==0)
{
cs_set_weapon_ammo(id, 30)
}
return PLUGIN_CONTINUE
}
public strippercard(id) {
if(!get_pcvar_num(g_StrCard))
return PLUGIN_CONTINUE
strip_user_weapons(id)
give_item(id, "weapon_knife")
set_user_health(id, 15)
return PLUGIN_CONTINUE
}
public rainbowcard(id) {
if(!get_pcvar_num(g_RBCard))
return PLUGIN_CONTINUE
new rand3 = random_num(1, 4)
new rgb[3]
switch(rand3)
{
case 1:
{
rgb[0] = 255
rgb[1] = 0
rgb[2] = 0
}
case 2:
{
rgb[0] = 255
rgb[1] = 255
rgb[2] = 0
}
case 3:
{
rgb[0] = 255
rgb[1] = 255
rgb[2] = 255
}
case 4:
{
rgb[0] = 0
rgb[1] = 255
rgb[2] = 0
}
}
message_begin(MSG_ONE, g_nMsgScreenFade, {0,0,0}, id)
write_short(read_data(1))
write_short(read_data(2))
write_short(read_data(3))
write_byte (rgb[0])
write_byte (rgb[1])
write_byte (rgb[2])
write_byte (read_data(7))
message_end()
return PLUGIN_CONTINUE
}
public gravitycard(id) {
if(!get_pcvar_num(g_GCard))
return PLUGIN_CONTINUE
new rand5 = random_num(1, 4)
switch(rand5) {
case 1: {
set_user_gravity(id, 100.0)
}
case 2: {
set_user_gravity(id, 200.0)
}
case 3: {
set_user_gravity(id, 300.0)
}
case 4: {
set_user_gravity(id, 400.0)
}
}
return PLUGIN_CONTINUE
}
public givenade(id) {
give_item(id, "weapon_hegrenade")
set_task(0.1, "givenade", id)
}
public nadecard(id) {
if(!get_pcvar_num(g_NCard))
return PLUGIN_CONTINUE
givenade(id)
return PLUGIN_CONTINUE
}
public spycard(id) {
if(!get_pcvar_num(g_SpyCard))
return PLUGIN_CONTINUE
new Team = get_user_team(id)
new rand4 = random_num(1, 4)
switch(rand4)
{
case 1:
{
if(Team == 1)
{
cs_set_user_model(id, "sas")
} else if(Team == 2) {
cs_set_user_model(id, "leet")
}
}
case 2:
{
if(Team== 1)
{
cs_set_user_model(id, "gsg9")
} else if(Team == 2) {
cs_set_user_model(id, "arctic")
}
}
case 3:
{
if(Team == 1)
{
cs_set_user_model(id, "gign")
} else if(Team == 2) {
cs_set_user_model(id, "guerilla")
}
}
case 4:
{
if(Team== 1)
{
cs_set_user_model(id, "urban")
} else if(Team == 2) {
cs_set_user_model(id, "phoenix")
}
}
}
return PLUGIN_CONTINUE
}
public give_money(id) {
new money = cs_get_user_money(id)
if(money==get_pcvar_num(g_MaxMoney))
return PLUGIN_CONTINUE
cs_set_user_money(id, money + get_pcvar_num(g_MoneyPerSec))
set_task(1.0, "give_money", id)
return PLUGIN_CONTINUE
}
public moneycard(id) {
if(!get_pcvar_num(g_MoneyCard))
return PLUGIN_CONTINUE
give_money(id)
return PLUGIN_CONTINUE
}
public bankruptcard(id) {
if(!get_pcvar_num(g_BankruptCard))
return PLUGIN_CONTINUE
new money = cs_get_user_money(id)
cs_set_user_money(id, money - money)
return PLUGIN_CONTINUE
}
public sunglassescard(id) {
if(!get_pcvar_num(g_SglassesCard))
return PLUGIN_CONTINUE
message_begin(MSG_ONE, g_nMsgScreenFade2, {0,0,0}, id)
write_short(read_data(1))
write_short(read_data(2))
write_short(read_data(3))
write_byte (0)
write_byte (0)
write_byte (0)
write_byte (read_data(7))
message_end()
return PLUGIN_CONTINUE
}
public invisiblecard(id) {
if(!get_pcvar_num(g_InvisCard))
return PLUGIN_CONTINUE
new percentage = get_pcvar_num(g_InvisPercentage)
set_user_rendering(id, kRenderFxNone, 0, 0, 0, kRenderNormal, percentage)
return PLUGIN_CONTINUE
}
public glowcard(id) {
if(!get_pcvar_num(g_GlowCard))
return PLUGIN_CONTINUE
set_user_rendering(id, kRenderFxNone, 224, 12, 224, kRenderGlow, 100)
return PLUGIN_CONTINUE
}
public logevent_round_end()
{
new players[32], num;
get_players(players, num);
new id;
for(new i=0;i<num;i++)
{
id = players[i]
hasCard[id] = 0
set_user_godmode(id, 0)
set_user_noclip(id, 0)
set_user_health(id, 100)
set_user_maxspeed(id, 320.0)
set_user_rendering(id, kRenderFxNone, 0, 0, 0, kRenderNormal, 100)
cs_reset_user_model(id)
}
}