[Modificare] Trivia Bot

Modificari necesare ale pluginurilor

Moderators: Moderatori ajutatori, Moderatori, Echipa eXtreamCS.com

Post Reply
RoCoFeLu
Membru, skill +1
Membru, skill +1
Posts: 284
Joined: 21 Oct 2009, 03:51
Detinator Steam: Nu
Has thanked: 56 times
Been thanked: 6 times

26 Nov 2013, 00:55

As dori sa fac si eu cateva modificari la pluginul de Trivia!

1) As dori ca atunci cand cineva raspunde corect sa ii apara asta

Code: Select all

ColorChat(id, RED, "%s^x01 Raspunsul tau a fost corect. Felicitari, ai castigat %d$", PluginTag, RndNum);
Dar si un mesaj pe server, care sa-l vada toti jucatorii de forma aceasta:

Code: Select all

ColorChat(id, RED, "%s^x01 <nume> a raspuns corect la intrebare si a castigat %d$", PluginTag, RndNum);
2) As vrea ca intrebarea sa apara de 3 ori in chat.
trivia_bot.sma | Afiseaza codul
/* 
   Fisier tradus de La@ur !
   Versiune plugin: 1.1
*/ 


#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <colorchat>
#include <nvault>

#define PLUGIN "Trivia Bot"
#define VERSION "1.1"
#define AUTHOR "Alka"

#define CharsMax(%1) sizeof %1 - 1

#define MAX_LINES 512
#define MAX_LEN 256

#define QUESTION_INTERVAL 30.0
#define QUESTION_INTERVAL_NUM 30

new List[2][MAX_LINES][MAX_LEN];
new Amount;

new Timer = QUESTION_INTERVAL_NUM;
new CurrentAnswer[128];

new bool:TriviaOnOff[33];
new TriviaPoints[33];

new const PluginTag[] = "[FU.RIEN.RO]";

public plugin_init() {
	
	register_plugin(PLUGIN, VERSION, AUTHOR);
	
	register_clcmd("say", "HookSay");
	register_clcmd("say !top10", "ShowTriviaTop");
	register_clcmd("say !triviatop10", "ShowTriviaTop");
	register_clcmd("say !triviatop", "ShowTriviaTop");
	register_clcmd("say !triviapoints", "ShowTriviaPoints");
	register_clcmd("say !points", "ShowTriviaPoints");
	
	set_task(1.0, "TimeRemainingCounter", 1111, "", 0, "b", 0);
	
	TeamInfo = get_user_msgid("TeamInfo");
	SayText = get_user_msgid("SayText");
}

public plugin_cfg()
{
	new ConfigsDir[64], File[64];
	new TriviaDir[64];
	
	get_configsdir(ConfigsDir, CharsMax(ConfigsDir));
	
	formatex(TriviaDir, CharsMax(TriviaDir), "%s/Trivia Bot", ConfigsDir);
	formatex(File, CharsMax(File), "%s/trivia_list.ini", TriviaDir);
	
	if(!dir_exists(TriviaDir))
		mkdir(TriviaDir);
	
	if(!file_exists(File))
		write_file(File, "", -1);
	
	new FilePointer = fopen(File, "rt");
	
	new Buffer[512];
	
	while(!feof(FilePointer))
	{
		fgets(FilePointer, Buffer, CharsMax(Buffer));
		
		if(!Buffer[0] || Buffer[0] == ';' || strlen(Buffer) < 3)
			continue;
		
		trim(Buffer);
		
		strtok(Buffer, List[0][Amount], sizeof List[][] - 1, List[1][Amount], sizeof List[][] - 1, ';', 0);
		
		Amount++;
	}
	fclose(FilePointer);
	
	server_print("%s Successfuly loaded %d lines from %s.", PluginTag, Amount, File);
	
	ShowQuestion();
}

public ShowQuestion()
{
	if(task_exists(2222))
		remove_task(2222);
	
	new RndNum = random(Amount);
	
	formatex(CurrentAnswer, CharsMax(CurrentAnswer), List[1][RndNum]);
	
	static Players[32], Num, Player;
	get_players(Players, Num, "bh");
	
	for(new i = 0 ; i < Num ; i++)
	{
		Player = Players;
		
		if(!is_user_connected(Player))
			continue;
		
		if(!TriviaOnOff[Player])
			continue;
		
		ColorChat(Player, RED, "%s^x01%s", PluginTag, List[0][RndNum]);
	}
	Timer = QUESTION_INTERVAL_NUM - 1;
	
	set_task(QUESTION_INTERVAL, "ShowQuestion", 2222, "", 0, "", 0);
}

public TimeRemainingCounter()
{
	if(Timer < 0)
		return;
	
	static Players[32], Num, Player;
	get_players(Players, Num, "bh");
	
	for(new i = 0 ; i < Num ; i++)
	{
		Player = Players;
		
		if(!is_user_connected(Player))
			continue;
		
		if(!TriviaOnOff[Player])
			continue;
		
		set_hudmessage(255, 255, 255, -1.0, 0.7, 0, 1.0, 0.8, 1.0, 1.0, 4);
		show_hudmessage(Player, "Mai sunt %d secunde pana la urmatoarea intrebare.", Timer);
		
	}
	Timer--;
}

public HookSay(id)
{
	new Args[256];
	read_args(Args, CharsMax(Args));
	
	if(containi(Args, CurrentAnswer) != -1 && TriviaOnOff[id])
	{
		new RndNum = random(5000);
		
		ColorChat(id, RED, "%s^x01 Raspunsul tau a fost corect. Felicitari, ai castigat %d$", PluginTag, RndNum);
		
		TriviaPoints[id] += 1;
		
		if(is_user_connected(id))
			cs_set_user_money(id, cs_get_user_money(id) + RndNum, 0);
		
		ShowQuestion();
		return 1;
	}
	else if(equali(Args, "^"/trivia^"", 9))
	{
		if(!TriviaOnOff[id])
		{
			ColorChat(id, RED, "%s^x04 Te-ai alaturat la Trivia, il poti juca cat timp esti mort!", PluginTag);
			TriviaOnOff[id] = true;
		}
		else
		{
			ColorChat(id, RED, "%s^x04 Ai parasit Trivia, nu mai poti juca!", PluginTag);
			TriviaOnOff[id] = false;
		}
	}	
	return 0;
}

public client_disconnect(id)
{
	TriviaOnOff[id] = false;
	
	if(TriviaPoints[id] != 1)
		SavePoints(id);
}

public client_putinserver(id)
{
	set_task(45.0, "ShowAdvMessage", id + 3333);
	
	LoadPoints(id);
}

public ShowAdvMessage(index)
{
	index -= 3333;
	
	ColorChat(index, RED, "%s^x01 In timp ce esti mort poti juca Trivia si poti castiga bani! Tasteaza ^x04/trivia ^x01 in chat pentru activare.", PluginTag);
}

