Skocz do zawartości

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Zdjęcie

Prośba o Komplikację do amxx


  • Nie możesz napisać tematu
  • Zaloguj się, aby dodać odpowiedź
3 odpowiedzi w tym temacie

#1 xSPECJALSx

    Życzliwy

  • Użytkownik

Reputacja: 0
Nowy

  • Postów:28
  • GG:
  • Steam:steam
Offline

Napisano 23.09.2023 23:38

Witam, nie mogę tego komplikować chodzi o timer.amxx

próbowałem na wszelkie sposoby i nie da rady błąd 

/*
* DeathRunTimer
*
* Site : http://amxx.pl/deathrun-timer-save-records-t31649.html
* Author : Knopers
*/
#include <amxmodx>
#include <engine>
#include <hamsandwich>

#define _CustomButtons

#include "timer/buttons.inl"

#define RecordsSaveTo 1 // 1 - Nvault, 2 - MySQL 

#define TaskID 3456
#define DeadID 3356
new sMap[35];
new HudObj, StatusText, TimerType = 2;
new TimerS[33] = 0; 
new iBest, sBest[64] = "";
new g_iMaxPlayers;

#if RecordsSaveTo == 1
	#include "timer/nvault.inl" // -= Nvault =-
	#else 
	#if RecordsSaveTo == 2
		#include "timer/mysql.inl" // -= MySQL =-
	#endif
#endif

