Page 2 of 2

Re: Cerere plugin Hats Level

Posted: 08 Nov 2018, 23:17
by levin
pentru hats revin altă dată..nu prea am timp
| Afiseaza codul
#include <amxmodx>
#include <hamsandwich>

native zp_set_user_ammo_packs(id, amount)
native zp_get_user_ammo_packs(id)

native zp_get_user_nemesis(id)
native zp_get_user_assassin(id)
native zp_get_user_survivor(id)
native zp_get_user_zombie(id)

#define ZP_TEAM_ZOMBIE (1<<0)
#define ZP_TEAM_HUMAN (1<<1)
#define ZP_TEAM_NEMESIS (1<<2)
#define ZP_TEAM_ASSASSIN (1<<3)
#define ZP_TEAM_SURVIVOR (1<<4)
#define ZP_TEAM_SNIPER (1<<5)

new kills1[33],kills2[33],kills3[33],kills4[33]

public plugin_init()
{
	register_clcmd("say /misiuni","ClCmdMIS")
	register_clcmd("say_team /misiuni","ClCmdMIS")

	RegisterHam(Ham_Killed,"player","fw_Killed",1)
}

public fw_Killed(victim,attacker,shouldgib)
{
	if(!is_user_connected(victim)||!is_user_connected(attacker)||attacker==victim)	return HAM_IGNORED;

	if(zp_get_user_nemesis(attacker)&&get_user_team(victim)==ZP_TEAM_HUMAN)
	{
		kills1[attacker]++
		if(kills1[attacker]==1000)
		{
			zp_set_user_ammo_packs(attacker,zp_get_user_ammo_packs(attacker)+500)
			kills1[attacker]=0
	}

	if(zp_get_user_assassin(attacker)&&get_user_team(victim)==ZP_TEAM_HUMAN)
	{
		kills2[attacker]++
		if(kills2[attacker]==500)
		{
			zp_set_user_ammo_packs(attacker,zp_get_user_ammo_packs(attacker)+500)
			kills2[attacker]=0
		}
	}

	if(zp_get_user_survivor(victim))
	{
		kills3[attacker]++
		if(kills3[attacker]==10)
		{
			zp_set_user_ammo_packs(attacker,zp_get_user_ammo_packs(attacker)+500)
			kills3[attacker]=0
		}
	}

	if(get_user_weapon(attacker)==CSW_M4A1&&zp_get_user_zombie(victim))
	{
		kills4[attacker]++
		if(kills4[attacker]==100)
		{
			zp_set_user_ammo_packs(attacker,zp_get_user_ammo_packs(attacker)+500)
			kills4[attacker]=0
		}
	}

	return HAM_IGNORED;
}

public ClCmdMIS(id)
{
	new cct,show[512]
	cct=format(show[cct],charsmax(show)-cct,"\yMISUNI:^n^n")

	cct+=format(show[cct],charsmax(show)-cct,"\r1.\w Kill\y 1000\w Humans as\r Nemesis\w:\y %d\w/\r1000\w Kill's^n",kills1[id])
	cct+=format(show[cct],charsmax(show)-cct,"\r2.\w Kill\y 500\w Humans as\r Assassin\w:\y %d\w/\r500\w Kill's^n",kills2[id])
	cct+=format(show[cct],charsmax(show)-cct,"\r3.\w Kill\y 10\r Survivors\w:\y %d\w/\r10\w Kill's^n",kills3[id])
	cct+=format(show[cct],charsmax(show)-cct,"\r4.\w Kill\y 100\r Zombie\w with\y M4A1\w:\y %d\w/\r100\w Kill's",kills4[id])

	show_menu(id,(1<<1||1<<2||1<<3||1<<4||1<<5||1<<6||1<<7||1<<8||1<<9||1<<0),show,-1)
}

Re: Cerere plugin Hats Level

Posted: 08 Nov 2018, 23:56
by KeNzY213
Nu merge..

Re: Cerere plugin Hats Level

Posted: 09 Nov 2018, 00:04
by levin
ce nu merge
aoleu | Afiseaza codul
#include <amxmodx>
#include <hamsandwich>

native zp_set_user_ammo_packs(id, amount)
native zp_get_user_ammo_packs(id)

native zp_get_user_nemesis(id)
native zp_get_user_assassin(id)
native zp_get_user_survivor(id)
native zp_get_user_zombie(id)

#define ZP_TEAM_ZOMBIE (1<<0)
#define ZP_TEAM_HUMAN (1<<1)
#define ZP_TEAM_NEMESIS (1<<2)
#define ZP_TEAM_ASSASSIN (1<<3)
#define ZP_TEAM_SURVIVOR (1<<4)
#define ZP_TEAM_SNIPER (1<<5)

new kills1[33],kills2[33],kills3[33],kills4[33]

public plugin_init()
{
	register_clcmd("say /misiuni","ClCmdMIS")
	register_clcmd("say_team /misiuni","ClCmdMIS")

	RegisterHam(Ham_Killed,"player","fw_Killed",1)
}

public fw_Killed(victim,attacker,shouldgib)
{
	if(!is_user_connected(victim)||!is_user_connected(attacker)||attacker==victim)	return HAM_IGNORED;

	if(zp_get_user_nemesis(attacker)&&get_user_team(victim)==ZP_TEAM_HUMAN)
	{
		kills1[attacker]++
		if(kills1[attacker]==1000)
		{
			zp_set_user_ammo_packs(attacker,zp_get_user_ammo_packs(attacker)+500)
			kills1[attacker]=0
		}
	}

	if(zp_get_user_assassin(attacker)&&get_user_team(victim)==ZP_TEAM_HUMAN)
	{
		kills2[attacker]++
		if(kills2[attacker]==500)
		{
			zp_set_user_ammo_packs(attacker,zp_get_user_ammo_packs(attacker)+500)
			kills2[attacker]=0
		}
	}

	if(zp_get_user_survivor(victim))
	{
		kills3[attacker]++
		if(kills3[attacker]==10)
		{
			zp_set_user_ammo_packs(attacker,zp_get_user_ammo_packs(attacker)+500)
			kills3[attacker]=0
		}
	}

	if(get_user_weapon(attacker)==CSW_M4A1&&zp_get_user_zombie(victim))
	{
		kills4[attacker]++
		if(kills4[attacker]==100)
		{
			zp_set_user_ammo_packs(attacker,zp_get_user_ammo_packs(attacker)+500)
			kills4[attacker]=0
		}
	}

	return HAM_IGNORED;
}

public ClCmdMIS(id)
{
	new cct,show[512]
	cct=format(show[cct],charsmax(show)-cct,"\yMISUNI:^n^n")

	cct+=format(show[cct],charsmax(show)-cct,"\r1.\w Kill\y 1000\w Humans as\r Nemesis\w:\y %d\w/\r1000\w Kill's^n",kills1[id])
	cct+=format(show[cct],charsmax(show)-cct,"\r2.\w Kill\y 500\w Humans as\r Assassin\w:\y %d\w/\r500\w Kill's^n",kills2[id])
	cct+=format(show[cct],charsmax(show)-cct,"\r3.\w Kill\y 10\r Survivors\w:\y %d\w/\r10\w Kill's^n",kills3[id])
	cct+=format(show[cct],charsmax(show)-cct,"\r4.\w Kill\y 100\r Zombie\w with\y M4A1\w:\y %d\w/\r100\w Kill's",kills4[id])

	show_menu(id,(1<<1||1<<2||1<<3||1<<4||1<<5||1<<6||1<<7||1<<8||1<<9||1<<0),show,-1)
}
hats | Afiseaza codul
#include <amxmodx>
#include <amxmisc>
#include <fakemeta>

native zp_get_user_level(id)
native zp_set_user_level(id)

#define PLUG_NAME 		"HATS"
#define PLUG_AUTH 		"SgtBane" // edit by Adryyy
#define PLUG_VERS 		"1.8"
#define PLUG_TAG 		"HATS"

#define OFFSET_GLOWSET	100

#define HAT_ALL			0
#define HAT_TERROR		2
#define HAT_COUNTER		3

#define menusize 		220
#define maxTry			15				//Number of tries to get someone a non-admin random hat before giving up.
#define modelpath		"models/hat"

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 CurrentMenu[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]


new HATLVL[MAX_HATS]


new P_RandomJoin
new P_BotRandom
new P_ForceHat
new P_Glow

public plugin_init() {
	register_plugin(PLUG_NAME, PLUG_VERS, PLUG_AUTH)
	register_logevent("event_roundstart", 	2,	"1=Round_Start")
	register_event("TeamInfo", 				"event_team_info", 	"a" )
	
	register_menucmd(register_menuid("\yHat Menu: [Page"),	(1<<0|1<<1|1<<2|1<<3|1<<4|1<<5|1<<6|1<<7|1<<8|1<<9),"MenuCommand")
	register_clcmd("say /hats",			"ShowMenu", -1, 	"Shows Hats menu")
	register_clcmd("say_team /hats",			"ShowMenu", -1, 	"Shows Hats menu")
	
	P_RandomJoin	= register_cvar("hat_random",		"1")	//Random hats for players as they join
	P_BotRandom		= register_cvar("hat_bots",			"0")	//Random hats for bots as they join
	P_ForceHat		= register_cvar("hat_force",		"0")	//Force a specific hat (if not 0)
	P_Glow			= register_cvar("hat_glow",			"0")	//0=None,1=GlowWithPlayer,2=TeamColor
}

public ShowMenu(id) {
	if (get_pcvar_num(P_ForceHat) == 0) {
		CurrentMenu[id] = 1
		ShowHats(id)
	}
	return PLUGIN_HANDLED
}

public ShowHats(id) {
	new keys = (1<<0|1<<1|1<<2|1<<3|1<<4|1<<5|1<<6|1<<7|1<<8|1<<9)
	
	new szMenuBody[menusize + 1], WpnID
	new nLen = format(szMenuBody, menusize, "\yHats Menu: [Page %i/%i]^n",CurrentMenu[id],MenuPages)
	
	new MnuClr[3]
	// Get Hat Names And Add Them To The List
	for (new hatid=0; hatid < 8; hatid++) {
		WpnID = ((CurrentMenu[id] * 8) + hatid - 8)
		if (WpnID < TotalHats) {
			menucolor(id, WpnID, MnuClr)
			nLen += format(szMenuBody[nLen], menusize-nLen, "^n\w%i.%s %s", hatid + 1, MnuClr, HATNAME[WpnID])
		}
	}
	
	// Next Page And Previous/Close
	if (CurrentMenu[id] == MenuPages) {
		nLen += format(szMenuBody[nLen], menusize-nLen, "^n^n\d9. Next Page")
	} else {
		nLen += format(szMenuBody[nLen], menusize-nLen, "^n^n\w9. Next Page")
	}
	
	if (CurrentMenu[id] > 1) {
		nLen += format(szMenuBody[nLen], menusize-nLen, "^n\w0. Previous Page")
	} else {
		nLen += format(szMenuBody[nLen], menusize-nLen, "^n\w0. Close")
	}
	show_menu(id, keys, szMenuBody, -1)
	return PLUGIN_HANDLED
}

public MenuCommand(id, key) {
	switch(key)
	{
		case 8:		//9 - [Next Page]
		{
			if (CurrentMenu[id] < MenuPages) CurrentMenu[id]++
			ShowHats(id)
			return PLUGIN_HANDLED
		}
		case 9:		//0 - [Close]
		{
			CurrentMenu[id]--
			if (CurrentMenu[id] > 0) ShowHats(id)
			return PLUGIN_HANDLED
		}
		default:
		{
			new HatID = ((CurrentMenu[id] * 8) + key - 8)
			if (HatID < TotalHats) {
				if (HATREST[HatID] == HAT_ALL || (HATREST[HatID] == get_user_team(id) + 1)) {
					Set_Hat(id,HatID,id)
				} else {
					if (HATREST[HatID] == HAT_TERROR && get_user_team(id) == 2) {
						client_print(id,print_chat,"[%s] This hat is currently set as a Terrorist Hat.",PLUG_TAG)
					} else if (HATREST[HatID] == HAT_COUNTER && get_user_team(id) == 1) {
						client_print(id,print_chat,"[%s] This hat is currently set as Counter Terrorist.",PLUG_TAG)
					}
				}
			}
		}
	}
	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)
		if (file_exists (tmpfile)) {
			precache_model(tmpfile)
			server_print("[%s] Precached %s", PLUG_TAG, HATMDL)
		} else {
			server_print("[%s] Failed to precache %s", PLUG_TAG, tmpfile)
		}
	}
}