public SavePoints(index)
{
	new Vault = nvault_open("trivia_points");
	
	new Key[64], Value[64], Name[32];
	
	get_user_name(index, Name, sizeof Name - 1);
	
	formatex(Key, sizeof Key - 1, "%s-trivia_points:", Name);
	formatex(Value, sizeof Value - 1, "%d", TriviaPoints[index]);
	
	nvault_set(Vault, Key, Value);
	nvault_close(Vault);
}

public LoadPoints(index)
{
	new Vault = nvault_open("trivia_points");
	
	new Key[64], Value[64], Name[32];
	
	get_user_name(index, Name, sizeof Name - 1);
	
	formatex(Key, sizeof Key - 1, "%s-trivia_points:", Name);
	
	nvault_get(Vault, Key, Value, sizeof Value - 1);
	nvault_close(Vault);
	
	TriviaPoints[index] = str_to_num(Value);
}

public ShowTriviaTop(id)
{
	static Sort[33][2];
	new Count;
	
	new Players[32], Num, Player;
	get_players(Players, Num);
	
	for(new i = 0 ; i < Num ; i++)
	{
		Player = Players;
		
		Sort[Count][0] = Player;
		Sort[Count][1] = TriviaPoints[Player];
		
		Count++;
	}
	
	SortCustom2D(Sort, Count, "points_compare");
	
	new Motd[1024], Len;	
	
	Len = format(Motd, sizeof Motd - 1,"<body bgcolor=#000000><font color=#98f5ff><pre>");
	Len += format(Motd[Len], (sizeof Motd - 1) - Len,"%s %-22.22s %3s^n", "#", "Name", "Trivia Points");
	
	
	new b = clamp(Count, 0, 10);
	
	new Name[32], User;
	
	for(new a = 0; a < b; a++)
	{
		User = Sort[a][0];
		
		get_user_name(User, Name, sizeof Name - 1);		
		Len += format(Motd[Len], (sizeof Motd - 1) - Len,"%d %-22.22s %d^n", a + 1, Name, Sort[a][1]);
	}
	Len += format(Motd[Len], (sizeof Motd - 1) - Len,"</body></font></pre>");
	
	show_motd(id, Motd, "Trivia Top 10");
}

public points_compare(elem1[], elem2[])
{
	if(elem1[1] > elem2[1])
		return -1;
	else if(elem1[1] < elem2[1])
		return 1;
	
	return 0;
}

public ShowTriviaPoints(id)
	ColorChat(id, RED, "%s^x04 Aveti %d puncte trivia%s.", PluginTag, TriviaPoints[id], TriviaPoints[id] > 1 ? "s" : "");


Va multumesc!
RoyalServer 2
User avatar
Mădălin
Administrator
Administrator
Posts: 5293
Joined: 06 Mar 2013, 21:40
Detinator Steam: Nu
Reputatie: Administrator
Fost manager cs.extream.ro
Web designer
Administratorul anului 2023
Has thanked: 45 times
Been thanked: 310 times
Contact:

26 Nov 2013, 01:14

Mutat: Prima pagină » eXtream - Counter-Strike 1.6 » Programarea CS-ului » Modificari pluginuri
User avatar
FaTzZu
Fost moderator
Fost moderator
Posts: 1206
Joined: 22 Dec 2012, 18:37
Detinator Steam: Da
Reputatie: Fost moderator ajutator
Has thanked: 114 times
Been thanked: 168 times

26 Nov 2013, 10:01

1)
| Afiseaza codul
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <colorchat>
#include <nvault>

#define PLUGIN "Trivia Bot"
#define VERSION "1.1"
#define AUTHOR "Alka"

#define CharsMax(%1) sizeof %1 - 1

#define MAX_LINES 512
#define MAX_LEN 256

#define QUESTION_INTERVAL 30.0
#define QUESTION_INTERVAL_NUM 30

new List[2][MAX_LINES][MAX_LEN];
new Amount;

new Timer = QUESTION_INTERVAL_NUM;
new CurrentAnswer[128];

new bool:TriviaOnOff[33];
new TriviaPoints[33];

new const PluginTag[] = "[FU.RIEN.RO]";

public plugin_init() {
	
	register_plugin(PLUGIN, VERSION, AUTHOR);
	
	register_clcmd("say", "HookSay");
	register_clcmd("say !top10", "ShowTriviaTop");
	register_clcmd("say !triviatop10", "ShowTriviaTop");
	register_clcmd("say !triviatop", "ShowTriviaTop");
	register_clcmd("say !triviapoints", "ShowTriviaPoints");
	register_clcmd("say !points", "ShowTriviaPoints");
	
	set_task(1.0, "TimeRemainingCounter", 1111, "", 0, "b", 0);
	
	TeamInfo = get_user_msgid("TeamInfo");
	SayText = get_user_msgid("SayText");
}

public plugin_cfg()
{
	new ConfigsDir[64], File[64];
	new TriviaDir[64];
	
	get_configsdir(ConfigsDir, CharsMax(ConfigsDir));
	
	formatex(TriviaDir, CharsMax(TriviaDir), "%s/Trivia Bot", ConfigsDir);
	formatex(File, CharsMax(File), "%s/trivia_list.ini", TriviaDir);
	
	if(!dir_exists(TriviaDir))
		mkdir(TriviaDir);
	
	if(!file_exists(File))
		write_file(File, "", -1);
	
	new FilePointer = fopen(File, "rt");
	
	new Buffer[512];
	
	while(!feof(FilePointer))
	{
		fgets(FilePointer, Buffer, CharsMax(Buffer));
		
		if(!Buffer[0] || Buffer[0] == ';' || strlen(Buffer) < 3)
			continue;
		
		trim(Buffer);
		
		strtok(Buffer, List[0][Amount], sizeof List[][] - 1, List[1][Amount], sizeof List[][] - 1, ';', 0);
		
		Amount++;
	}
	fclose(FilePointer);
	
	server_print("%s Successfuly loaded %d lines from %s.", PluginTag, Amount, File);
	
	ShowQuestion();
}

public ShowQuestion()
{
	if(task_exists(2222))
		remove_task(2222);
	
	new RndNum = random(Amount);
	
	formatex(CurrentAnswer, CharsMax(CurrentAnswer), List[1][RndNum]);
	
	static Players[32], Num, Player;
	get_players(Players, Num, "bh");
	
	for(new i = 0 ; i < Num ; i++)
	{
		Player = Players;
		
		if(!is_user_connected(Player))
			continue;
		
		if(!TriviaOnOff[Player])
			continue;
		
		ColorChat(Player, RED, "%s^x01%s", PluginTag, List[0][RndNum]);
	}
	Timer = QUESTION_INTERVAL_NUM - 1;
	
	set_task(QUESTION_INTERVAL, "ShowQuestion", 2222, "", 0, "", 0);
}

