Dominar_CSGO проблем - не работи !!!

Въпроси и проблеми свързани с AMXModX.
Аватар
Siska
Извън линия
Потребител
Потребител
Мнения: 771
Регистриран на: 03 Дек 2019, 22:29
Местоположение: Bedrock
Се отблагодари: 157 пъти
Получена благодарност: 48 пъти
Обратна връзка:

Dominar_CSGO проблем - не работи !!!

Мнение от Siska » 24 Фев 2023, 19:41

Load fails: Plugin uses an unknown function (name "adv_vault_get_keyname") - check your modules.ini.
Имам това във include - adv_vault.inc
Махнах ".wav" файловете, защото не знам как по друг начин да спра звука. Оставих празно там където трябва да ги пише.

Код за потвърждение: Избери целия код

/*** 
		CVARS
dom_enable "1"  Activar y desactivar plugin.
dom_maxkill "3" Maximo de jugadores a matar para dominar
dom_maxdeath "1" "Maximo de jugadores a morir para vengarse"

		DESCRIPCION
El plugin se encarga de simular el efecto
del juego cs go al decirte cuando estas dominando y cuando un jugador se venga de ti.


              PLUGIN
	 Author : SytOws2j
	 Nombre : Dominar CSGO
	 Version 1.0 : Lanzamiento
	 Version 1.1 : aсadido ScreenFade, removido include hamsandwich
	 Version 1.2 : Mejorado el conteo de kills y deaths.
	 Version 1.3 : Mejorado pequeсos bugs, aсadido Guardado adv_vault y top10 de dominaciones y venganzas
	 Version 1.3a : Aсadido Cvars por enums
	 
	 Creditos:
		Nkki por la idea del ScreenFade
		Aprendiz9505 por la ayuda en cuanto a el conteo de kills y deaths
		Santjcs por la ayuda en la mejor estructuracion del codigo. y el stock de screenfade
		Destro por el codigo para mostrar el top en motd
		Web Controller por la idea del top y guardado.
	 
***/
#include <amxmodx>
#include <adv_vault>
new const szPrefix[] = { "^4[ CS:GO Remake ]^1" };
new const AUTHOR[][] = { "SytOws2j" , "1.3a","Dominar CSGO + Guardado"};


enum 
{
	DOMINACIONES,
	VENGANZAS,
	MAX_CAMPOS
}

enum _:cvars
{
	CVAR_SWITCH = 0,
	CVAR_MAXKILL,
	CVAR_MAXDEATH
};
enum _:cvars_data
{
	CVAR_NOMBRE = 0,
	CVAR_NUM
};



new const cvars_requerida[cvars_data][][] =
{
	{
		"dom_enable",
		"dom_maxkill",
		"dom_maxdeath"
	},
	{
		"1",
		"3",
		"3"
	}
	
}
new g_cvars[cvars]

new g_campos[MAX_CAMPOS],g_vault,g_sort,g_szplayername[33][32];
new const Sonidos[][] = 
{
	"",
	"",
	""
};
new bool:g_bvengado,g_bdominando;
new g_kills[33][33];
new g_death[33][33];
new g_dominaciones[33];
new g_venganzas[33];
new g_szname[33][32];
new g_synchud;
new g_screenfade;
new motd[1536];


public plugin_init() {
	register_plugin(AUTHOR[2], AUTHOR[1], AUTHOR[0]);
	
	register_event( "DeathMsg", "EventDeathmsg", "a" );
	register_event("HLTV" , "round_start" , "a", "1=0", "2=0")
	
	register_clcmd("say /domtop","cmdTOP");
	register_clcmd("say .domtop","cmdTOP");
	
	for(new i = 0; i < sizeof(cvars_requerida[]) ; i++)
	{
		g_cvars[i] = register_cvar(cvars_requerida[CVAR_NOMBRE][i], cvars_requerida[CVAR_NUM][i])
	}
	
	
	g_screenfade 		= get_user_msgid("ScreenFade");
	g_synchud		= CreateHudSyncObj();
	
	g_vault 			= adv_vault_open("DOMINAR",false);
	
	g_campos[DOMINACIONES] 	= adv_vault_register_field(g_vault,"Dominaciones");
	g_campos[VENGANZAS]	= adv_vault_register_field(g_vault,"Venganzas");
	adv_vault_init(g_vault);
	
	g_sort 			= adv_vault_sort_create(g_vault,ORDER_DESC,60,2000,g_campos[DOMINACIONES],g_campos[VENGANZAS]);
}
public plugin_precache() for(new i = 0; i < sizeof(Sonidos); i++) precache_sound(Sonidos[i]);


public client_putinserver(id)
{
	
	get_user_name(id,g_szplayername[id],charsmax(g_szplayername[]));
	arrayset( g_kills[ id ], 0, sizeof( g_kills[ ] ) );
	arrayset( g_kills[ id ], 0, sizeof( g_kills[ ] ) );
	g_dominaciones[id] = g_venganzas[id] =0
	g_bvengado = false;
	g_bdominando = false;
	cargar(id);
}

public client_infochanged( id )
{
	if( !is_user_connected( id ) ) return;
    
	static iNnombre[ 32 ];
    
	get_user_info(id, "name", iNnombre, charsmax( iNnombre ) )  ;
    
	if( !equal( iNnombre, g_szplayername[ id ] ) ) set_task( 0.1, "cargar", id );	
	
}

public EventDeathmsg()
{
	new attacker = read_data( 1 );
	new victim = read_data( 2 );
   
	if( victim == attacker  || !get_pcvar_num( g_cvars[CVAR_SWITCH] ) )  return PLUGIN_CONTINUE
	if(g_death[attacker][victim] >= get_pcvar_num(g_cvars[CVAR_MAXDEATH])  && g_death[attacker][victim] < g_kills[victim][attacker]) return PLUGIN_CONTINUE
	
	
	get_user_name(attacker, g_szname[ attacker ], charsmax( g_szname[ ] ) );
	get_user_name( victim, g_szname[ victim ], charsmax( g_szname[ ] ) );
	
	
	g_kills[attacker][victim]++;
	g_death[victim ][attacker]++;
	
	
	if(g_death[attacker][victim] >= get_pcvar_num( g_cvars[CVAR_MAXDEATH] ) ) 
	{
		
			ScreenFade(attacker, 0, 0, 255, 80 );
			client_cmd(attacker,"spk %s",Sonidos[2]);
			color(0,"%s ^3%s^1 Se ha vengado de ^3%s^1",szPrefix,g_szname[attacker],g_szname[victim]);
	
			
			set_hudmessage(0, 255, 0,0.27, 0.32, 1, 6.0, 8.0,0.0,0.0);
			ShowSyncHudMsg
			(
				attacker,
				g_synchud,
				"%s te has vengado de %s",
				g_szname[attacker],
				g_szname[victim]
			);
			
			ScreenFade(victim, 255, 0, 0, 80 );
			client_cmd(victim,"spk %s",Sonidos[2]);
			
			
			set_hudmessage(255, 0, 0, 0.27, 0.32, 1, 6.0, 8.0,0.0,0.0);
			ShowSyncHudMsg
			(
				victim,
				g_synchud,
				"%s se ha vengado",
				g_szname[attacker]
			);
			color(victim,"%s has muerto ya no dominas a ^3%s^1",szPrefix,g_szname[attacker]);
			g_bvengado = true;
			if(g_bvengado )
			{
				g_death[ attacker ][ victim ] = 0;
				g_kills[ victim ][ attacker ] = 0;
				g_bvengado = false;
				g_venganzas[attacker]++;
			}
			
	}
	else if ( g_kills[ attacker ][ victim ] == get_pcvar_num( g_cvars[CVAR_MAXKILL] ) )
	{
			
		ScreenFade( attacker, 255, 0, 0, 80 );
		client_cmd(attacker,"spk %s",Sonidos[0]);
		color(0,"%s ^3%s^1 Esta dominando a ^3%s^1",szPrefix,g_szname[attacker],g_szname[victim]);
		
		set_hudmessage(0, 0, 255, 0.27, 0.32, 1, 6.0, 8.0,0.0,0.0);
		ShowSyncHudMsg
		(
			attacker,
			g_synchud,
			"Estas dominando a %s",
			g_szname[victim]
		);
			
		ScreenFade( victim, 255, 0, 0, 80 );
		client_cmd(victim,"spk %s",Sonidos[1]);	
			
		set_hudmessage(255, 0, 0, 0.27, 0.32, 1, 6.0, 8.0,0.0,0.0);
		ShowSyncHudMsg
		(
			victim, 
			g_synchud,
			"%s Te esta dominando",
			g_szname[attacker]
		);
		g_bdominando = true;
		g_dominaciones[attacker]++;
	}
                     else if ( g_kills[ attacker ][victim ] > get_pcvar_num( g_cvars[CVAR_MAXKILL] )  && g_bdominando)	
	{
		ScreenFade( attacker, 255, 0, 0, 80 );
		client_cmd(attacker,"spk %s",Sonidos[0]);
		color(victim,"%s ^3%s^1 Te sigue dominando",szPrefix,g_szname[attacker]);
			
		set_hudmessage(0, 0, 255,0.27, 0.32, 1, 6.0, 8.0,0.0,0.0);
		ShowSyncHudMsg
		(
			attacker, 
			g_synchud,
			"Sigues dominando a %s",
			g_szname[victim]
		);
			
		ScreenFade( victim, 255, 0, 0, 80 );
		client_cmd(victim,"spk %s",Sonidos[1]);
		color(attacker,"%s Sigues dominando a ^3%s^1",szPrefix,g_szname[victim]);
			
		set_hudmessage(255, 0, 0, 0.27, 0.32, 1, 6.0, 8.0,0.0,0.0);
		ShowSyncHudMsg
		(
			victim, 
			g_synchud,
			"%s Te sigue dominando",
			g_szname[attacker]
		);
		g_dominaciones[attacker]++;
	}
	
	return PLUGIN_CONTINUE;
}