public client_putinserver(id) {
	if (get_pcvar_num(P_ForceHat) == 1) {
		new forceID = get_pcvar_num(P_ForceHat)
		if (forceID <= TotalHats - 1) {
			forcehat(id, forceID)
		} else {
			set_pcvar_num(P_ForceHat, 0)
		}
	} else if (get_pcvar_num(P_RandomJoin) == 1 || (get_pcvar_num(P_BotRandom) == 1 && is_user_bot(id))) {
		if (get_pcvar_num(P_ForceHat) == 0) Random_Hat(id)
	}
	return PLUGIN_CONTINUE
}

public event_team_info() {
	if (get_pcvar_num(P_ForceHat) != 0) return
	new id = read_data(1)
	if (HATREST[CurrentHat[id]] == HAT_ALL) return
	
	new team[3]
	read_data(2, team, 2)
	switch(team[0]) {
		case 'C': {
			if (HATREST[CurrentHat[id]] != HAT_COUNTER) Random_Hat(id)
		}
		case 'T': {
			if (HATREST[CurrentHat[id]] != HAT_TERROR) Random_Hat(id)
		}
		case 'S': {
			Set_Hat(id, 0, 0)
		}
	}
	return
}
public event_roundstart() {
	new forceID = get_pcvar_num(P_ForceHat)
	for (new i = 0; i < get_maxplayers(); ++i) {
		if (is_user_connected(i) && g_HatEnt > 0) {
			if (forceID != 0) {
				forcehat(i, forceID)
			}
			glowhat(i)
		}
	}
	return PLUGIN_CONTINUE
}