public TimeRemainingCounter()
{
	if(Timer < 0)
		return;
	
	static Players[32], Num, Player;
	get_players(Players, Num, "bh");
	
	for(new i = 0 ; i < Num ; i++)
	{
		Player = Players;
		
		if(!is_user_connected(Player))
			continue;
		
		if(!TriviaOnOff[Player])
			continue;
		
		set_hudmessage(255, 255, 255, -1.0, 0.7, 0, 1.0, 0.8, 1.0, 1.0, 4);
		show_hudmessage(Player, "Mai sunt %d secunde pana la urmatoarea intrebare.", Timer);
		
	}
	Timer--;
}

public HookSay(id)
{
	new Args[256];
	read_args(Args, CharsMax(Args));
	
	if(containi(Args, CurrentAnswer) != -1 && TriviaOnOff[id])
	{
		new szName[32] 
		get_user_name(id, szName, charsmax(szName)) 
		new RndNum = random(5000);
		
		ColorChat(id, RED, "%s^x01 Raspunsul tau a fost corect. Felicitari, ai castigat %d$", PluginTag, RndNum);
		ColorChat(0, RED, "%s^x01 %s a raspuns corect la intrebare si a castigat %d$", szName, PluginTag, RndNum);
		
		TriviaPoints[id] += 1;
		
		if(is_user_connected(id))
			cs_set_user_money(id, cs_get_user_money(id) + RndNum, 0);
		
		ShowQuestion();
		return 1;
	}
	else if(equali(Args, "^"/trivia^"", 9))
	{
		if(!TriviaOnOff[id])
		{
			ColorChat(id, RED, "%s^x04 Te-ai alaturat la Trivia, il poti juca cat timp esti mort!", PluginTag);
			TriviaOnOff[id] = true;
		}
		else
		{
			ColorChat(id, RED, "%s^x04 Ai parasit Trivia, nu mai poti juca!", PluginTag);
			TriviaOnOff[id] = false;
		}
	}	
	return 0;
}

public client_disconnect(id)
{
	TriviaOnOff[id] = false;
	
	if(TriviaPoints[id] != 1)
		SavePoints(id);
}

public client_putinserver(id)
{
	set_task(45.0, "ShowAdvMessage", id + 3333);
	
	LoadPoints(id);
}

public ShowAdvMessage(index)
{
	index -= 3333;
	
	ColorChat(index, RED, "%s^x01 In timp ce esti mort poti juca Trivia si poti castiga bani! Tasteaza ^x04/trivia ^x01 in chat pentru activare.", PluginTag);
}

public SavePoints(index)
{
	new Vault = nvault_open("trivia_points");
	
	new Key[64], Value[64], Name[32];
	
	get_user_name(index, Name, sizeof Name - 1);
	
	formatex(Key, sizeof Key - 1, "%s-trivia_points:", Name);
	formatex(Value, sizeof Value - 1, "%d", TriviaPoints[index]);
	
	nvault_set(Vault, Key, Value);
	nvault_close(Vault);
}

public LoadPoints(index)
{
	new Vault = nvault_open("trivia_points");
	
	new Key[64], Value[64], Name[32];
	
	get_user_name(index, Name, sizeof Name - 1);
	
	formatex(Key, sizeof Key - 1, "%s-trivia_points:", Name);
	
	nvault_get(Vault, Key, Value, sizeof Value - 1);
	nvault_close(Vault);
	
	TriviaPoints[index] = str_to_num(Value);
}

public ShowTriviaTop(id)
{
	static Sort[33][2];
	new Count;
	
	new Players[32], Num, Player;
	get_players(Players, Num);
	
	for(new i = 0 ; i < Num ; i++)
	{
		Player = Players;
		
		Sort[Count][0] = Player;
		Sort[Count][1] = TriviaPoints[Player];
		
		Count++;
	}
	
	SortCustom2D(Sort, Count, "points_compare");
	
	new Motd[1024], Len;	
	
	Len = format(Motd, sizeof Motd - 1,"<body bgcolor=#000000><font color=#98f5ff><pre>");
	Len += format(Motd[Len], (sizeof Motd - 1) - Len,"%s %-22.22s %3s^n", "#", "Name", "Trivia Points");
	
	
	new b = clamp(Count, 0, 10);
	
	new Name[32], User;
	
	for(new a = 0; a < b; a++)
	{
		User = Sort[a][0];
		
		get_user_name(User, Name, sizeof Name - 1);		
		Len += format(Motd[Len], (sizeof Motd - 1) - Len,"%d %-22.22s %d^n", a + 1, Name, Sort[a][1]);
	}
	Len += format(Motd[Len], (sizeof Motd - 1) - Len,"</body></font></pre>");
	
	show_motd(id, Motd, "Trivia Top 10");
}

public points_compare(elem1[], elem2[])
{
	if(elem1[1] > elem2[1])
		return -1;
	else if(elem1[1] < elem2[1])
		return 1;
	
	return 0;
}

public ShowTriviaPoints(id)
	ColorChat(id, RED, "%s^x04 Aveti %d puncte trivia%s.", PluginTag, TriviaPoints[id], TriviaPoints[id] > 1 ? "s" : "");


EDIT: 1 si 2

| Afiseaza codul
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <colorchat>
#include <nvault>

#define PLUGIN "Trivia Bot"
#define VERSION "1.1"
#define AUTHOR "Alka"

#define CharsMax(%1) sizeof %1 - 1

#define MAX_LINES 512
#define MAX_LEN 256

#define QUESTION_INTERVAL 30.0
#define QUESTION_INTERVAL_NUM 30

new List[2][MAX_LINES][MAX_LEN];
new Amount;

new Timer = QUESTION_INTERVAL_NUM;
new CurrentAnswer[128];

new bool:TriviaOnOff[33];
new TriviaPoints[33];

new const PluginTag[] = "[FU.RIEN.RO]";

public plugin_init() {
	
	register_plugin(PLUGIN, VERSION, AUTHOR);
	
	register_clcmd("say", "HookSay");
	register_clcmd("say !top10", "ShowTriviaTop");
	register_clcmd("say !triviatop10", "ShowTriviaTop");
	register_clcmd("say !triviatop", "ShowTriviaTop");
	register_clcmd("say !triviapoints", "ShowTriviaPoints");
	register_clcmd("say !points", "ShowTriviaPoints");
	
	set_task(1.0, "TimeRemainingCounter", 1111, "", 0, "b", 0);
	
	TeamInfo = get_user_msgid("TeamInfo");
	SayText = get_user_msgid("SayText");
}

