Kod: Tümünü seç
#include <amxmodx>
#include <amxmisc>
#include <fakemeta>
#define PLUG_NAME "Sapka"
#define PLUG_AUTH "SgtBane"
#define PLUG_VERS "1.8"
#define PLUG_VERS2 "emirakpinar"
#define PLUG_TAG "Number[ONE]"
#define PLUG_ADMIN ADMIN_RCON
#define PLUG_ADMINB ADMIN_CHAT
#define OFFSET_GLOWSET 100
#define HAT_ALL 0
#define HAT_ADMIN 1
#define HAT_TERROR 2
#define HAT_COUNTER 3
#define menusize 220
#define maxTry 15
#define modelpath "models/hat"
#define REKLAM "Number[ONE]"
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)
new g_HatEnt[33]
new CurrentHat[33]
new HatFile[64]
new MenuPages, TotalHats
#define MAX_HATS 64
new HATMDL[MAX_HATS][26]
new HATNAME[MAX_HATS][26]
new HATREST[MAX_HATS]
public plugin_init() {
register_plugin(PLUG_NAME, PLUG_VERS, PLUG_VERS2)
register_concmd("amx_givehat", "Give_Hat", PLUG_ADMIN, "<nick> <mdl #>")
register_concmd("amx_removehats", "Remove_Hat", PLUG_ADMIN, " - Removes hats from everyone.")
register_clcmd("say /sapka","sapkamenu")
}
public sapkamenu(id) {
static Item[64]
formatex(Item, charsmax(Item),"\rSapka Menu \w| By.$ava$CI |")
new Menu = menu_create(Item, "sapkamenu_devam")
formatex(Item, charsmax(Item),"\w[ \r%s \w] \r- \yTurk Maske",REKLAM)
menu_additem(Menu, Item, "1")
formatex(Item, charsmax(Item),"\w[ \r%s \w] \r- \ySteve",REKLAM)
menu_additem(Menu, Item, "2")
formatex(Item, charsmax(Item),"\w[ \r%s \w] \r- \yOrdek",REKLAM)
menu_additem(Menu, Item, "3")
formatex(Item, charsmax(Item),"\w[ \r%s \w] \r- \ySubway Surf^n",REKLAM)
menu_additem(Menu, Item, "4")
formatex(Item, charsmax(Item),"\w[ \r%s \w] \r- \rSapkayi Kaldir",REKLAM)
menu_additem(Menu, Item, "7")
formatex(Item, charsmax(Item),"\w[ \r%s \w] \r- \yAyi",REKLAM)
menu_additem(Menu, Item, "5")
formatex(Item, charsmax(Item),"\w[ \r%s \w] \r- \yKampci",REKLAM)
menu_additem(Menu, Item, "6")
formatex(Item, charsmax(Item),"\w[ \r%s \w] \r- \yEtek",REKLAM)
menu_additem(Menu, Item, "8")
formatex(Item, charsmax(Item),"\w[ \r%s \w] \r- \ySigara^n",REKLAM)
menu_additem(Menu, Item, "9")
formatex(Item, charsmax(Item),"\w[ \r%s \w] \r- \rSapkayi Kaldir",REKLAM)
menu_additem(Menu, Item, "7")
formatex(Item, charsmax(Item),"\w[ \r%s \w] \r- \yKurt",REKLAM)
menu_additem(Menu, Item, "10")
formatex(Item, charsmax(Item),"\w[ \r%s \w] \r- \yTimsah",REKLAM)
menu_additem(Menu, Item, "11")
formatex(Item, charsmax(Item),"\w[ \r%s \w] \r- \yIsyan Team",REKLAM)
menu_additem(Menu, Item, "12")
formatex(Item, charsmax(Item),"\w[ \r%s \w] \r- \yZeka Küpü",REKLAM)
menu_additem(Menu, Item, "13")
formatex(Item, charsmax(Item),"\w[ \r%s \w] \r- \yYakisikli",REKLAM)
menu_additem(Menu, Item, "14")
formatex(Item, charsmax(Item),"\w[ \r%s \w] \r- \yKedi^n",REKLAM)
menu_additem(Menu, Item, "15")
formatex(Item, charsmax(Item),"\w[ \r%s \w] \r- \rSapkayi Kaldir",REKLAM)
menu_additem(Menu, Item, "7")
formatex(Item, charsmax(Item), "\yGeri",REKLAM)
menu_setprop(Menu, MPROP_BACKNAME,Item)
formatex(Item, charsmax(Item), "\yIleri",REKLAM)
menu_setprop(Menu, MPROP_NEXTNAME,Item)
formatex(Item, charsmax(Item), "\yCikis Yap",REKLAM)
menu_setprop(Menu,MPROP_EXITNAME,Item)
menu_display(id, Menu,0)
}
public sapkamenu_devam(id, menu, item) {
if( item == MENU_EXIT )
{
menu_destroy(menu);
return PLUGIN_HANDLED;
}
new imodelnum
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 1:{
imodelnum = 1
Set_Hat(id,imodelnum,id)
ChatColor(id,"!n[!tTurk Maska!g sapkasini sectiniz.")
}
case 2:{
ChatColor(id,"!n[!tSteve!n]!g sapkasini sectiniz.")
imodelnum = 2
Set_Hat(id,imodelnum,id)
}
case 3:{
ChatColor(id,"!n[!tOrdek!n]!g sapkasini sectiniz.")
imodelnum = 3
Set_Hat(id,imodelnum,id)
}
case 4:{
ChatColor(id,"!n[!tSubway Surf!n]!g sapkasini sectiniz.")
imodelnum = 4
Set_Hat(id,imodelnum,id)
}
case 7:{
ChatColor(id,"!n[!tSectiginiz!n] sapkayi kaldirdiniz.")
imodelnum = 0
Set_Hat(id,imodelnum,id)
}
case 5:{
ChatColor(id,"!n[tAyi!n]!g sapkasini sectiniz.")
imodelnum = 5
Set_Hat(id,imodelnum,id)
}
case 6:{
ChatColor(id,"!n[!tKampci!n]!g sapkasini sectiniz.")
imodelnum = 6
Set_Hat(id,imodelnum,id)
}
case 8:{
ChatColor(id,"!n[!tEtek!n]!g sapkasini sectiniz.")
imodelnum = 7
Set_Hat(id,imodelnum,id)
}
case 9:{
ChatColor(id,"!n[!tSigara!n]!g sapkasini sectiniz.")
imodelnum = 8
Set_Hat(id,imodelnum,id)
}
case 10:{
ChatColor(id,"!n[!tKurt!n]!g sapkasini sectiniz.")
imodelnum = 9
Set_Hat(id,imodelnum,id)
}
case 11:{
ChatColor(id,"!n[!tTimsah!n]!g sapkasini sectiniz.")
imodelnum = 10
Set_Hat(id,imodelnum,id)
}
case 12:{
ChatColor(id,"!n[!tIsyan Team!n]!g sapkasini sectiniz.")
imodelnum = 11
Set_Hat(id,imodelnum,id)
}
case 13:{
ChatColor(id,"!n[!tZeka Küpü!n]!g sapkasini sectiniz.")
imodelnum = 12
Set_Hat(id,imodelnum,id)
}
case 14:{
ChatColor(id,"!n[!tYakisikli!n]!g sapkasini sectiniz.")
imodelnum = 13
Set_Hat(id,imodelnum,id)
}
case 15:{
ChatColor(id,"!n[!tKedi!n]!g sapkasini sectiniz.")
imodelnum = 14
Set_Hat(id,imodelnum,id)
}
}
return PLUGIN_HANDLED
}
public plugin_precache() {
new cfgDir[32]
get_configsdir(cfgDir,31)
formatex(HatFile,63,"%s/HatList.ini",cfgDir)
command_load()
new tmpfile [101]
for (new i = 1; i < TotalHats; ++i) {
format(tmpfile, 100, "%s/%s", modelpath, HATMDL[i])
if (file_exists (tmpfile)) {
precache_model(tmpfile)
server_print("[%s] Precached %s", PLUG_TAG, HATMDL[i])
} else {
server_print("[%s] Failed to precache %s", PLUG_TAG, tmpfile)
}
}
}
public Give_Hat(id, req_flag)
{
if( !(get_user_flags(id) & req_flag) )
return PLUGIN_HANDLED
new smodelnum[5], name[32]
read_argv(1,name,31)
read_argv(2,smodelnum,4)
new player = cmd_target(id,name,2)
if (!player) {
client_print(id,print_chat,"[%s] Player With That Name Does Not Exist.",PLUG_TAG)
return PLUGIN_HANDLED
}
new imodelnum = (str_to_num(smodelnum))
if (imodelnum > MAX_HATS) return PLUGIN_HANDLED
Set_Hat(player,imodelnum,id)
return PLUGIN_CONTINUE
}
public Remove_Hat(id, req_flag)
{
if( !(get_user_flags(id) & req_flag) )
return PLUGIN_HANDLED
for (new i = 0; i < get_maxplayers(); ++i) {
if (is_user_connected(i) && g_HatEnt[i] > 0) {
Set_Hat(id, 0, 0)
}
}
client_print(id,print_chat,"[%s] Removed hats from everyone.",PLUG_TAG)
return PLUGIN_CONTINUE
}
public Set_Hat(player, imodelnum, targeter) {
new name[32]
new tmpfile[101]
format(tmpfile, 100, "%s/%s", modelpath, HATMDL[imodelnum])
get_user_name(player, name, 31)
if (imodelnum == 0) {
if(g_HatEnt[player] > 0) {
fm_set_entity_visibility(g_HatEnt[player], 0)
}
if (targeter != 0) {
//client_print(targeter, print_chat, "[%s] Removed hat from %s",PLUG_TAG,name)
}
} else if (file_exists(tmpfile)) {
if(g_HatEnt[player] < 1) {
g_HatEnt[player] = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "info_target"))
if(g_HatEnt[player] > 0) {
set_pev(g_HatEnt[player], pev_movetype, MOVETYPE_FOLLOW)
set_pev(g_HatEnt[player], pev_aiment, player)
set_pev(g_HatEnt[player], pev_rendermode, kRenderNormal)
engfunc(EngFunc_SetModel, g_HatEnt[player], tmpfile)
}
} else {
engfunc(EngFunc_SetModel, g_HatEnt[player], tmpfile)
}
CurrentHat[player] = imodelnum
if (targeter != 0) {
//client_print(targeter, print_chat, "[%s] Set %s on %s",PLUG_TAG,HATNAME[imodelnum],name)
}
}
}
public command_load() {
if(file_exists(HatFile)) {
HATMDL[0] = ""
HATNAME[0] = "None"
TotalHats = 1
new TempCrapA[2]
new sfLineData[128]
new file = fopen(HatFile,"rt")
while(file && !feof(file)) {
fgets(file,sfLineData,127)
// Skip Comment ; // and Empty Lines
if (sfLineData[0] == ';' || strlen(sfLineData) < 1 || (sfLineData[0] == '/' && sfLineData[1] == '/')) continue
// BREAK IT UP!
parse(sfLineData, HATMDL[TotalHats], 25, HATNAME[TotalHats], 25, TempCrapA, 1)
if (TempCrapA[0] == 'A' || TempCrapA[0] == '1') {
HATREST[TotalHats] = HAT_ADMIN
} else if (TempCrapA[0] == 'T' || TempCrapA[0] == '2') {
HATREST[TotalHats] = HAT_TERROR
} else if (TempCrapA[0] == 'C' || TempCrapA[0] == '3') {
HATREST[TotalHats] = HAT_COUNTER
} else {
HATREST[TotalHats] = HAT_ALL
}
TotalHats += 1
if(TotalHats >= MAX_HATS) {
server_print("[%s] Reached hat limit",PLUG_TAG)
break
}
}
if(file) fclose(file)
}
MenuPages = floatround((TotalHats / 8.0), floatround_ceil)
server_print("[%s] Loaded %i hats, and Generated %i pages",PLUG_TAG,TotalHats,MenuPages)
}
stock ChatColor(const id, const input[], any:...)
{
new count = 1, players[32]
static msg[191]
vformat(msg, 190, input, 3)
format(msg, sizeof(msg), "^1[ ^3%s ^1]^4 %s", REKLAM, msg)
replace_all(msg, 190, "!g", "^4")
replace_all(msg, 190, "!n", "^1")
replace_all(msg, 190, "!t", "^3")
if (id) players[0] = id; else get_players(players, count, "ch")
{
for (new i = 0; i < count; i++)
{
if (is_user_connected(players[i]))
{
message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i])
write_byte(players[i]);
write_string(msg);
message_end();
}
}
}
}