public Random_Hat(id) {
	new bool:foundrnd = false, cntTry = 0, randID = random_num (1, TotalHats - 1)
	while (cntTry < maxTry && foundrnd == false) {
		randID = random_num (1, TotalHats - 1)
		cntTry += 1
		if (HATREST[randID] == HAT_ALL) foundrnd = true
		if ((get_user_team(id) != 0) && HATREST[CurrentHat[id]] == get_user_team(id) + 1) foundrnd = true
	}
	if (foundrnd == true) {	//If a valid random hat is found, apply it.
		Set_Hat(id, randID , 0)
	} else {				//Otherwise, don't use any hat.
		Set_Hat(id, 0, 0)	
	}
	return PLUGIN_CONTINUE
}

public Set_Hat(player, imodelnum, targeter) {
	if(zp_get_user_level(player)<str_to_num(HATLVL))
	{
		client_print(player,print_chat,"[AMXX]: Nu ai nivelul necesar pentru aceasta palarie!")
		return
	}


	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)
		}
		glowhat(player)
		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,   HATLVL[TotalHats], 32)
			
			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)
}


menucolor(id, ItemID, MnuClr[3]) {
	//If its the hat they currently have on
	if (ItemID == CurrentHat[id]) {
		MnuClr = "\d"
		return
	}
	if (HATREST[ItemID] != HAT_ALL) {
		if (HATREST[ItemID] != get_user_team(id) + 1) {
			MnuClr = "\r"
		} else {
			MnuClr = "\y"
		}
	} else {
		MnuClr = "\w"
	}
	return
}