public plugin_cfg()
{
	new ConfigsDir[64], File[64];
	new TriviaDir[64];
	
	get_configsdir(ConfigsDir, CharsMax(ConfigsDir));
	
	formatex(TriviaDir, CharsMax(TriviaDir), "%s/Trivia Bot", ConfigsDir);
	formatex(File, CharsMax(File), "%s/trivia_list.ini", TriviaDir);
	
	if(!dir_exists(TriviaDir))
		mkdir(TriviaDir);
	
	if(!file_exists(File))
		write_file(File, "", -1);
	
	new FilePointer = fopen(File, "rt");
	
	new Buffer[512];
	
	while(!feof(FilePointer))
	{
		fgets(FilePointer, Buffer, CharsMax(Buffer));
		
		if(!Buffer[0] || Buffer[0] == ';' || strlen(Buffer) < 3)
			continue;
		
		trim(Buffer);
		
		strtok(Buffer, List[0][Amount], sizeof List[][] - 1, List[1][Amount], sizeof List[][] - 1, ';', 0);
		
		Amount++;
	}
	fclose(FilePointer);
	
	server_print("%s Successfuly loaded %d lines from %s.", PluginTag, Amount, File);
	
	ShowQuestion();
}

public ShowQuestion()
{
	if(task_exists(2222))
		remove_task(2222);
	
	new RndNum = random(Amount);
	
	formatex(CurrentAnswer, CharsMax(CurrentAnswer), List[1][RndNum]);
	
	static Players[32], Num, Player;
	get_players(Players, Num, "bh");
	
	for(new i = 0 ; i < Num ; i++)
	{
		Player = Players;
		
		if(!is_user_connected(Player))
			continue;
		
		if(!TriviaOnOff[Player])
			continue;
		
		ColorChat(Player, RED, "%s^x01%s", PluginTag, List[0][RndNum]);
		ColorChat(Player, RED, "%s^x01%s", PluginTag, List[0][RndNum]);
		ColorChat(Player, RED, "%s^x01%s", PluginTag, List[0][RndNum]);
	}
	Timer = QUESTION_INTERVAL_NUM - 1;
	
	set_task(QUESTION_INTERVAL, "ShowQuestion", 2222, "", 0, "", 0);
}

public TimeRemainingCounter()
{
	if(Timer < 0)
		return;
	
	static Players[32], Num, Player;
	get_players(Players, Num, "bh");
	
	for(new i = 0 ; i < Num ; i++)
	{
		Player = Players;
		
		if(!is_user_connected(Player))
			continue;
		
		if(!TriviaOnOff[Player])
			continue;
		
		set_hudmessage(255, 255, 255, -1.0, 0.7, 0, 1.0, 0.8, 1.0, 1.0, 4);
		show_hudmessage(Player, "Mai sunt %d secunde pana la urmatoarea intrebare.", Timer);
		
	}
	Timer--;
}

public HookSay(id)
{
	new Args[256];
	read_args(Args, CharsMax(Args));
	
	if(containi(Args, CurrentAnswer) != -1 && TriviaOnOff[id])
	{
		new szName[32] 
		get_user_name(id, szName, charsmax(szName)) 
		new RndNum = random(5000);
		
		ColorChat(id, RED, "%s^x01 Raspunsul tau a fost corect. Felicitari, ai castigat %d$", PluginTag, RndNum);
		ColorChat(0, RED, "%s^x01 %s a raspuns corect la intrebare si a castigat %d$", szName, PluginTag, RndNum);
		
		TriviaPoints[id] += 1;
		
		if(is_user_connected(id))
			cs_set_user_money(id, cs_get_user_money(id) + RndNum, 0);
		
		ShowQuestion();
		return 1;
	}
	else if(equali(Args, "^"/trivia^"", 9))
	{
		if(!TriviaOnOff[id])
		{
			ColorChat(id, RED, "%s^x04 Te-ai alaturat la Trivia, il poti juca cat timp esti mort!", PluginTag);
			TriviaOnOff[id] = true;
		}
		else
		{
			ColorChat(id, RED, "%s^x04 Ai parasit Trivia, nu mai poti juca!", PluginTag);
			TriviaOnOff[id] = false;
		}
	}	
	return 0;
}

public client_disconnect(id)
{
	TriviaOnOff[id] = false;
	
	if(TriviaPoints[id] != 1)
		SavePoints(id);
}

public client_putinserver(id)
{
	set_task(45.0, "ShowAdvMessage", id + 3333);
	
	LoadPoints(id);
}

public ShowAdvMessage(index)
{
	index -= 3333;
	
	ColorChat(index, RED, "%s^x01 In timp ce esti mort poti juca Trivia si poti castiga bani! Tasteaza ^x04/trivia ^x01 in chat pentru activare.", PluginTag);
}

public SavePoints(index)
{
	new Vault = nvault_open("trivia_points");
	
	new Key[64], Value[64], Name[32];
	
	get_user_name(index, Name, sizeof Name - 1);
	
	formatex(Key, sizeof Key - 1, "%s-trivia_points:", Name);
	formatex(Value, sizeof Value - 1, "%d", TriviaPoints[index]);
	
	nvault_set(Vault, Key, Value);
	nvault_close(Vault);
}

public LoadPoints(index)
{
	new Vault = nvault_open("trivia_points");
	
	new Key[64], Value[64], Name[32];
	
	get_user_name(index, Name, sizeof Name - 1);
	
	formatex(Key, sizeof Key - 1, "%s-trivia_points:", Name);
	
	nvault_get(Vault, Key, Value, sizeof Value - 1);
	nvault_close(Vault);
	
	TriviaPoints[index] = str_to_num(Value);
}

public ShowTriviaTop(id)
{
	static Sort[33][2];
	new Count;
	
	new Players[32], Num, Player;
	get_players(Players, Num);
	
	for(new i = 0 ; i < Num ; i++)
	{
		Player = Players;
		
		Sort[Count][0] = Player;
		Sort[Count][1] = TriviaPoints[Player];
		
		Count++;
	}
	
	SortCustom2D(Sort, Count, "points_compare");
	
	new Motd[1024], Len;	
	
	Len = format(Motd, sizeof Motd - 1,"<body bgcolor=#000000><font color=#98f5ff><pre>");
	Len += format(Motd[Len], (sizeof Motd - 1) - Len,"%s %-22.22s %3s^n", "#", "Name", "Trivia Points");
	
	
	new b = clamp(Count, 0, 10);
	
	new Name[32], User;
	
	for(new a = 0; a < b; a++)
	{
		User = Sort[a][0];
		
		get_user_name(User, Name, sizeof Name - 1);		
		Len += format(Motd[Len], (sizeof Motd - 1) - Len,"%d %-22.22s %d^n", a + 1, Name, Sort[a][1]);
	}
	Len += format(Motd[Len], (sizeof Motd - 1) - Len,"</body></font></pre>");
	
	show_motd(id, Motd, "Trivia Top 10");
}

public points_compare(elem1[], elem2[])
{
	if(elem1[1] > elem2[1])
		return -1;
	else if(elem1[1] < elem2[1])
		return 1;
	
	return 0;
}

public ShowTriviaPoints(id)
	ColorChat(id, RED, "%s^x04 Aveti %d puncte trivia%s.", PluginTag, TriviaPoints[id], TriviaPoints[id] > 1 ? "s" : "");
A fool's brain digests philosophy into folly, science into superstition, and art into pedantry.

#RETIRED.
RoCoFeLu
Membru, skill +1
Membru, skill +1
Posts: 284
Joined: 21 Oct 2009, 03:51
Detinator Steam: Nu
Has thanked: 56 times
Been thanked: 6 times

26 Nov 2013, 15:03

FaTzZu wrote:1)
| Afiseaza codul
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <colorchat>
#include <nvault>

#define PLUGIN "Trivia Bot"
#define VERSION "1.1"
#define AUTHOR "Alka"

#define CharsMax(%1) sizeof %1 - 1

#define MAX_LINES 512
#define MAX_LEN 256

#define QUESTION_INTERVAL 30.0
#define QUESTION_INTERVAL_NUM 30

new List[2][MAX_LINES][MAX_LEN];
new Amount;

new Timer = QUESTION_INTERVAL_NUM;
new CurrentAnswer[128];

new bool:TriviaOnOff[33];
new TriviaPoints[33];

new const PluginTag[] = "[FU.RIEN.RO]";

public plugin_init() {
	
	register_plugin(PLUGIN, VERSION, AUTHOR);
	
	register_clcmd("say", "HookSay");
	register_clcmd("say !top10", "ShowTriviaTop");
	register_clcmd("say !triviatop10", "ShowTriviaTop");
	register_clcmd("say !triviatop", "ShowTriviaTop");
	register_clcmd("say !triviapoints", "ShowTriviaPoints");
	register_clcmd("say !points", "ShowTriviaPoints");
	
	set_task(1.0, "TimeRemainingCounter", 1111, "", 0, "b", 0);
	
	TeamInfo = get_user_msgid("TeamInfo");
	SayText = get_user_msgid("SayText");
}

public plugin_cfg()
{
	new ConfigsDir[64], File[64];
	new TriviaDir[64];
	
	get_configsdir(ConfigsDir, CharsMax(ConfigsDir));
	
	formatex(TriviaDir, CharsMax(TriviaDir), "%s/Trivia Bot", ConfigsDir);
	formatex(File, CharsMax(File), "%s/trivia_list.ini", TriviaDir);
	
	if(!dir_exists(TriviaDir))
		mkdir(TriviaDir);
	
	if(!file_exists(File))
		write_file(File, "", -1);
	
	new FilePointer = fopen(File, "rt");
	
	new Buffer[512];
	
	while(!feof(FilePointer))
	{
		fgets(FilePointer, Buffer, CharsMax(Buffer));
		
		if(!Buffer[0] || Buffer[0] == ';' || strlen(Buffer) < 3)
			continue;
		
		trim(Buffer);
		
		strtok(Buffer, List[0][Amount], sizeof List[][] - 1, List[1][Amount], sizeof List[][] - 1, ';', 0);
		
		Amount++;
	}
	fclose(FilePointer);
	
	server_print("%s Successfuly loaded %d lines from %s.", PluginTag, Amount, File);
	
	ShowQuestion();
}

public ShowQuestion()
{
	if(task_exists(2222))
		remove_task(2222);
	
	new RndNum = random(Amount);
	
	formatex(CurrentAnswer, CharsMax(CurrentAnswer), List[1][RndNum]);
	
	static Players[32], Num, Player;
	get_players(Players, Num, "bh");
	
	for(new i = 0 ; i < Num ; i++)
	{
		Player = Players;
		
		if(!is_user_connected(Player))
			continue;
		
		if(!TriviaOnOff[Player])
			continue;
		
		ColorChat(Player, RED, "%s^x01%s", PluginTag, List[0][RndNum]);
	}
	Timer = QUESTION_INTERVAL_NUM - 1;
	
	set_task(QUESTION_INTERVAL, "ShowQuestion", 2222, "", 0, "", 0);
}

public TimeRemainingCounter()
{
	if(Timer < 0)
		return;
	
	static Players[32], Num, Player;
	get_players(Players, Num, "bh");
	
	for(new i = 0 ; i < Num ; i++)
	{
		Player = Players;
		
		if(!is_user_connected(Player))
			continue;
		
		if(!TriviaOnOff[Player])
			continue;
		
		set_hudmessage(255, 255, 255, -1.0, 0.7, 0, 1.0, 0.8, 1.0, 1.0, 4);
		show_hudmessage(Player, "Mai sunt %d secunde pana la urmatoarea intrebare.", Timer);
		
	}
	Timer--;
}

public HookSay(id)
{
	new Args[256];
	read_args(Args, CharsMax(Args));
	
	if(containi(Args, CurrentAnswer) != -1 && TriviaOnOff[id])
	{
		new szName[32] 
		get_user_name(id, szName, charsmax(szName)) 
		new RndNum = random(5000);
		
		ColorChat(id, RED, "%s^x01 Raspunsul tau a fost corect. Felicitari, ai castigat %d$", PluginTag, RndNum);
		ColorChat(0, RED, "%s^x01 %s a raspuns corect la intrebare si a castigat %d$", szName, PluginTag, RndNum);
		
		TriviaPoints[id] += 1;
		
		if(is_user_connected(id))
			cs_set_user_money(id, cs_get_user_money(id) + RndNum, 0);
		
		ShowQuestion();
		return 1;
	}
	else if(equali(Args, "^"/trivia^"", 9))
	{
		if(!TriviaOnOff[id])
		{
			ColorChat(id, RED, "%s^x04 Te-ai alaturat la Trivia, il poti juca cat timp esti mort!", PluginTag);
			TriviaOnOff[id] = true;
		}
		else
		{
			ColorChat(id, RED, "%s^x04 Ai parasit Trivia, nu mai poti juca!", PluginTag);
			TriviaOnOff[id] = false;
		}
	}	
	return 0;
}

public client_disconnect(id)
{
	TriviaOnOff[id] = false;
	
	if(TriviaPoints[id] != 1)
		SavePoints(id);
}

public client_putinserver(id)
{
	set_task(45.0, "ShowAdvMessage", id + 3333);
	
	LoadPoints(id);
}

public ShowAdvMessage(index)
{
	index -= 3333;
	
	ColorChat(index, RED, "%s^x01 In timp ce esti mort poti juca Trivia si poti castiga bani! Tasteaza ^x04/trivia ^x01 in chat pentru activare.", PluginTag);
}

public SavePoints(index)
{
	new Vault = nvault_open("trivia_points");
	
	new Key[64], Value[64], Name[32];
	
	get_user_name(index, Name, sizeof Name - 1);
	
	formatex(Key, sizeof Key - 1, "%s-trivia_points:", Name);
	formatex(Value, sizeof Value - 1, "%d", TriviaPoints[index]);
	
	nvault_set(Vault, Key, Value);
	nvault_close(Vault);
}

