Code:
/* Kviz v2.1 © 2010, ->UrOS<-
Contact e-mail [email protected]
Formatright
*English*
This plugin is free software;
you can modify it under the terms of the
GNU General Public License as published by the Free Software Foundation.
*Serbian*
Ovaj plugin je besplatni program;
mozete ga menjati postujuci prava autora, samo ga ne smete prodavati.
*/
#include <amxmodx>
#include <cstrike>
#include <amxmisc>
#include <nvault>
#include <colorchat>
#include <dhudmessage>
#define PRISTUP ADMIN_IMMUNITY
new const PLUGIN[] = "Kviz"
new const VERZIJA[] = "2.1"
new const AUTOR[] = "->UrOS<-"
new const KONTAKT[] = "[email protected]"
new bool:kviz = false
new kvizResenje = 0
new kvizMaxPokusaji[33]
new kvizRank[33]
new kvizMenu[50]
new kvizTezina
new kvizPlusMinus
new kvizPuta
new kvizPokusaji
new kvizVreme
new kvizUcestalost
new kvizNagrada
new kvizPrikaz
new kvizGramatika
new kvizMuzika
new const UrOS1[] = "vox/bravo.wav"
new const UrOS2[] = "ambience/lv2.wav"
new const UrOS3[] = "buttons/bell1.wav"
new const UrOS4[] = "vox/access.wav"
new const UrOS5[] = "ambience/lv5.wav"
new const UrOS6[] = "vox/denied.wav"
public plugin_init()
{
register_plugin( PLUGIN, VERZIJA, AUTOR )
register_cvar(PLUGIN, VERZIJA , (FCVAR_SERVER|FCVAR_SPONLY))
register_concmd("say", "kvizProvera", 0, "- Provera kviz resenja")
register_concmd("say_team", "kvizProvera", 0, "- Provera kviz resenja")
register_clcmd("say /quiz", "kvizPrikaziMenu")
register_clcmd("say_team /quiz", "kvizPrikaziMenu")
register_clcmd("say /quizmenu", "kvizGlavniMenu")
register_clcmd("say_team /quzmenu", "kvizGlavniMenu")
register_clcmd("say /quiztop15","kvizTop15")
register_clcmd("say_team /quiztop15","kvizTop15")
register_clcmd("say /quizrank","kvizPrikaziRank")
register_clcmd("say_team /quizrank","kvizPrikaziRank")
register_clcmd("say /quizinfo","kvizMotd")
register_clcmd("say_team /quizinfo","kvizMotd")
kvizTezina = register_cvar("kviz_tezina", "2", PRISTUP)
kvizPlusMinus = register_cvar("kviz_plus_minus", "30", PRISTUP)
kvizPuta = register_cvar("kviz_puta", "12", PRISTUP)
kvizPokusaji = register_cvar("kviz_pokusaji", "2", PRISTUP)
kvizVreme = register_cvar("kviz_vreme", "25", PRISTUP)
kvizUcestalost = register_cvar("kviz_ucestalost", "90", PRISTUP)
kvizNagrada = register_cvar("kviz_nagrada", "1500", PRISTUP)
kvizPrikaz = register_cvar("kviz_prikaz", "4", PRISTUP)
kvizMuzika = register_cvar("kviz_muzika", "1", PRISTUP)
set_task(get_pcvar_float(kvizUcestalost), "kvizPitanje")
}
public plugin_precache()
{
precache_sound(UrOS1)
precache_sound(UrOS2)
precache_sound(UrOS3)
precache_sound(UrOS4)
precache_sound(UrOS6)
precache_sound(UrOS5)
}
public client_putinserver(id)
{
set_task(15.0, "kvizReklama", id, _, _, "a", 1)
kvizRank[id] = kvizUcitajRank(id)
}
public kvizProvera(id)
{
if ( !kviz )
{
new Text[ 32 ]
read_argv( 1, Text, 31 )
new Odgovor = str_to_num(Text)
if ( Odgovor == 0 && ( kvizResenje != 0 || Text[ 0 ] != '0' ) )
return
if ( kvizMaxPokusaji[id] > 0 )
{
if ( Odgovor == kvizResenje )
{
kviz = true
static imeDobitnika[32]
get_user_name(id, imeDobitnika, 31)
kvizRank[id] += 1
kvizSacuvajRank(id, kvizRank[id])
cs_set_user_money(id, cs_get_user_money(id) + get_pcvar_num(kvizNagrada), 1)
ColorChat(0, TEAM_COLOR, "^4[Kviz] ^3%s ^1is the first who guessed the answer, answer was^4(%i) ^1and he gets ^4%i$", imeDobitnika, Odgovor, get_pcvar_num(kvizNagrada))
client_cmd(0, "speak %s", UrOS3)
{
client_cmd(id, "speak %s", UrOS1)
ColorChat(id, TEAM_COLOR, "^4[Quiz] ^1Good job, your answer^4(%i) ^1is correct, you get ^4%i$", Odgovor, get_pcvar_num(kvizNagrada))
}
set_dhudmessage(0, 0, 0, 0.00, 0.00, 0, 0.0, 0.0)
for(new i=0;i<8;i++)
show_dhudmessage(0, "PS: This invisible message is here, to remove some error ;)")
}
else
{
kvizMaxPokusaji[id]--
new mnozina = kvizMaxPokusaji[id] == 1
kvizGramatika = mnozina
ColorChat(id, TEAM_COLOR, "^4[Quiz] ^1Your answer ^4(%i) ^1is wrong, you can try ^4%i ^1times%s", Odgovor, kvizMaxPokusaji[id], (kvizGramatika & mnozina) ? "" : "a")
}
}
else
{
ColorChat(id, GREEN, "^4[Quiz] ^1You dont have again chance to guess, wait next question ^4:)")
}
}
}
public kvizIstekloVreme()
{
if(!kviz)
{
kviz = true
client_cmd(0, "speak %s", UrOS3)
ColorChat(0, TEAM_COLOR, "^4[Quiz] ^1You are too slower, start learning math, answer is ^4(%i)", kvizResenje)
}
set_task(get_pcvar_float(kvizUcestalost), "kvizPitanje")
}
public kvizPitanje()
{
new Brojevi[7]
new Znakovi[6]
new Pitanje[64], Zagrada = 0
for ( new a = 0; a < get_pcvar_num(kvizTezina); a++ )
{
switch ( random_num(1, 3) )
{
case 1:
{
Znakovi[a] = '+'
Brojevi[a] = random_num(-get_pcvar_num(kvizPlusMinus), get_pcvar_num(kvizPlusMinus))
}
case 2:
{
Znakovi[a] = '-'
Brojevi[a] = random_num(-get_pcvar_num(kvizPlusMinus), get_pcvar_num(kvizPlusMinus))
}
case 3:
{
Znakovi[a] = '*'
}
}
}
if ( Znakovi[get_pcvar_num(kvizTezina) - 1] == '+' || Znakovi[get_pcvar_num(kvizTezina) - 1] == '-' )
Brojevi[get_pcvar_num(kvizTezina)] = random_num(-get_pcvar_num(kvizPlusMinus), get_pcvar_num(kvizPlusMinus))
for ( new a = 0; a < get_pcvar_num(kvizTezina); a++ )
{
if ( Znakovi[a] == '*' )
{
Brojevi[a] = random_num(-get_pcvar_num(kvizPuta), get_pcvar_num(kvizPuta))
Brojevi[a + 1] = random_num(-get_pcvar_num(kvizPuta), get_pcvar_num(kvizPuta))
}
Zagrada += formatex(Pitanje[Zagrada], 63 - Zagrada, " %s%d%s %c ",
( Brojevi[a] < 0 ) ? "(" : "", Brojevi[a], ( Brojevi[a] < 0 ) ? ")" : "", Znakovi[a])
}
Zagrada += formatex(Pitanje[Zagrada], 63 - Zagrada, " %s%d%s",
( Brojevi[get_pcvar_num(kvizTezina)] < 0 ) ? "(" : "",
Brojevi[get_pcvar_num(kvizTezina)],
( Brojevi[get_pcvar_num(kvizTezina)] < 0 ) ? ")" : "")
if ( Znakovi[0] == '*' )
{
Znakovi[0] = '+'
Brojevi[1] = (Brojevi[0] * Brojevi[1])
Brojevi[0] = 0
}
for ( new a = 1; a < get_pcvar_num(kvizTezina); a++ )
{
if ( Znakovi[a] == '*' )
{
Znakovi[a] = Znakovi[a - 1]
Brojevi[a + 1] = (Brojevi[a] * Brojevi[a + 1])
Brojevi[a] = 0
}
}
kvizResenje = Brojevi[0]
for ( new a = 0; a < get_pcvar_num(kvizTezina); a++ )
{
if ( Znakovi[a] == '+' )
{
kvizResenje += Brojevi[a + 1]
}
else if ( Znakovi[a] == '-' )
{
kvizResenje -= Brojevi[a + 1]
}
}
client_print(0, print_console, "^n+-+-+-+-+-+-+-+-+-+-+-+- KVIZ -+-+-+-+-+-+-+-+-+-+-+-+")
client_print(0, print_console, " Question for %i$^n", get_pcvar_num(kvizNagrada))
client_print(0, print_console, " How much is: %s^n", Pitanje)
client_print(0, print_console, " For informations of plugin type /quiz")
client_print(0, print_console, "+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+^n")
if ( get_pcvar_num(kvizMuzika) == 1 )
{
client_cmd(0, "speak %s", UrOS2)
}
if ( get_pcvar_num(kvizMuzika) == 2 )
{
client_cmd(0, "speak %s", UrOS5)
}
if ( get_pcvar_num(kvizPrikaz) == 1 )
{
ColorChat(0, TEAM_COLOR,"^4[Quiz] ^3%s", Pitanje)
}
else if ( get_pcvar_num(kvizPrikaz) == 2 )
{
for(new i;i<5;i++)
ColorChat(0, TEAM_COLOR,"^4[Quiz] ^3%s", Pitanje)
}
else if ( get_pcvar_num(kvizPrikaz) == 3 )
{
set_dhudmessage( 0, 128, 0, 0.02, 0.53, 2, 1.0, get_pcvar_float(kvizVreme))
show_dhudmessage(0, "%s", Pitanje)
}
else
{
set_dhudmessage( 85, 170, 255, 0.02, 0.53, 2, 1.0, get_pcvar_float(kvizVreme))
show_dhudmessage(0, "%s", Pitanje)
}
for ( new a = 0; a < 33; a++ )
kvizMaxPokusaji[a] = get_pcvar_num(kvizPokusaji)
kviz = false
set_task(get_pcvar_float(kvizVreme), "kvizIstekloVreme")
}
public kvizGlavniMenu( id )
{
if( !(get_user_flags( id ) & PRISTUP ) )
{
ColorChat(id, TEAM_COLOR,"^4[Quiz] ^1You dont have permission to this command!")
client_cmd(id, "spk %s", UrOS4)
set_task(0.6, "kvizPristup", id, _, _, "a", 1)
return PLUGIN_CONTINUE
}
new minuti = get_pcvar_num(kvizUcestalost)/60
new sekunde = get_pcvar_num(kvizUcestalost)-minuti*60
formatex( kvizMenu, charsmax( kvizMenu ), "\rQuiz \yv2.1 \r- Admin Menu")
new menu = menu_create( kvizMenu, "kvizAdminMenu" )
formatex( kvizMenu, charsmax( kvizMenu ), "\d Present \r[\d%i$\r]", get_pcvar_num(kvizNagrada))
menu_additem( menu, kvizMenu, "0" )
formatex( kvizMenu, charsmax( kvizMenu ), "\d Show \r[\d%i\r]", get_pcvar_num(kvizPrikaz))
menu_additem( menu, kvizMenu, "1" )
formatex( kvizMenu, charsmax( kvizMenu ), "\d Frequency \r[\d%d\d min %d sek\r]", minuti, sekunde)
menu_additem( menu, kvizMenu, "2" )
formatex( kvizMenu, charsmax( kvizMenu ), "\d Time \r[\d%i\d sek\r]", get_pcvar_num(kvizVreme))
menu_additem( menu, kvizMenu, "3" )
formatex( kvizMenu, charsmax( kvizMenu ), "\d Difficult \r[\d%i\r]", get_pcvar_num(kvizTezina))
menu_additem( menu, kvizMenu, "4" )
formatex( kvizMenu, charsmax( kvizMenu ), "\d Number of answer \r[\d%i\r]", get_pcvar_num(kvizPokusaji))
menu_additem( menu, kvizMenu, "5" )
formatex( kvizMenu, charsmax( kvizMenu ), "\d Music \r[\d%i\r]", get_pcvar_num(kvizMuzika))
menu_additem( menu, kvizMenu, "6" )
menu_display( id, menu )
return PLUGIN_CONTINUE
}
public kvizAdminMenu( id, menu, item )
{
if( item >= 0 )
{
new access, callback, actionString[ 2 ]
menu_item_getinfo( menu, item, access, actionString, charsmax( actionString ), _, _, callback )
new action = str_to_num( actionString )
{
switch( action )
{
case 0:
{
formatex( kvizMenu, charsmax( kvizMenu ), "\rQuiz \yv2.1 \r- Admin Menu")
new menu = menu_create( kvizMenu, "kvizMenu1" )
formatex( kvizMenu, charsmax( kvizMenu ), "\d Present 500$")
menu_additem( menu, kvizMenu, "0" )
formatex( kvizMenu, charsmax( kvizMenu ), "\d Present 1000$")
menu_additem( menu, kvizMenu, "1" )
formatex( kvizMenu, charsmax( kvizMenu ), "\d Present 1500$")
menu_additem( menu, kvizMenu, "2" )
formatex( kvizMenu, charsmax( kvizMenu ), "\d Present 2000$")
menu_additem( menu, kvizMenu, "3" )
formatex( kvizMenu, charsmax( kvizMenu ), "\d Present 3000$")
menu_additem( menu, kvizMenu, "4" )
formatex( kvizMenu, charsmax( kvizMenu ), "\d Present 5000$")
menu_additem( menu, kvizMenu, "5" )
menu_display( id, menu )
}
case 1:
{
formatex( kvizMenu, charsmax( kvizMenu ), "\rKviz \yv2.1 \r- Admin Menu", id )
new menu = menu_create( kvizMenu, "kvizMenu2" )
formatex( kvizMenu, charsmax( kvizMenu ), "\d To question be in chat")
menu_additem( menu, kvizMenu, "0")
formatex( kvizMenu, charsmax( kvizMenu ), "\d To question be in chat more times")
menu_additem( menu, kvizMenu, "1")
formatex( kvizMenu, charsmax( kvizMenu ), "\d To question be in hud with green color")
menu_additem( menu, kvizMenu, "2")
formatex( kvizMenu, charsmax( kvizMenu ), "\d To question be in hud with blue color")
menu_additem( menu, kvizMenu, "3")
menu_display( id, menu )
}
case 2:
{
formatex( kvizMenu, charsmax( kvizMenu ), "\rQuiz \yv2.1 \r- Admin Menu")
new menu = menu_create( kvizMenu, "kvizMenu3")
formatex( kvizMenu, charsmax( kvizMenu ), "\d To question open in every 30 seconds")
menu_additem( menu, kvizMenu, "0")
formatex( kvizMenu, charsmax( kvizMenu ), "\d To question open in every 1 minute")
menu_additem( menu, kvizMenu, "1")
formatex( kvizMenu, charsmax( kvizMenu ), "\d To question open in every 2 minutes")
menu_additem( menu, kvizMenu, "2")
formatex( kvizMenu, charsmax( kvizMenu ), "\d To question open in every 3 minutes")
menu_additem( menu, kvizMenu, "3")
formatex( kvizMenu, charsmax( kvizMenu ), "\d To question open in every 4 minutes")
menu_additem( menu, kvizMenu, "4")
formatex( kvizMenu, charsmax( kvizMenu ), "\d To question open in every 5 minutes")
menu_additem( menu, kvizMenu, "5")
formatex( kvizMenu, charsmax( kvizMenu ), "\d To question open in every 10 minutes")
menu_additem( menu, kvizMenu, "6")
menu_display( id, menu )
}
case 3:
{
formatex( kvizMenu, charsmax( kvizMenu ), "\rQuiz \yv2.1 \r- Admin Menu")
new menu = menu_create( kvizMenu, "kvizMenu4")
formatex( kvizMenu, charsmax( kvizMenu ), "\d Time for answer 15 seconds")
menu_additem( menu, kvizMenu, "0")
formatex( kvizMenu, charsmax( kvizMenu ), "\d Time for answer 20 seconds")
menu_additem( menu, kvizMenu, "1")
formatex( kvizMenu, charsmax( kvizMenu ), "\d Time for answer 30 seconds")
menu_additem( menu, kvizMenu, "2")
formatex( kvizMenu, charsmax( kvizMenu ), "\d Time for answer 40 seconds")
menu_additem( menu, kvizMenu, "3")
formatex( kvizMenu, charsmax( kvizMenu ), "\d Time for answer 50 seconds")
menu_additem( menu, kvizMenu, "4")
formatex( kvizMenu, charsmax( kvizMenu ), "\d Time for answer 60 seconds")
menu_additem( menu, kvizMenu, "5")
menu_display( id, menu )
}
case 4:
{
formatex( kvizMenu, charsmax( kvizMenu ), "\rKviz \yv2.1 \r- Admin Menu")
new menu = menu_create( kvizMenu, "kvizMenu5")
formatex( kvizMenu, charsmax( kvizMenu ), "\d Hard Question 1 \r(\dtoo much easy\r)")
menu_additem( menu, kvizMenu, "0")
formatex( kvizMenu, charsmax( kvizMenu ), "\d Hard Question 2 \r(\dmedium easy\r)")
menu_additem( menu, kvizMenu, "1")
formatex( kvizMenu, charsmax( kvizMenu ), "\d Hard Question 3 \r(\dmedium\r)")
menu_additem( menu, kvizMenu, "2")
formatex( kvizMenu, charsmax( kvizMenu ), "\d Hard Question 4 \r(\dmedium hard\r)")
menu_additem( menu, kvizMenu, "3")
formatex( kvizMenu, charsmax( kvizMenu ), "\d Hard Question 5 \r(\dhard\r)")
menu_additem( menu, kvizMenu, "4")
formatex( kvizMenu, charsmax( kvizMenu ), "\d Hard Question 6 \r(\dtoo much hard\r)")
menu_additem( menu, kvizMenu, "5")
menu_display( id, menu )
}
case 5:
{
formatex( kvizMenu, charsmax( kvizMenu ), "\rQuiz \yv2.1 \r- Admin Menu")
new menu = menu_create( kvizMenu, "kvizMenu6")
formatex( kvizMenu, charsmax( kvizMenu ), "\d One chance")
menu_additem( menu, kvizMenu, "0")
formatex( kvizMenu, charsmax( kvizMenu ), "\d Two chances")
menu_additem( menu, kvizMenu, "1")
formatex( kvizMenu, charsmax( kvizMenu ), "\d Three chances")
menu_additem( menu, kvizMenu, "2")
formatex( kvizMenu, charsmax( kvizMenu ), "\d Four chances")
menu_additem( menu, kvizMenu, "3" )
formatex( kvizMenu, charsmax( kvizMenu ), "\d Five chances")
menu_additem( menu, kvizMenu, "4")
menu_display( id, menu )
}
case 6:
{
formatex( kvizMenu, charsmax( kvizMenu ), "\rQuiz \yv2.1 \r- Admin Menu")
new menu = menu_create( kvizMenu, "kvizMenu7")
formatex( kvizMenu, charsmax( kvizMenu ), "\d Melodic 1 \r(\dshorted\r)")
menu_additem( menu, kvizMenu, "0")
formatex( kvizMenu, charsmax( kvizMenu ), "\d Melodic 2 \r(\dlonger\r)")
menu_additem( menu, kvizMenu, "1")
formatex( kvizMenu, charsmax( kvizMenu ), "\d Turn off music")
menu_additem( menu, kvizMenu, "2")
menu_display( id, menu )
}
}
}
}
menu_destroy( menu )
return PLUGIN_HANDLED
}
public kvizMenu1( id, menu, item )
{
if( item >= 0 )
{
new access, callback, actionString[ 2 ]
menu_item_getinfo( menu, item, access, actionString, charsmax( actionString ), _, _, callback )
new action = str_to_num( actionString )
{
switch( action )
{
case 0:
{
server_cmd("kviz_nagrada 500")
}
case 1:
{
server_cmd("kviz_nagrada 1000")
}
case 2:
{
server_cmd("kviz_nagrada 1500")
}
case 3:
{
server_cmd("kviz_nagrada 2000")
}
case 4:
{
server_cmd("kviz_nagrada 3000")
}
case 5:
{
server_cmd("kviz_nagrada 5000")
}
}
ColorChat(id, TEAM_COLOR,"^4[Quiz] ^1Changes are succesfuly changed")
}
}
menu_destroy( menu )
set_task(0.1, "kvizGlavniMenu", id, _, _, "a", 1)
return PLUGIN_HANDLED
}
public kvizMenu2( id, menu, item )
{
if( item >= 0 )
{
new access, callback, actionString[ 2 ]
menu_item_getinfo( menu, item, access, actionString, charsmax( actionString ), _, _, callback )
new action = str_to_num( actionString )
{
switch( action )
{
case 0:
{
server_cmd("kviz_prikaz 1")
}
case 1:
{
server_cmd("kviz_prikaz 2")
}
case 2:
{
server_cmd("kviz_prikaz 3")
}
case 3:
{
server_cmd("kviz_prikaz 4")
}
}
ColorChat(id, TEAM_COLOR,"^4[Quiz] ^1Changed are succesfuly changed")
}
}
menu_destroy( menu )
set_task(0.1, "kvizGlavniMenu", id, _, _, "a", 1)
return PLUGIN_HANDLED
}
public kvizMenu3( id, menu, item )
{
if( item >= 0 )
{
new access, callback, actionString[ 2 ]
menu_item_getinfo( menu, item, access, actionString, charsmax( actionString ), _, _, callback )
new action = str_to_num( actionString )
{
switch( action )
{
case 0:
{
server_cmd("kviz_ucestalost 30")
}
case 1:
{
server_cmd("kviz_ucestalost 60")
}
case 2:
{
server_cmd("kviz_ucestalost 120")
}
case 3:
{
server_cmd("kviz_ucestalost 180")
}
case 4:
{
server_cmd("kviz_ucestalost 240")
}
case 5:
{
server_cmd("kviz_ucestalost 300")
}
case 6:
{
server_cmd("kviz_ucestalost 600")
}
}
ColorChat(id, TEAM_COLOR,"^4[Quiz] ^1Changes are succesfuly changed")
}
}
menu_destroy( menu )
set_task(0.1, "kvizGlavniMenu", id, _, _, "a", 1)
return PLUGIN_HANDLED
}
public kvizMenu4( id, menu, item )
{
if( item >= 0 )
{
new access, callback, actionString[ 2 ]
menu_item_getinfo( menu, item, access, actionString, charsmax( actionString ), _, _, callback )
new action = str_to_num( actionString )
{
switch( action )
{
case 0:
{
server_cmd("kviz_vreme 15")
}
case 1:
{
server_cmd("kviz_vreme 20")
}
case 2:
{
server_cmd("kviz_vreme 30")
}
case 3:
{
server_cmd("kviz_vreme 40")
}
case 4:
{
server_cmd("kviz_vreme 50")
}
case 5:
{
server_cmd("kviz_vreme 60")
}
}
ColorChat(id, TEAM_COLOR,"^4[Quiz] ^1Changes are succesfuly changed")
}
}
menu_destroy( menu )
set_task(0.1, "kvizGlavniMenu", id, _, _, "a", 1)
return PLUGIN_HANDLED
}
public kvizMenu5( id, menu, item )
{
if( item >= 0 )
{
new access, callback, actionString[ 2 ]
menu_item_getinfo( menu, item, access, actionString, charsmax( actionString ), _, _, callback )
new action = str_to_num( actionString )
{
switch( action )
{
case 0:
{
server_cmd("kviz_tezina 1")
}
case 1:
{
server_cmd("kviz_tezina 2")
}
case 2:
{
server_cmd("kviz_tezina 3")
}
case 3:
{
server_cmd("kviz_tezina 4")
}
case 4:
{
server_cmd("kviz_tezina 5")
}
case 5:
{
server_cmd("kviz_tezina 6")
}
}
ColorChat(id, TEAM_COLOR,"^4[Quiz] ^1Changes are succesfuly changed")
}
}
menu_destroy( menu )
set_task(0.1, "kvizGlavniMenu", id, _, _, "a", 1)
return PLUGIN_HANDLED
}
public kvizMenu6( id, menu, item )
{
if( item >= 0 )
{
new access, callback, actionString[ 2 ]
menu_item_getinfo( menu, item, access, actionString, charsmax( actionString ), _, _, callback )
new action = str_to_num( actionString )
{
switch( action )
{
case 0:
{
server_cmd("kviz_pokusaji 1")
}
case 1:
{
server_cmd("kviz_pokusaji 2")
}
case 2:
{
server_cmd("kviz_pokusaji 3")
}
case 3:
{
server_cmd("kviz_pokusaji 4")
}
case 4:
{
server_cmd("kviz_pokusaji 5")
}
}
ColorChat(id, TEAM_COLOR,"^4[Quiz] ^1Changes are succesfuly changed")
}
}
menu_destroy( menu )
set_task(0.1, "kvizGlavniMenu", id, _, _, "a", 1)
return PLUGIN_HANDLED
}
public kvizMenu7( id, menu, item )
{
if( item >= 0 )
{
new access, callback, actionString[ 2 ]
menu_item_getinfo( menu, item, access, actionString, charsmax( actionString ), _, _, callback )
new action = str_to_num( actionString )
{
switch( action )
{
case 0:
{
server_cmd("kviz_muzika 1")
}
case 1:
{
server_cmd("kviz_muzika 2")
}
case 2:
{
server_cmd("kviz_muzika 0")
}
}
ColorChat(id, TEAM_COLOR,"^4[Quiz] ^1Changes are succesfuly changed")
}
}
menu_destroy( menu )
set_task(0.1, "kvizGlavniMenu", id, _, _, "a", 1)
return PLUGIN_HANDLED
}
public kvizPristup(id)
client_cmd(id, "spk %s", UrOS6)
public kvizReklama(id)
{
if(is_user_connected(id))
{
ColorChat(id, TEAM_COLOR, "^4[Quiz] ^1This server is using ^3%s v%s ^1for more informations ^3say /quiz", PLUGIN, VERZIJA)
set_task(600.0, "kvizReklama", id, _, _, "a", 1)
}
}
public kvizPrikaziMenu(id)
{
formatex( kvizMenu, charsmax( kvizMenu ), "\rQuiz \yv2.1 \r- Menu")
new menu = menu_create( kvizMenu, "kvizPlayerMenu")
formatex( kvizMenu, charsmax( kvizMenu ), "\d See Rank")
menu_additem( menu, kvizMenu, "0")
formatex( kvizMenu, charsmax( kvizMenu ), "\d See Top15")
menu_additem( menu, kvizMenu, "1")
formatex( kvizMenu, charsmax( kvizMenu ), "\d Information of plugin")
menu_additem( menu, kvizMenu, "2" )
if( !(get_user_flags( id ) & PRISTUP ) )
{
formatex( kvizMenu, charsmax( kvizMenu ), "\r Admin Menu")
menu_additem( menu, kvizMenu, "3")
}
else
{
formatex( kvizMenu, charsmax( kvizMenu ), "\d Admin Menu")
menu_additem( menu, kvizMenu, "3")
}
menu_display( id, menu )
}
public kvizPlayerMenu( id, menu, item )
{
if( item >= 0 )
{
new access, callback, actionString[ 2 ]
menu_item_getinfo( menu, item, access, actionString, charsmax( actionString ), _, _, callback )
new action = str_to_num( actionString )
{
switch( action )
{
case 0:
{
kvizPrikaziRank(id)
set_task(0.1, "kvizPrikaziMenu", id, _, _, "a", 1)
}
case 1:
{
kvizTop15(id)
set_task(0.1, "kvizPrikaziMenu", id, _, _, "a", 1)
}
case 2:
{
kvizMotd(id)
set_task(0.1, "kvizPrikaziMenu", id, _, _, "a", 1)
}
case 3:
{
kvizGlavniMenu(id)
}
}
}
}
menu_destroy( menu )
return PLUGIN_HANDLED
}
public kvizPrikaziRank(id)
ColorChat(id, TEAM_COLOR,"^4[Kviz] ^1Resili ste kviz ^4%d ^1puta", kvizRank[id])
public kvizMotd(id)
{
static motd[1501], len
len = format(motd, 1500,"<body bgcolor=#000000><font color=#87cefa><pre>")
len += format(motd[len], 1500-len,"<center><img src=^"http://img62.**************/img62/2709/kvizzz.gif^"></center></img>")
len += format(motd[len], 1500-len,"<center><h4><font color=^"red^"><B>%s - Version %s</B> </font></h4></center>", PLUGIN, VERZIJA)
len += format(motd[len], 1500-len,"<center><h4><font color=^"blue^"><B>Plugin has created by %s</B> </font></h4></center>", AUTOR)
len += format(motd[len], 1500-len,"<center><h4><font color=^"white^"><B>Kontakt e-mail %s</B> </font></h4></center>", KONTAKT)
len += format(motd[len], 1500-len,"<center><font color=^"white^"> </font></center>")
len += format(motd[len], 1500-len,"<center><h4><font color=^"red^"><B>-----------------------</B> </font></h4></center>")
len += format(motd[len], 1500-len,"<center><font color=^"white^">For all questions and answers</font></center>")
len += format(motd[len], 1500-len,"<center><font color=^"white^">contact e mail</font></center>")
len += format(motd[len], 1500-len,"<center><h4><font color=^"red^"><B>-----------------------</B> </font></h4></center>")
show_motd(id, motd, "Quiz - Informations")
return 0
}
public kvizUcitajRank( id )
{
new valut = nvault_open("Kviz_rank")
new authid[33]
new vaultkey[64], vaultdata[64]
get_user_authid(id, authid, 32)
format(vaultkey, 63, "_KVIZ_RANK_%s_BODOVI_", authid)
nvault_get(valut, vaultkey, vaultdata, 63)
nvault_close(valut)
return str_to_num(vaultdata)
}
public kvizSacuvajRank(id,Bodovi)
{
new valut = nvault_open("Kviz_rank")
if(valut == INVALID_HANDLE)
set_fail_state("Error nValut Kviz_rank (invalid handle)")
new name[33], authid[32]
new vaultkey[64], vaultdata[64]
get_user_authid(id, authid, 31)
get_user_name(id, name, 32)
format(vaultkey, 63, "_KVIZ_RANK_%s_BODOVI_", authid)
format(vaultdata, 63, "%d_NICK_^"%s^"^n", Bodovi, name)
nvault_set(valut, vaultkey, vaultdata)
nvault_close(valut)
}
public kvizTop15(id)
{
new i, count
static sort[33][2], maxPlayers
if(!maxPlayers) maxPlayers = get_maxplayers()
for(i=1;i<=maxPlayers;i++)
{
sort[count][0] = i
sort[count][1] = kvizRank[i]
count++
}
SortCustom2D(sort,count,"kvizStats")
new buffer[2048]
new line[256]
new len = format( buffer, 2047, "<body bgcolor=#000000 style=^"color:#ffffff^"><pre><Center><img src=^"http://img62.**************/img62/2709/kvizzz.gif^"><table width=100%% cellpadding=1 cellspacing=1 border=0>")
len += format( buffer[len], 2047-len, "<tr style=^"color:#8FABFF^"><th width=5%%>#<th width=60%%>Nick<th width=35%%>Bodovi")
new players[32], num
get_players(players, num)
new b = clamp(count,0,15)
new name[42], player
for(new a = 0; a < b; a++)
{
player = sort[a][0]
get_user_name(player, name, 41)
while (containi(name, "<") != -1)
replace(name, 63, "<", "<")
while (containi(name, ">") != -1)
replace(name, 63, ">", ">")
format(line, 255, "<tr %s><td>%d<td style=^"color:%s^">%s<td>%d", ((a%2)==0) ? " bgcolor=#333333" : " bgcolor=#262626", a+1,((a%2)==0) ? "#9CFF7A" : "red", name, sort[a][1])
len += format( buffer[len], 2047-len, line )
}
format(line, 255, "</table><font color=^"red^">(Statistic of online players)</body></pre>" )
len += format( buffer[len], 2047-len, line )
show_motd(id, buffer, "Kviz - Top 15")
return PLUGIN_CONTINUE
}
public kvizStats(elem1[],elem2[])
{
if(elem1[1] > elem2[1]) return -1
else if(elem1[1] < elem2[1]) return 1
return 0
}