glowhat(id) {
	if (!pev_valid(g_HatEnt[id])) return
	if (get_pcvar_num(P_Glow) != 0) {	//If Glowing Hats Are Enabled
		set_pev(g_HatEnt[id], pev_renderfx,	kRenderFxGlowShell)
		if (get_pcvar_num(P_Glow) == 2) {	//If Not Team Specific, Use Player Glow On Hat
			new Float:curcolors[3], Float:curamt
			pev(id, pev_rendercolor, curcolors)
			pev(id, pev_renderamt, curamt)
			set_pev(g_HatEnt[id], pev_rendercolor, curcolors)
			set_pev(g_HatEnt[id], pev_renderamt, curamt)
		} else {								//If Team Specific, Red=T, Blue=CT
			if (get_user_team(id) == 1) {
				set_pev(g_HatEnt[id], pev_rendercolor, {200.0, 0.0, 0.0})
			} else if (get_user_team(id) == 2) {
				set_pev(g_HatEnt[id], pev_rendercolor, {0.0, 0.0, 200.0})
			}
			set_pev(g_HatEnt[id], pev_renderamt,	50.0)
		}
	} else {
		set_pev(g_HatEnt[id], pev_renderfx,	kRenderFxNone)
		set_pev(g_HatEnt[id], pev_renderamt,	0.0)
	}
	fm_set_entity_visibility(g_HatEnt[id], 1)
	return
}

forcehat(id, forceID) {
	if (forceID == 0) forceID = get_pcvar_num(P_ForceHat)
	if (forceID != 0) {
		if (forceID <= TotalHats - 1) {
			if (forceID != CurrentHat[id]) Set_Hat(id, forceID, 0)
		} else {
			set_pcvar_num(P_ForceHat, 0)
		}
	}
}


format .ini -> "angel2.mdl" "Angel" "C" 69

Re: Cerere plugin Hats Level

Posted: 09 Nov 2018, 07:06
by KeNzY213
ce nu merge
Am rezolvat, dar misiunile dupa ce sunt facute (finalizate ) sa nu le mai poata faca.. din nou.. si sa se salveze pe nume.