Raised This Month: $ Target: $400
 0% 

Pls add green color to SMA BET Plugin


  
 
 
Thread Tools Display Modes
Prev Previous Post   Next Post Next
Author Message
Godofwar
AlliedModders Donor
Join Date: Dec 2015
Location: Germany
Old 09-09-2017 , 12:21   Pls add green color to SMA BET Plugin
Reply With Quote #1

Hello, can anyone add it please ? Green color to the Question in client print...

Code:
//////////////////////////////////////////////////////////////////////////////////////////////////
/*	Link: https://forums.alliedmods.net/showthread.php?t=240603

	Number Quiz v1.1
	----------------
	At each round start, a number quiz will shown in the chat.
	The first alive player to answer the quiz will receive a reward.
	
	Available reward types:
	1. HP reward		( default = 20HP )
	2. HP + Armor reward	( default = 10HP + 50 Armor)
	3. Godmode		( default = 15 seconds )
	4. Superspeed		( default = 10 seconds )
	
	Cvars: 
	
	quiz_type  ( default = 1 )  Sets the type of quiz
		-> 0 = No quiz
		-> 1 = Two number addtion/subtraction
		-> 2 = Three number addition/subtraction
		-> 3 = Two number multiplication/division
		-> 4 = Three number multiplication/division + addition/subtraction
	quiz_random  ( default = 0 )  If set to 1 and if quiz_type is not 0, it will put random types of quizes irrespective of the quiz_type value
	quiz_hp  ( default = 20 )  Sets the amount of hp reward
	quiz_armor (default = 50 )  Sets the amount of armor reward
	quiz_godmode_time  ( default = 15 )  Sets the time in seconds for which Godmode will be active
	quiz_superspeed_time  ( default = 10 )  Sets the time in seconds for which Superspeed will be active
	quiz_random_reward  ( default = 0 )  If set to 1, the winner will receive a random reward
*/
//////////////////////////////////////////////////////////////////////////////////////////////////

#include <amxmodx>
#include <fun>

#define PLUGIN "Number Quiz"
#define VERSION "1.1"
#define AUTHOR "connoisseur"

#define TAG "[Number Quiz]"
//#define DEBUG

// Global Variables
new g_iAnswer
new bool:g_answered
new g_iPlayerSpeed[33]
static Array:g_DivisorsArray

// Cvar Handles
new hp_cvar
new type_cvar
new random_cvar
new armor_cvar
new gm_cvar
new ss_cvar
new random_reward_cvar

// Task offset
const TASK_ID = 1337

public plugin_init() 
{
	register_plugin(PLUGIN, VERSION, AUTHOR)
	
	random_cvar = register_cvar("quiz_random", "0")
	type_cvar = register_cvar("quiz_type", "1")
	hp_cvar = register_cvar("quiz_hp", "50")
	armor_cvar = register_cvar("quiz_armor", "500")
	gm_cvar = register_cvar("quiz_godmode_time", "15")
	ss_cvar = register_cvar("quiz_superspeed_time", "10")
	random_reward_cvar = register_cvar("quiz_random_reward", "0")
	
	register_logevent("eventRoundStart", 2, "1=Round_Start")
	register_event("CurWeapon", "fixSpeed", "be", "1=1")
	
	register_clcmd("say", "hookSay")
	register_clcmd("say_team", "hookSay")
	
	g_DivisorsArray = ArrayCreate(1)
}

public eventRoundStart()
{
	g_answered = false
	if( get_pcvar_num( type_cvar ) > 0 )
	{
		client_print( 0, print_chat, "%s %s = ?", TAG, generateQuiz() )
		#if defined DEBUG
		client_print( 0, print_chat, "%s Answer = %i", TAG, g_iAnswer )
		#endif
	}
	
	new iPlayers[32]
	new iNum, iPlayer
	
	get_players(iPlayers, iNum)
	
	for( new i; i < iNum; i++ )
	{
		iPlayer = iPlayers[i]
	
		if( !g_iPlayerSpeed[iPlayer] )
			continue
	
		g_iPlayerSpeed[iPlayer] = 0
	}
}

public fixSpeed(id)
{
    if( is_user_alive(id) && is_user_connected(id) )
    {
        if( g_iPlayerSpeed[id] )
        {
            set_user_maxspeed(id , 800.0)
        }
    }
}