public LoadPoints(index)
{
	new Vault = nvault_open("trivia_points");
	
	new Key[64], Value[64], Name[32];
	
	get_user_name(index, Name, sizeof Name - 1);
	
	formatex(Key, sizeof Key - 1, "%s-trivia_points:", Name);
	
	nvault_get(Vault, Key, Value, sizeof Value - 1);
	nvault_close(Vault);
	
	TriviaPoints[index] = str_to_num(Value);
}

public ShowTriviaTop(id)
{
	static Sort[33][2];
	new Count;
	
	new Players[32], Num, Player;
	get_players(Players, Num);
	
	for(new i = 0 ; i < Num ; i++)
	{
		Player = Players;
		
		Sort[Count][0] = Player;
		Sort[Count][1] = TriviaPoints[Player];
		
		Count++;
	}
	
	SortCustom2D(Sort, Count, "points_compare");
	
	new Motd[1024], Len;	
	
	Len = format(Motd, sizeof Motd - 1,"<body bgcolor=#000000><font color=#98f5ff><pre>");
	Len += format(Motd[Len], (sizeof Motd - 1) - Len,"%s %-22.22s %3s^n", "#", "Name", "Trivia Points");
	
	
	new b = clamp(Count, 0, 10);
	
	new Name[32], User;
	
	for(new a = 0; a < b; a++)
	{
		User = Sort[a][0];
		
		get_user_name(User, Name, sizeof Name - 1);		
		Len += format(Motd[Len], (sizeof Motd - 1) - Len,"%d %-22.22s %d^n", a + 1, Name, Sort[a][1]);
	}
	Len += format(Motd[Len], (sizeof Motd - 1) - Len,"</body></font></pre>");
	
	show_motd(id, Motd, "Trivia Top 10");
}

public points_compare(elem1[], elem2[])
{
	if(elem1[1] > elem2[1])
		return -1;
	else if(elem1[1] < elem2[1])
		return 1;
	
	return 0;
}

public ShowTriviaPoints(id)
	ColorChat(id, RED, "%s^x04 Aveti %d puncte trivia%s.", PluginTag, TriviaPoints[id], TriviaPoints[id] > 1 ? "s" : "");


EDIT: 1 si 2

| Afiseaza codul
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <colorchat>
#include <nvault>

#define PLUGIN "Trivia Bot"
#define VERSION "1.1"
#define AUTHOR "Alka"

#define CharsMax(%1) sizeof %1 - 1

#define MAX_LINES 512
#define MAX_LEN 256

#define QUESTION_INTERVAL 30.0
#define QUESTION_INTERVAL_NUM 30

new List[2][MAX_LINES][MAX_LEN];
new Amount;

new Timer = QUESTION_INTERVAL_NUM;
new CurrentAnswer[128];

new bool:TriviaOnOff[33];
new TriviaPoints[33];

new const PluginTag[] = "[FU.RIEN.RO]";

public plugin_init() {
	
	register_plugin(PLUGIN, VERSION, AUTHOR);
	
	register_clcmd("say", "HookSay");
	register_clcmd("say !top10", "ShowTriviaTop");
	register_clcmd("say !triviatop10", "ShowTriviaTop");
	register_clcmd("say !triviatop", "ShowTriviaTop");
	register_clcmd("say !triviapoints", "ShowTriviaPoints");
	register_clcmd("say !points", "ShowTriviaPoints");
	
	set_task(1.0, "TimeRemainingCounter", 1111, "", 0, "b", 0);
	
	TeamInfo = get_user_msgid("TeamInfo");
	SayText = get_user_msgid("SayText");
}

public plugin_cfg()
{
	new ConfigsDir[64], File[64];
	new TriviaDir[64];
	
	get_configsdir(ConfigsDir, CharsMax(ConfigsDir));
	
	formatex(TriviaDir, CharsMax(TriviaDir), "%s/Trivia Bot", ConfigsDir);
	formatex(File, CharsMax(File), "%s/trivia_list.ini", TriviaDir);
	
	if(!dir_exists(TriviaDir))
		mkdir(TriviaDir);
	
	if(!file_exists(File))
		write_file(File, "", -1);
	
	new FilePointer = fopen(File, "rt");
	
	new Buffer[512];
	
	while(!feof(FilePointer))
	{
		fgets(FilePointer, Buffer, CharsMax(Buffer));
		
		if(!Buffer[0] || Buffer[0] == ';' || strlen(Buffer) < 3)
			continue;
		
		trim(Buffer);
		
		strtok(Buffer, List[0][Amount], sizeof List[][] - 1, List[1][Amount], sizeof List[][] - 1, ';', 0);
		
		Amount++;
	}
	fclose(FilePointer);
	
	server_print("%s Successfuly loaded %d lines from %s.", PluginTag, Amount, File);
	
	ShowQuestion();
}

public ShowQuestion()
{
	if(task_exists(2222))
		remove_task(2222);
	
	new RndNum = random(Amount);
	
	formatex(CurrentAnswer, CharsMax(CurrentAnswer), List[1][RndNum]);
	
	static Players[32], Num, Player;
	get_players(Players, Num, "bh");
	
	for(new i = 0 ; i < Num ; i++)
	{
		Player = Players;
		
		if(!is_user_connected(Player))
			continue;
		
		if(!TriviaOnOff[Player])
			continue;
		
		ColorChat(Player, RED, "%s^x01%s", PluginTag, List[0][RndNum]);
		ColorChat(Player, RED, "%s^x01%s", PluginTag, List[0][RndNum]);
		ColorChat(Player, RED, "%s^x01%s", PluginTag, List[0][RndNum]);
	}
	Timer = QUESTION_INTERVAL_NUM - 1;
	
	set_task(QUESTION_INTERVAL, "ShowQuestion", 2222, "", 0, "", 0);
}

public TimeRemainingCounter()
{
	if(Timer < 0)
		return;
	
	static Players[32], Num, Player;
	get_players(Players, Num, "bh");
	
	for(new i = 0 ; i < Num ; i++)
	{
		Player = Players;
		
		if(!is_user_connected(Player))
			continue;
		
		if(!TriviaOnOff[Player])
			continue;
		
		set_hudmessage(255, 255, 255, -1.0, 0.7, 0, 1.0, 0.8, 1.0, 1.0, 4);
		show_hudmessage(Player, "Mai sunt %d secunde pana la urmatoarea intrebare.", Timer);
		
	}
	Timer--;
}

public HookSay(id)
{
	new Args[256];
	read_args(Args, CharsMax(Args));
	
	if(containi(Args, CurrentAnswer) != -1 && TriviaOnOff[id])
	{
		new szName[32] 
		get_user_name(id, szName, charsmax(szName)) 
		new RndNum = random(5000);
		
		ColorChat(id, RED, "%s^x01 Raspunsul tau a fost corect. Felicitari, ai castigat %d$", PluginTag, RndNum);
		ColorChat(0, RED, "%s^x01 %s a raspuns corect la intrebare si a castigat %d$", szName, PluginTag, RndNum);
		
		TriviaPoints[id] += 1;
		
		if(is_user_connected(id))
			cs_set_user_money(id, cs_get_user_money(id) + RndNum, 0);
		
		ShowQuestion();
		return 1;
	}
	else if(equali(Args, "^"/trivia^"", 9))
	{
		if(!TriviaOnOff[id])
		{
			ColorChat(id, RED, "%s^x04 Te-ai alaturat la Trivia, il poti juca cat timp esti mort!", PluginTag);
			TriviaOnOff[id] = true;
		}
		else
		{
			ColorChat(id, RED, "%s^x04 Ai parasit Trivia, nu mai poti juca!", PluginTag);
			TriviaOnOff[id] = false;
		}
	}	
	return 0;
}

public client_disconnect(id)
{
	TriviaOnOff[id] = false;
	
	if(TriviaPoints[id] != 1)
		SavePoints(id);
}

public client_putinserver(id)
{
	set_task(45.0, "ShowAdvMessage", id + 3333);
	
	LoadPoints(id);
}

public ShowAdvMessage(index)
{
	index -= 3333;
	
	ColorChat(index, RED, "%s^x01 In timp ce esti mort poti juca Trivia si poti castiga bani! Tasteaza ^x04/trivia ^x01 in chat pentru activare.", PluginTag);
}

public SavePoints(index)
{
	new Vault = nvault_open("trivia_points");
	
	new Key[64], Value[64], Name[32];
	
	get_user_name(index, Name, sizeof Name - 1);
	
	formatex(Key, sizeof Key - 1, "%s-trivia_points:", Name);
	formatex(Value, sizeof Value - 1, "%d", TriviaPoints[index]);
	
	nvault_set(Vault, Key, Value);
	nvault_close(Vault);
}

public LoadPoints(index)
{
	new Vault = nvault_open("trivia_points");
	
	new Key[64], Value[64], Name[32];
	
	get_user_name(index, Name, sizeof Name - 1);
	
	formatex(Key, sizeof Key - 1, "%s-trivia_points:", Name);
	
	nvault_get(Vault, Key, Value, sizeof Value - 1);
	nvault_close(Vault);
	
	TriviaPoints[index] = str_to_num(Value);
}

public ShowTriviaTop(id)
{
	static Sort[33][2];
	new Count;
	
	new Players[32], Num, Player;
	get_players(Players, Num);
	
	for(new i = 0 ; i < Num ; i++)
	{
		Player = Players;
		
		Sort[Count][0] = Player;
		Sort[Count][1] = TriviaPoints[Player];
		
		Count++;
	}
	
	SortCustom2D(Sort, Count, "points_compare");
	
	new Motd[1024], Len;	
	
	Len = format(Motd, sizeof Motd - 1,"<body bgcolor=#000000><font color=#98f5ff><pre>");
	Len += format(Motd[Len], (sizeof Motd - 1) - Len,"%s %-22.22s %3s^n", "#", "Name", "Trivia Points");
	
	
	new b = clamp(Count, 0, 10);
	
	new Name[32], User;
	
	for(new a = 0; a < b; a++)
	{
		User = Sort[a][0];
		
		get_user_name(User, Name, sizeof Name - 1);		
		Len += format(Motd[Len], (sizeof Motd - 1) - Len,"%d %-22.22s %d^n", a + 1, Name, Sort[a][1]);
	}
	Len += format(Motd[Len], (sizeof Motd - 1) - Len,"</body></font></pre>");
	
	show_motd(id, Motd, "Trivia Top 10");
}

public points_compare(elem1[], elem2[])
{
	if(elem1[1] > elem2[1])
		return -1;
	else if(elem1[1] < elem2[1])
		return 1;
	
	return 0;
}

public ShowTriviaPoints(id)
	ColorChat(id, RED, "%s^x04 Aveti %d puncte trivia%s.", PluginTag, TriviaPoints[id], TriviaPoints[id] > 1 ? "s" : "");


Sa-ti dea Dumnezeu sanatate :*

EDIT: As dori daca se poate sa dezactivezi si nvault, adica puncte, top, etc, sa nu mai existe nicio comanda de acest fel (puncte, top, etc) Doar trivia cu bani..
Cosmin
Fost moderator
Fost moderator
Posts: 9362
Joined: 06 Jul 2013, 22:08
Detinator Steam: Da
Detinator server CS: Nu
Reputatie: Fost eXtream Mod
Fost Scripter eXtreamCS
Nume anterior: scosmynnnn
Has thanked: 492 times
Been thanked: 547 times

26 Nov 2013, 15:47

Code: Select all

register_clcmd("say !points", "ShowTriviaPoints");
pune // in fata la comenzii respective,care vrei tu sa numai functioneze !
RoCoFeLu
Membru, skill +1
Membru, skill +1
Posts: 284
Joined: 21 Oct 2009, 03:51
Detinator Steam: Nu
Has thanked: 56 times
Been thanked: 6 times

26 Nov 2013, 16:47

scosmynnnn wrote:

Code: Select all

register_clcmd("say !points", "ShowTriviaPoints");
pune // in fata la comenzii respective,care vrei tu sa numai functioneze !
stiu asta, dar daca o fac, nu scap de nvault. (am acel modul prea folosit si nu vreau sa dea crash)
User avatar
FaTzZu
Fost moderator
Fost moderator
Posts: 1206
Joined: 22 Dec 2012, 18:37
Detinator Steam: Da
Reputatie: Fost moderator ajutator
Has thanked: 114 times
Been thanked: 168 times

26 Nov 2013, 19:39

Poftim :)
| Afiseaza codul
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <colorchat>

#define PLUGIN "Trivia Bot"
#define VERSION "1.1"
#define AUTHOR "Alka"

#define CharsMax(%1) sizeof %1 - 1

#define MAX_LINES 512
#define MAX_LEN 256

#define QUESTION_INTERVAL 30.0
#define QUESTION_INTERVAL_NUM 30

new List[2][MAX_LINES][MAX_LEN];
new Amount;

new Timer = QUESTION_INTERVAL_NUM;
new CurrentAnswer[128];

new bool:TriviaOnOff[33];
new TriviaPoints[33];

new const PluginTag[] = "[FU.RIEN.RO]";

public plugin_init() {
	
	register_plugin(PLUGIN, VERSION, AUTHOR);
	
	register_clcmd("say", "HookSay");
	register_clcmd("say !top10", "ShowTriviaTop");
	register_clcmd("say !triviatop10", "ShowTriviaTop");
	register_clcmd("say !triviatop", "ShowTriviaTop");
	register_clcmd("say !triviapoints", "ShowTriviaPoints");
	register_clcmd("say !points", "ShowTriviaPoints");
	
	set_task(1.0, "TimeRemainingCounter", 1111, "", 0, "b", 0);
	
	TeamInfo = get_user_msgid("TeamInfo");
	SayText = get_user_msgid("SayText");
}

