Cerere plugin Hats Level

Categoria cu cereri de pluginuri si nu numai.

Moderators: Moderatori ajutatori, Moderatori, Echipa eXtreamCS.com

Forum rules
Accesează link-ul pentru a putea vedea regulile forumului

Daca doriti sa vi se modifice un plugin, va rugam postati aici .
User avatar
levin
Scripter eXtreamCS
Scripter eXtreamCS
Posts: 3844
Joined: 24 Aug 2011, 12:24
Detinator Steam: Da
CS Status:
Detinator server CS: ☯∴
SteamID: riseofevo
Reputatie: Scripter eXtreamCS
Nume anterior: Adryyy
Location: ҳ̸Ҳ̸ҳ
Discord: devilclass
Has thanked: 36 times
Been thanked: 594 times
Contact:

08 Nov 2018, 23:17

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)
}
Pentru ajutor, faceți cerere bine detaliată, completând și respectând modelul corespunzător.
Nu-mi mai dați cereri doar pentru a mă avea în lista de prieteni.
Dacă te ajut, și mă ignori/etc > te adaug în „foe”.
Aveți grijă la cei ce încearcă să mă copieze sau să dea drept mine..Puteți lua legătura cu mine prin STEAM dacă aveți o problemă/nelămurire în acest caz! Cont de forum am doar aici.
În cazul în care utilizați ceva din ce am postat(ex: aici), e bine să fiți la curent cu modificările aduse și de aici, iar dacă sunt ceva probleme nu ezitați să luați legătura cu mine. Actualizarea unor coduri nu se vor afișa public, doar dacă se găsește ceva critic/urgent de remediat, unele fiind coduri vechi iar unele refăcute chiar recent dar private.
* Nume pe cs1.6: eVoLuTiOn \ Nume vechi: eVo
* Atelierul meu - post2819572.html#p2819572 (închis, click link ca să vedeți de ce)
KeNzY213
Membru, skill 0
Membru, skill 0
Posts: 34
Joined: 27 Oct 2018, 13:29
Detinator Steam: Nu
CS Status: Citesc forumul eXtreamCS.com...!
Fond eXtream: 0
Contact:

08 Nov 2018, 23:56

Nu merge..
User avatar
levin
Scripter eXtreamCS
Scripter eXtreamCS
Posts: 3844
Joined: 24 Aug 2011, 12:24
Detinator Steam: Da
CS Status:
Detinator server CS: ☯∴
SteamID: riseofevo
Reputatie: Scripter eXtreamCS
Nume anterior: Adryyy
Location: ҳ̸Ҳ̸ҳ
Discord: devilclass
Has thanked: 36 times
Been thanked: 594 times
Contact:

09 Nov 2018, 00:04

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
Pentru ajutor, faceți cerere bine detaliată, completând și respectând modelul corespunzător.
Nu-mi mai dați cereri doar pentru a mă avea în lista de prieteni.
Dacă te ajut, și mă ignori/etc > te adaug în „foe”.
Aveți grijă la cei ce încearcă să mă copieze sau să dea drept mine..Puteți lua legătura cu mine prin STEAM dacă aveți o problemă/nelămurire în acest caz! Cont de forum am doar aici.
În cazul în care utilizați ceva din ce am postat(ex: aici), e bine să fiți la curent cu modificările aduse și de aici, iar dacă sunt ceva probleme nu ezitați să luați legătura cu mine. Actualizarea unor coduri nu se vor afișa public, doar dacă se găsește ceva critic/urgent de remediat, unele fiind coduri vechi iar unele refăcute chiar recent dar private.
* Nume pe cs1.6: eVoLuTiOn \ Nume vechi: eVo
* Atelierul meu - post2819572.html#p2819572 (închis, click link ca să vedeți de ce)
KeNzY213
Membru, skill 0
Membru, skill 0
Posts: 34
Joined: 27 Oct 2018, 13:29
Detinator Steam: Nu
CS Status: Citesc forumul eXtreamCS.com...!
Fond eXtream: 0
Contact:

09 Nov 2018, 07:06

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.
Post Reply

Return to “Cereri”

  • Information