public hookSay(id)
{
	if( !g_answered )
	{
		new szArgs[7]
		new szAns[7]
		
		read_args( szArgs, charsmax( szArgs ) )
		remove_quotes( szArgs )
		
		num_to_str( g_iAnswer, szAns, charsmax( szAns ) )
		
		if( !strcmp( szArgs, szAns ) )
		{
			if( is_user_alive(id) )
			{
				g_answered = true
				
				new szNick[32]
				get_user_name(id, szNick, charsmax( szNick ) )
				
				client_print( 0, print_chat, "%s %s has won with the correct answer ^"%i^"", TAG, szNick, g_iAnswer )	
				
				if( !get_pcvar_num( random_reward_cvar ) )
					ShowMenu(id)
				else
					rewardPlayer( random_num( 0, 3 ) , id )
			}
		}
	}
	return PLUGIN_CONTINUE
}

generateQuiz()
{
	new szQuiz[20]
	new iType = get_pcvar_num( random_cvar ) ? random_num( 1, 4 ) : get_pcvar_num( type_cvar )
	
	switch( iType )
	{
		case 2:									// 3 number addition/subtraction
		{
			new iOperand[3]
			new charOP[2]
			
			iOperand[0] = random_num( 1, 100 )
			iOperand[1] = random_num( 1, 100 )
			iOperand[2] = random_num( 1, 100 )
			
			charOP[0] = random_num( 0, 1 ) ? '+' : '-'
			charOP[1] = random_num( 0, 1 ) ? '+' : '-'
			
			if( charOP[0] == '+' && charOP[1] == '+' )
				g_iAnswer = iOperand[0] + iOperand[1] + iOperand[2]
			else if( charOP[0] == '+' && charOP[1] == '-' )
				g_iAnswer = iOperand[0] + iOperand[1] - iOperand[2]
			else if( charOP[0] == '-' && charOP[1] == '+' )
				g_iAnswer = iOperand[0] - iOperand[1] + iOperand[2]
			else
				g_iAnswer = iOperand[0] - iOperand[1] - iOperand[2]
				
			formatex( szQuiz, charsmax( szQuiz ), "%i %c %i %c %i", iOperand[0], charOP[0], iOperand[1], charOP[1], iOperand[2] )
		}
		case 3:									// 2 number multiply/divide
		{
			new iOperand[2]
			new charOP
			
			charOP = random_num( 0, 1 ) ? '*' : '/'
			
			if ( charOP == '*' )
			{
				iOperand[0] = random_num( 4, 99 )
				iOperand[1] = random_num( 3, 9 )
				
				g_iAnswer = iOperand[0] * iOperand[1]
			}
			else
			{
				iOperand[0] = random_num( 8, 99 )
				while( isPrime( iOperand[0] ) )
					iOperand[0] = random_num( 8, 99 )
				iOperand[1] = getRandomDivisor( iOperand[0] )
				
				g_iAnswer = iOperand[0] / iOperand[1]
			}
			
			formatex( szQuiz, charsmax( szQuiz ), "%i %c %i", iOperand[0], charOP, iOperand[1] )
		}
		case 4:									// 3 num add, minus, mult, divide
		{
			new iOperand[3]
			new charOP[2]
			
			charOP[0] = random_num( 0, 1 ) ? '*' : '/'
			charOP[1] = random_num( 0, 1 ) ? '+' : '-'
			iOperand[2] = random_num( 1, 100 )
			
			if ( charOP[0] == '*' )
			{
				iOperand[0] = random_num( 4, 99 )
				iOperand[1] = random_num( 3, 9 )
				
				g_iAnswer = iOperand[0] * iOperand[1]
			}
			else
			{
				iOperand[0] = random_num( 8, 99 )
				while( isPrime( iOperand[0] ) )
					iOperand[0] = random_num( 8, 99 )
				iOperand[1] = getRandomDivisor( iOperand[0] )
				
				g_iAnswer = iOperand[0] / iOperand[1]
			}
			
			if ( charOP[1] == '+' )
				g_iAnswer += iOperand[2]
			else
				g_iAnswer -= iOperand[2]
				
			formatex( szQuiz, charsmax( szQuiz ), "%i %c %i %c %i", iOperand[0], charOP[0], iOperand[1], charOP[1], iOperand[2] )
		}
		default:
		{
			new iOperand[2]
			new charOP
			
			iOperand[0] = random_num( 1, 100 )
			iOperand[1] = random_num( 1, 100 )
			charOP = random_num( 0, 1 ) ? '+' : '-'
			
			if ( charOP == '+' )
				g_iAnswer = iOperand[0] + iOperand[1]
			else
				g_iAnswer = iOperand[0] - iOperand[1]	
				
			formatex( szQuiz, charsmax( szQuiz ), "%i %c %i", iOperand[0], charOP, iOperand[1] )
		}
	}
	return szQuiz
}