public plugin_cfg()
{
	new ConfigsDir[64], File[64];
	new TriviaDir[64];
	
	get_configsdir(ConfigsDir, CharsMax(ConfigsDir));
	
	formatex(TriviaDir, CharsMax(TriviaDir), "%s/Trivia Bot", ConfigsDir);
	formatex(File, CharsMax(File), "%s/trivia_list.ini", TriviaDir);
	
	if(!dir_exists(TriviaDir))
		mkdir(TriviaDir);
	
	if(!file_exists(File))
		write_file(File, "", -1);
	
	new FilePointer = fopen(File, "rt");
	
	new Buffer[512];
	
	while(!feof(FilePointer))
	{
		fgets(FilePointer, Buffer, CharsMax(Buffer));
		
		if(!Buffer[0] || Buffer[0] == ';' || strlen(Buffer) < 3)
			continue;
		
		trim(Buffer);
		
		strtok(Buffer, List[0][Amount], sizeof List[][] - 1, List[1][Amount], sizeof List[][] - 1, ';', 0);
		
		Amount++;
	}
	fclose(FilePointer);
	
	server_print("%s Successfuly loaded %d lines from %s.", PluginTag, Amount, File);
	
	ShowQuestion();
}

public ShowQuestion()
{
	if(task_exists(2222))
		remove_task(2222);
	
	new RndNum = random(Amount);
	
	formatex(CurrentAnswer, CharsMax(CurrentAnswer), List[1][RndNum]);
	
	static Players[32], Num, Player;
	get_players(Players, Num, "bh");
	
	for(new i = 0 ; i < Num ; i++)
	{
		Player = Players;
		
		if(!is_user_connected(Player))
			continue;
		
		if(!TriviaOnOff[Player])
			continue;
		
		ColorChat(Player, RED, "%s^x01%s", PluginTag, List[0][RndNum]);
		ColorChat(Player, RED, "%s^x01%s", PluginTag, List[0][RndNum]);
		ColorChat(Player, RED, "%s^x01%s", PluginTag, List[0][RndNum]);
	}
	Timer = QUESTION_INTERVAL_NUM - 1;
	
	set_task(QUESTION_INTERVAL, "ShowQuestion", 2222, "", 0, "", 0);
}

public TimeRemainingCounter()
{
	if(Timer < 0)
		return;
	
	static Players[32], Num, Player;
	get_players(Players, Num, "bh");
	
	for(new i = 0 ; i < Num ; i++)
	{
		Player = Players;
		
		if(!is_user_connected(Player))
			continue;
		
		if(!TriviaOnOff[Player])
			continue;
		
		set_hudmessage(255, 255, 255, -1.0, 0.7, 0, 1.0, 0.8, 1.0, 1.0, 4);
		show_hudmessage(Player, "Mai sunt %d secunde pana la urmatoarea intrebare.", Timer);
		
	}
	Timer--;
}

public HookSay(id)
{
	new Args[256];
	read_args(Args, CharsMax(Args));
	
	if(containi(Args, CurrentAnswer) != -1 && TriviaOnOff[id])
	{
		new szName[32] 
		get_user_name(id, szName, charsmax(szName)) 
		new RndNum = random(5000);
		
		ColorChat(id, RED, "%s^x01 Raspunsul tau a fost corect. Felicitari, ai castigat %d$", PluginTag, RndNum);
		ColorChat(0, RED, "%s^x01 %s a raspuns corect la intrebare si a castigat %d$", szName, PluginTag, RndNum);
		
		TriviaPoints[id] += 1;
		
		if(is_user_connected(id))
			cs_set_user_money(id, cs_get_user_money(id) + RndNum, 0);
		
		ShowQuestion();
		return 1;
	}
	else if(equali(Args, "^"/trivia^"", 9))
	{
		if(!TriviaOnOff[id])
		{
			ColorChat(id, RED, "%s^x04 Te-ai alaturat la Trivia, il poti juca cat timp esti mort!", PluginTag);
			TriviaOnOff[id] = true;
		}
		else
		{
			ColorChat(id, RED, "%s^x04 Ai parasit Trivia, nu mai poti juca!", PluginTag);
			TriviaOnOff[id] = false;
		}
	}	
	return 0;
}

public client_disconnect(id)
{
	TriviaOnOff[id] = false;
	
	if(TriviaPoints[id] != 1)
}

public client_putinserver(id)
{
	set_task(45.0, "ShowAdvMessage", id + 3333);
}

public ShowAdvMessage(index)
{
	index -= 3333;
	
	ColorChat(index, RED, "%s^x01 In timp ce esti mort poti juca Trivia si poti castiga bani! Tasteaza ^x04/trivia ^x01 in chat pentru activare.", PluginTag);
}

public ShowTriviaTop(id)
{
	static Sort[33][2];
	new Count;
	
	new Players[32], Num, Player;
	get_players(Players, Num);
	
	for(new i = 0 ; i < Num ; i++)
	{
		Player = Players;
		
		Sort[Count][0] = Player;
		Sort[Count][1] = TriviaPoints[Player];
		
		Count++;
	}
	
	SortCustom2D(Sort, Count, "points_compare");
	
	new Motd[1024], Len;	
	
	Len = format(Motd, sizeof Motd - 1,"<body bgcolor=#000000><font color=#98f5ff><pre>");
	Len += format(Motd[Len], (sizeof Motd - 1) - Len,"%s %-22.22s %3s^n", "#", "Name", "Trivia Points");
	
	
	new b = clamp(Count, 0, 10);
	
	new Name[32], User;
	
	for(new a = 0; a < b; a++)
	{
		User = Sort[a][0];
		
		get_user_name(User, Name, sizeof Name - 1);		
		Len += format(Motd[Len], (sizeof Motd - 1) - Len,"%d %-22.22s %d^n", a + 1, Name, Sort[a][1]);
	}
	Len += format(Motd[Len], (sizeof Motd - 1) - Len,"</body></font></pre>");
	
	show_motd(id, Motd, "Trivia Top 10");
}

public points_compare(elem1[], elem2[])
{
	if(elem1[1] > elem2[1])
		return -1;
	else if(elem1[1] < elem2[1])
		return 1;
	
	return 0;
}

public ShowTriviaPoints(id)
	ColorChat(id, RED, "%s^x04 Aveti %d puncte trivia%s.", PluginTag, TriviaPoints[id], TriviaPoints[id] > 1 ? "s" : "");
A fool's brain digests philosophy into folly, science into superstition, and art into pedantry.

#RETIRED.
Post Reply

Return to “Modificari pluginuri”

  • Information
  • Who is online

    Users browsing this forum: No registered users and 7 guests