public cmdTOP(id)
{
	
	show_motd(id, motd, "DOMINACIONES TOP-10")
}

public round_start(skip)
{
	for(new id=1; id <= get_maxplayers(); id++)
	{
		if(is_user_connected(id)) guardar(id)
	}
	
	if(!skip)
	{
		adv_vault_sort_update(g_vault, g_sort)
		update_motd()
	}
}

public guardar(id)
{
	if(!is_user_connected(id)) return;
	
	adv_vault_set_start(g_vault);
	adv_vault_set_field(g_vault,g_campos[DOMINACIONES],g_dominaciones[id]);
	adv_vault_set_field(g_vault,g_campos[VENGANZAS],g_venganzas[id]);
	adv_vault_set_end(g_vault,0,g_szplayername[id]);
	
}
public cargar(id)
{
	if( !adv_vault_get_prepare( g_vault, _, g_szplayername[ id ] ) )        return;
	
	g_dominaciones[id]	= adv_vault_get_field( g_vault,g_campos[DOMINACIONES])
	g_venganzas[id]		=adv_vault_get_field(g_vault,g_campos[VENGANZAS]);
	
}

public client_disconnected(id)
{
	arrayset( g_kills[ id ], 0, sizeof( g_kills[ ] ) );
	arrayset( g_kills[ id ], 0, sizeof( g_kills[ ] ) );
	g_bvengado = false;
	g_bdominando = false;
	guardar(id);
}
// Creditos a Destro por esto. PD: lo voy a estar practicando 
// en otros plugins mas para aprenderlo hacer solo :)
//solo lo modifique un poquito nada mas.
update_motd()
{
	
	new dom, ven, keyid, player[32], len
	motd[0] = 0
	
	add(motd, charsmax(motd),
	"<html><style>\
	body{background:#040404 url('https://c1.staticflickr.com/9/8157/7427165626_7863914fc6_n.jpg')repeat-x;color:#000;font-weight:bold;font-size:8pt;}\
	.t{color:#808080;text-align:left; }\
	#h{background: #222 url('http://weknowyourdreamz.com/images/background/background-03.jpg') repeat-x;color:#000;font-weight:bold;}\
	#p{color:#D41313;}\
	#n{color:#fff;}\
	</style><body>\
	<table cellspacing=0 width=100% class=t>")

	add(motd, charsmax(motd),
	"<tr><td id=h width=7%>#</td>\
	<td id=h>Nombre</td>\
	<td id=h>Dominaciones</td>\
	<td id=h>Venganzas</td></tr>")
	
	len = strlen(motd)
	
	/* esta parte del codigo ya la sabia */
	// Chequeamos que el loop no sea mayor a los resultados obtenidos
	new toploop = min(adv_vault_sort_numresult(g_vault, g_sort), 10)
    
	for(new posicion=1; posicion <= toploop; posicion++)
	{
	// Obtenemos el keyindex que este en la posiciуn deseada
	keyid 	= adv_vault_sort_position(g_vault, g_sort, posicion)
        
	// Preparamos para obtener los datos
	if(!adv_vault_get_prepare(g_vault, keyid)) continue
        
		// Obtenemos los datos
	dom = adv_vault_get_field(g_vault, g_campos[DOMINACIONES]);
	ven = adv_vault_get_field(g_vault,g_campos[VENGANZAS]);
		
	adv_vault_get_keyname(g_vault, keyid, player, charsmax(player))
	
	
	/* pero esto no */
	replace_all(player, charsmax(player), "<", "&lt")
	replace_all(player, charsmax(player), ">", "&gt")
	len += formatex(motd[len], charsmax(motd)-len,
	"<tr><td id=p>#%d</td>\
	<td id=n>%s</td>\
	<td>%d</td>\
	<td>%d</td>", posicion, player, dom,ven)
		
	}

	add(motd, charsmax(motd), "</table></body></html>")
}

stock ScreenFade( id, Red, Green, Blue, Alpha )
{
	message_begin(MSG_ONE,g_screenfade,{0,0,0},id);
	write_short(1<<10);
	write_short(1<<10);
	write_short(0x0000);
	write_byte(Red);
	write_byte(Green);
	write_byte(Blue);
	write_byte(Alpha);
	message_end();
}


stock color(id,const input[],any:...)
{
	new  buffer[192], g_saytext, players[32],contador = 1;
	
	if(!g_saytext)  g_saytext = get_user_msgid("SayText");
	
	vformat(buffer,190,input,3);
	
	replace_all(buffer,190,"!g","^4"); //verde
	replace_all(buffer,190,"!t","^3"); // equipo
	replace_all(buffer,190,"!n","^1");// normal
	
	
	if (id) players[0] = id; else get_players(players,contador, "ch"); 
	{ 
		for (new i = 0; i < contador; i++) 
		{ 
			if (is_user_connected(players[i])) 
			{ 
				message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i]); 
				write_byte(players[i]); 
				write_string(buffer); 
				message_end(); 
			}
		}
	}
	
	
}

/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang3082\\ f0\\ fs16 \n\\ par }
*/
Търсих врага и го открих : това съм аз , трябва да се победя...
Изображение
WWW.CSMEGAGAMING.COM Изображение Изображение Skype : Sisi-1_1

Аватар
Tornado_SW
Извън линия
AMXX Скриптър
AMXX Скриптър
Мнения: 159
Регистриран на: 04 Фев 2020, 22:41
Се отблагодари: 28 пъти
Получена благодарност: 76 пъти
Обратна връзка:

Re: Dominar_CSGO проблем - не работи !!!

Мнение от Tornado_SW » 24 Фев 2023, 20:02

Не ти е пуснат Advanced Vault System плъгина.

Аватар
Siska
Извън линия
Потребител
Потребител
Мнения: 771
Регистриран на: 03 Дек 2019, 22:29
Местоположение: Bedrock
Се отблагодари: 157 пъти
Получена благодарност: 48 пъти
Обратна връзка:

Re: Dominar_CSGO проблем - не работи !!!

Мнение от Siska » 24 Фев 2023, 20:21

Как да махна правилно звука от този плъгин, защото сега крашва сървъра като търси ".wav" файловете ?
Търсих врага и го открих : това съм аз , трябва да се победя...
Изображение
WWW.CSMEGAGAMING.COM Изображение Изображение Skype : Sisi-1_1

Аватар
Tornado_SW
Извън линия
AMXX Скриптър
AMXX Скриптър
Мнения: 159
Регистриран на: 04 Фев 2020, 22:41
Се отблагодари: 28 пъти
Получена благодарност: 76 пъти
Обратна връзка:

Re: Dominar_CSGO проблем - не работи !!!

Мнение от Tornado_SW » 24 Фев 2023, 20:34

Добавяш проверка в plugin_precache ако няма звук, да не precache-ва.

Код за потвърждение: Избери целия код

public plugin_precache() for(new i = 0; i < sizeof(Sonidos); i++) if(Sonidos[i][0] != EOS) precache_sound(Sonidos[i]);

Аватар
Siska
Извън линия
Потребител
Потребител
Мнения: 771
Регистриран на: 03 Дек 2019, 22:29
Местоположение: Bedrock
Се отблагодари: 157 пъти
Получена благодарност: 48 пъти
Обратна връзка:

Re: Dominar_CSGO проблем - не работи !!!

Мнение от Siska » 26 Фев 2023, 15:17

Втория линк за снимката не работи!
Пробвах да я сменя, но не излиза.
Какво трябва да направя, за да си сложа снимка ?

Код за потвърждение: Избери целия код

#h{background: #222 url('http://weknowyourdreamz.com/images/background/background-03.jpg') repeat-x;color:#000;font-weight:bold;}\
Пробвах с линк от сайт за качване на снимки - не стана.
Пробвах с линк към хоста - пак не стана.
Какво трябва да направя, за да сложа background ?

Искам да помоля също, ако може някой да махне худ съобщенията от плъгина.
Търсих врага и го открих : това съм аз , трябва да се победя...
Изображение
WWW.CSMEGAGAMING.COM Изображение Изображение Skype : Sisi-1_1

Публикувай отговор
  • Подобни теми
    Отговори
    Преглеждания
     Последно мнение

Обратно към “Поддръжка / Помощ”

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 6 госта