public ShowMenu(id)
{
	new menu = menu_create("Choose a reward:", "rewardMenuHandler")
	new szMsg[30]

	formatex( szMsg, sizeof szMsg - 1, "+%i Health", get_pcvar_num( hp_cvar ) )
	menu_additem(menu, szMsg, "", 0)
	formatex( szMsg, sizeof szMsg - 1, "+%i Health +%i Armor", get_pcvar_num( hp_cvar )/2, get_pcvar_num( armor_cvar ) )
	menu_additem(menu, szMsg, "", 0)
	formatex( szMsg, sizeof szMsg - 1, "%i second Godmode", get_pcvar_num( gm_cvar ) )
	menu_additem(menu, szMsg, "", 0)
	formatex( szMsg, sizeof szMsg - 1, "%i second Superspeed", get_pcvar_num( ss_cvar ) )
	menu_additem(menu, szMsg, "", 0)

	menu_setprop(menu, MPROP_EXIT, MEXIT_NEVER)
	menu_setprop(menu, MPROP_NUMBER_COLOR, "\y")

	menu_display(id, menu, 0)

	return PLUGIN_HANDLED
}

public rewardMenuHandler( id, menu, item )
{
	new command[6], name[64], access, callback

	menu_item_getinfo( menu, item, access, command, sizeof command - 1, name, sizeof name - 1, callback )

	rewardPlayer( item, id )

	menu_destroy( menu )

	return PLUGIN_HANDLED
}

rewardPlayer( item , id )
{
	new szNick[32]
	get_user_name(id, szNick, charsmax( szNick ) )
				
	switch( item )
	{
		case 0: 
		{
			new hp = get_pcvar_num( hp_cvar )
			set_user_health( id, get_user_health(id) + hp )
			client_print(0, print_chat, "%s %s received +%i Health", TAG, szNick, hp)
		}
		case 1: 
		{
			new hp = get_pcvar_num( hp_cvar )/2
			new armor = get_pcvar_num( armor_cvar )
			set_user_health( id, get_user_health(id) + hp )
			set_user_armor( id, get_user_armor(id) + armor )
			client_print(0, print_chat, "%s %s received +%i Health and +%i Armor", TAG, szNick, hp, armor)
		}
		case 2: 
		{
			set_user_godmode( id, 1 )
			new gm = get_pcvar_num( gm_cvar )
			set_task( gm + 0.0, "removeGodmode", id + TASK_ID )
			client_print(0, print_chat, "%s %s received %i second Godmode !", TAG, szNick, gm)
		}
		case 3: 
		{
			set_user_maxspeed( id, 800.0 )
			g_iPlayerSpeed[id] = 1
			new ss = get_pcvar_num( ss_cvar )
			set_task( ss + 0.0, "removeSuperspeed", id + TASK_ID )
			client_print(0, print_chat, "%s %s received %i second Superspeed ! Go Go Go !", TAG, szNick, ss)
		}
	}
}

public removeSuperspeed(id)
{
	id -= TASK_ID
	set_user_maxspeed( id, -1.0 )
	g_iPlayerSpeed[id] = 0
	client_print( id, print_chat, "%s Time up !! Your speed has been set back to normal !", TAG )
} 

public removeGodmode(id)
{
	id -= TASK_ID
	set_user_godmode( id, 0 )
	client_print( id, print_chat, "%s Time up !! You no longer have Godmode !", TAG )
}  

getRandomDivisor( iNum )
{
	for( new i = 2; i <= iNum/2 ; i++ )	//get all divisors
	{
		if( iNum % i == 0 )
			ArrayPushCell( g_DivisorsArray, i )
	}
	 
	new iDiv =  ArrayGetCell( g_DivisorsArray, random_num( 0, ArraySize( g_DivisorsArray ) - 1 ) )
	
	ArrayClear( g_DivisorsArray )
	
	return iDiv
}

isPrime( iNum )
{
	new bool:prime = true
	for( new i = 2; i <= iNum/2 ; i++ )
	{
		if( iNum % i == 0 )
		{
			prime = false
			break
		}
	}
	return prime
}

public plugin_end()
{
	ArrayDestroy( g_DivisorsArray )
}
Thx ?

Last edited by Godofwar; 09-09-2017 at 12:31.
Godofwar is offline
 



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 09:56.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Theme made by Freecode