public plugin_init()
{
	register_plugin("DeathRun Timer + Save Record", "2.1", "Knopers");//Edited by Owner (Owner123);
	get_mapname(sMap, 34);
	
	RegisterHam(Ham_Spawn, "player", "EvSpawn", 1);
	RegisterHam(Ham_Killed, "player", "EvPlayerKilled", 1);
	register_logevent("eventResetTime", 2, "1=Round_Start");

	register_concmd("say /best", "ShowBest");
	
	register_cvar("amx_timer_type", "2"); // 1 - Hud, 2 - Status
	
	HudObj = CreateHudSyncObj();
	StatusText = get_user_msgid("StatusText");
	
	//
	// Buttons 
	//
	register_concmd("say /drtimermenu", "ShowMenu");
	RegisterHam(Ham_Use, "func_button", "EvUse", 0);
	entButton = engfunc(EngFunc_AllocString, "func_button");
	readButtons();
	
	#if defined _Timer_Save2Nvault
		h_vault = nvault_open("dr_records");
		LoadRecord();
	#else
	#if defined _Timer_Save2SQL
		register_cvar("timer_sql_host","127.0.0.1",FCVAR_PROTECTED)
		register_cvar("timer_sql_user","root",FCVAR_PROTECTED)
		register_cvar("timer_sql_pass","password",FCVAR_PROTECTED)
		register_cvar("timer_sql_database","baza123",FCVAR_PROTECTED)
		
		ConnectSql();
		//server_print("Loading Record ... [Step 1/4]"); //ForDebug
		set_task(10.0, "CheckRecord");
	#endif
	#endif
	
	g_iMaxPlayers = get_maxplayers();
}
public plugin_precache()
{
	#if defined _CustomButtons
	precache_model(gszButtonModels[0]);
	precache_model(gszButtonModels[1]);
	#else
	engfunc(EngFunc_PrecacheModel, "models/w_c4.mdl");
	#endif
}
public plugin_end()
{
	#if defined _Timer_Save2Nvault
		nvault_close(h_vault);
	#else
	#if defined _Timer_Save2SQL
		SQL_FreeHandle(SQL_TUPLE);
	#endif
	#endif
}
public client_disconnect(id)
{
	if(task_exists(id + TaskID))
		remove_task(id + TaskID);
	if(task_exists(id + DeadID))
		remove_task(id + DeadID);
}
public EvSpawn(id)
{
	TimerS[id] = 0;
	if(task_exists(TaskID + id))
		remove_task(TaskID + id);
	if(task_exists(id + DeadID))
		remove_task(id + DeadID);
	if(get_user_team(id) == 2 && !iOption[0])
		Start(id);
}
public EvPlayerKilled(iVictim, iAttacker)
{
	if(task_exists(TaskID + iVictim))
		remove_task(TaskID + iVictim);
	set_task(1.0, "DeadTask", iVictim + DeadID, _, _, "b");
	if(get_user_team(iVictim) == 1 && get_user_team(iAttacker) == 2 && !iOption[1])
		Finish(iAttacker, iVictim);
}
public Start(id)
{
	TimerS[id] = 0;
	if(get_user_team(id) == 2)
	{
		if(task_exists(id + TaskID))
			remove_task(id + TaskID);
		fnShowTimer(id + TaskID);
		set_task(1.0, "fnShowTimer", id + TaskID, _, _, "b");
	}
}
public Finish(id, idTT)
{
	if(TimerS[id] <= 10 || !task_exists(TaskID + id))
		return PLUGIN_CONTINUE;
	
	if(idTT > 0 && idTT < 33 && !iOption[1])
	{
		remove_task(TaskID + id);
		new svName[32], skName[32];
		get_user_name(idTT, svName, 31);
		get_user_name(id, skName, 31);
		new sMsg[128];
		format(sMsg, 127, "^x04Gracz ^x03%s ^x04ukonczyl mape w ^x03%02d:%02d ^x04i zabil teroryste ^x03%s.", skName, TimerS[id] / 60, TimerS[id] % 60, svName);
		ColorChat(0, sMsg);
		if(TimerS[id] < iBest || iBest < 1)
		{
			iBest = TimerS[id];
			sBest = skName;
			
			format(sMsg, 127, "^x04Gracz ^x03%s ^x04ustanowil nowy rekord mapy ^x03%02d:%02d ", skName, TimerS[id] / 60, TimerS[id] % 60);
			ColorChat(0, sMsg);
			
			#if defined _Timer_Save2Nvault
				replace_all(sBest, 63, "^"", "''");
				SaveRecord();
			#else
			#if defined _Timer_Save2SQL
				//ColorChat(0, "^x04 Please Wait ... Saving record ... [Step 1/4]"); //ForDebug
				replace_all(sBest, 63, "'", "\'");
				replace_all(sBest, 63, "`", "\`");
				//ColorChat(0, "^x04 Please Wait ... Saving record ... [Step 2/4]"); //ForDebug
				Save2SQL();
			#endif
			#endif
		}
		else
		{
			format(sMsg, 127, "^x04Gracz ^x03%s ^x04nie ustanowil nowego rekordu mapy. Aktualny rekord wynosi: ^x03%02d:%02d ", skName, iBest / 60, iBest % 60);
			ColorChat(0, sMsg);
		}
	}
	else
	{
		remove_task(TaskID + id);
		new sName[32];
		get_user_name(id, sName, 31);
		new sMsg[128];
		format(sMsg, 127, "^x04Gracz ^x03%s ^x04ukonczyl mape w ^x03%02d:%02d", sName, TimerS[id] / 60, TimerS[id] % 60);
		ColorChat(0, sMsg);
		if(TimerS[id] < iBest || iBest < 1)
		{
			iBest = TimerS[id];
			sBest = sName;
			
			format(sMsg, 127, "^x04Gracz ^x03%s ^x04ustanowil nowy rekord mapy ^x03%02d:%02d ", sName, TimerS[id] / 60, TimerS[id] % 60);
			ColorChat(0, sMsg);
			
			#if defined _Timer_Save2Nvault
				replace_all(sBest, 63, "^"", "''");
				SaveRecord();
			#else
			#if defined _Timer_Save2SQL
				//ColorChat(0, "^x04 Please Wait ... Saving record ... [Step 1/4]"); //ForDebug
				replace_all(sBest, 63, "'", "\'");
				replace_all(sBest, 63, "`", "\`");
				//ColorChat(0, "^x04 Please Wait ... Saving record ... [Step 2/4]"); //ForDebug
				Save2SQL();
			#endif
			#endif
		}
		else
		{
			format(sMsg, 127, "^x04Gracz ^x03%s ^x04nie ustanowil nowego rekordu mapy. Aktualny rekord wynosi: ^x03%02d:%02d ", sName, iBest / 60, iBest % 60);
			ColorChat(0, sMsg);
		}
	}
	TimerType = get_cvar_num("amx_timer_type");
	return PLUGIN_CONTINUE;
}
public fnShowTimer(idTask)
{
	new id = idTask - TaskID;
	TimerS[id] ++;
	if(TimerType == 1)
	{
		set_hudmessage(255, 255, 255, 0.1, 0.9, 2, 0.05, 1000.0, 0.1, 3.0, -1);
		ShowSyncHudMsg(id, HudObj, "Czas: %02d:%02d", TimerS[id] / 60, TimerS[id] % 60);
	}
	else
	{
		new sSMsg[32];
		format(sSMsg, 31, "Czas: %02d:%02d", TimerS[id] / 60, TimerS[id] % 60);
		message_begin(MSG_ONE, StatusText, {0,0,0}, id);
		write_byte(0);
		write_string(sSMsg);
		message_end();
	}
}

public eventResetTime()
{
	for(new id = 1; id < g_iMaxPlayers; id++)
	{
		if(!is_user_connected(id) || !is_user_alive(id))
			continue;
		
		if(!task_exists(id + TaskID))
			continue;
		
		remove_task(id + TaskID);
		TimerS[id] = 0;
		set_task(1.0, "fnShowTimer", id + TaskID, _, _, "b");
	}
}

public ShowBest(id)
{
	new sMsg[128];
	
	if(!sBest[0])
		format(sMsg, 127, "^4Nikt jeszcze nie ustanowil rekordu na tej mapie.");
	else
		format(sMsg, 127, "^x04Rekord Mapy : ^x03%s ^x01-- ^x04%02d:%02d", sBest, iBest / 60, iBest % 60);
	
	#if defined _Timer_Save2SQL
	if(!g_bRecordLoaded)
		format(sMsg, 127, "^4Ladowanie rekordu, proszę czekac ...");
	#endif
	
	ColorChat(0, sMsg);
}
stock ColorChat(id, sMessage[])
{
	new SayText = get_user_msgid("SayText");
	if(id == 0)
	{
		for(new i = 1; i < 33; i++)
		{
			if(is_user_connected(i))
			{
				message_begin(MSG_ONE, SayText, { 0, 0, 0 }, i);
				write_byte(i);
				write_string(sMessage);
				message_end();
			}
		}
	}
	else
	{
		message_begin(MSG_ONE, SayText, { 0, 0, 0 }, id);
		write_byte(id);
		write_string(sMessage);
		message_end();
	}
}
public DeadTask(Spect)
{
	Spect -= DeadID;
	if(!is_user_connected(Spect) || is_user_alive(Spect))
	{
		remove_task(Spect + DeadID);
		return PLUGIN_CONTINUE;
	}
	new id = entity_get_int(Spect, EV_INT_iuser2);
	if(id <= 0 || id >= 33 || !is_user_alive(id))
		return PLUGIN_CONTINUE;
	new Name[32];
	get_user_name(id, Name, 31);
	
	set_hudmessage(255, 255, 255, -1.0, 0.2, 2, 0.05, 1.0, 0.1, 3.0, -1);
	ShowSyncHudMsg(Spect, HudObj, "Gracz: %s ^nCzas Gracza: %02d:%02d", Name, TimerS[id] / 60, TimerS[id] % 60);
	
	return PLUGIN_CONTINUE;
}


  • +
  • -
  • 0

#2 master10

    Początkujący

  • Użytkownik

Reputacja: 4
Nowy

  • Postów:10
  • GG:
  • Imię:K3DN
Offline

Napisano 24.09.2023 09:32

Tutaj masz link https://amxx.pl/topi...r-save-records/.  Pobierz DR Timer.rar wypakuj  do include folder timer i skompiluj  mi zadzialalo bez zadnego problemu.  Zrob edycje  kodu z  }public client_disconnect(id) {  na  }public client_disconnected(id) {   i skompiluje ci  odpowiednio. To tyle z mojej strony. a z reszta masz w zalaczniku do pobrania. 

 
 

Załączone pliki


  • +
  • -
  • 1

#3 xSPECJALSx

    Życzliwy

  • Autor tematu
  • Użytkownik

Reputacja: 0
Nowy

  • Postów:28
  • GG:
  • Steam:steam
Offline

Napisano 24.09.2023 14:05

Tutaj masz link https://amxx.pl/topi...r-save-records/.  Pobierz DR Timer.rar wypakuj  do include folder timer i skompiluj  mi zadzialalo bez zadnego problemu.  Zrob edycje  kodu z  }public client_disconnect(id) {  na  }public client_disconnected(id) {   i skompiluje ci  odpowiednio. To tyle z mojej strony. a z reszta masz w zalaczniku do pobrania. 

 

No faktycznie zadziałało, dzięki :)


  • +
  • -
  • 0

#4 Deus Vult

    Nowy

  • Użytkownik

Reputacja: 109
Zaawansowany

  • Postów:213
  • GG:
  • Imię:Mateusz
  • Lokalizacja:Rzeszow
Offline

Napisano 24.09.2023 20:30

Na przyszłość to powinieneś kompilować zamiast komplikować
  • +
  • -
  • 1




Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych