Member
|
08-14-2013
, 03:05
[req] donate time edit
|
#1
|
HEY GUYS.. I NEED A LITTLE HELP... CURRENT I M USING THIS PLUGINES FOR PLAYED TIME
PHP Code:
#include <amxmodx>
#include <amxmisc>
#include <sqlx>
#define PLUGIN "Played Time"
#define VERSION "0.1"
#define AUTHOR "authour-unknown"
#define host "127.0.0.1"
#define user "DB USER"
#define pass "DB PASS"
#define db "time //DB NAME"
new Handle:sql, g_query[512]
new PlayedTime[33]
new showpt;
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR );
register_clcmd("say", "handle_say");
register_concmd("amx_playedtime", "admin_showptime", ADMIN_RCON," <#Player Name> - Details about playedtime.");
showpt = register_cvar("amx_pt_mod","1");
}
public plugin_cfg(){
sql = SQL_MakeDbTuple(host,user,pass,db)
formatex(g_query,511,"CREATE TABLE IF NOT EXISTS `played_time` (name VARCHAR(32), playedtime INT, date TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP)")
SQL_ThreadQuery(sql,"query",g_query)
}
public handle_say(id)
{
static said[12]
read_argv(1, said, 11)
if(equali(said, "/mytime"))
{
static ctime[64], timep;
timep = get_user_time(id, 1) / 60;
get_time("%H:%M:%S", ctime, 63);
switch(get_pcvar_num(showpt))
{
case 0: return PLUGIN_HANDLED;
case 1 :
{
client_print(id, print_chat, "[Played-Time] You have been playing on the server for: %d minute%s.", timep, timep == 1 ? "" : "s");
client_print(id, print_chat, "[Played-Time] Your total played time on the server: %d minute%s.", timep+PlayedTime[id], timep+PlayedTime[id] == 1 ? "" : "s");
}
case 2 :
{
set_hudmessage(255, 50, 50, 0.34, 0.50, 0, 6.0, 4.0, 0.1, 0.2, -1);
show_hudmessage(id, "[Elite-Gaming] You have been playing on the server for: %d minute%s.^n[AMXX]Current time: %s", timep, timep == 1 ? "" : "s", ctime);
}
}
return PLUGIN_HANDLED;
}
else if(equal(said,"/top15_time")){
new data[1];data[0]=id
formatex(g_query,511,"SELECT * FROM played_time ORDER BY playedtime DESC LIMIT 15")
SQL_ThreadQuery(sql,"show_top15",g_query,data,1)
}
return PLUGIN_CONTINUE;
}
public admin_showptime(id,level,cid)
{
if(!cmd_access(id, level, cid, 2))
return PLUGIN_HANDLED;
static arg[32];
read_argv(1, arg, 31);
new player = cmd_target(id, arg, 2);
if(!player)
return PLUGIN_HANDLED;
static name[32];
get_user_name(player, name, 31);
static timep, ctime[64];
timep = get_user_time(player, 1) / 60;
get_time("%H:%M:%S", ctime, 63);
console_print(id, "-----------------------(#PlayedTime#)-----------------------");
console_print(id, "[Played-Time] %s have been playing on the server for %d minute%s.",name, timep, timep == 1 ? "" : "s");
console_print(id, "[Played-Time] %s's total played time on the server %d minute%s.",name, timep+PlayedTime[player], timep == 1 ? "" : "s"); // new
console_print(id, "-----------------------------------------------------------------");
return PLUGIN_HANDLED;
}
public client_disconnect(id){
new name[32]
get_user_name(id,name,31)
replace_all(name,32,"'","")
replace_all(name,32,"^"","")
PlayedTime[id] = get_playedtime(id)
formatex(g_query,511,"UPDATE played_time SET playedtime='%d' WHERE name='%s'",PlayedTime[id],name)
SQL_ThreadQuery(sql,"query",g_query)
PlayedTime[id] = 0
}
public client_putinserver(id){
PlayedTime[id] = get_playedtime(id)
log_amx("--> Got %d",PlayedTime[id])
}
public plugin_end(){
SQL_FreeHandle(sql)
}
get_playedtime(id){
new err,error[128]
new Handle:connect = SQL_Connect(sql,err,error,127)
if(err){
log_amx("--> MySQL Connection Failed - [%d][%s]",err,error)
set_fail_state("mysql connection failed")
}
new name[32],Handle:query,pt
get_user_name(id,name,31)
replace_all(name,32,"'","")
replace_all(name,32,"^"","")
query = SQL_PrepareQuery(connect,"SELECT playedtime FROM played_time WHERE name='%s'",name)
SQL_Execute(query)
if(!SQL_MoreResults(query)){
formatex(g_query,511,"INSERT INTO played_time (name,playedtime) VALUES('%s','%d')",name,get_user_time(id,1)/60)
SQL_ThreadQuery(sql,"query",g_query)
pt = (get_user_time(id,1)/60)
}else{
pt = SQL_ReadResult(query,0)+(get_user_time(id,1)/60)
}
log_amx("--> Get %d minutes for %s",pt,name)
SQL_FreeHandle(connect)
SQL_FreeHandle(query)
return pt
}
public show_top15(FailState, Handle:Query, Error[], Errcode,Data[], DataSize){
static name[32]
new id=Data[0]
new good,motd[1024],len,place
if(!SQL_MoreResults(Query)){
client_print(id,print_chat,"[PT] No entryes")
return PLUGIN_HANDLED
}
len = format(motd, 1023,"<body bgcolor=#000000><font color=#FFB000><pre>")
len += format(motd[len], 1023-len,"%s %-22.22s %3s^n", "#", "Name", "Time")
while(SQL_MoreResults(Query)){
place++
SQL_ReadResult(Query,0,name, 32)
good = SQL_ReadResult(Query,1)
replace_all(name, 32,"<","")
replace_all(name, 32,">","")
len += format(motd[len], 1023-len,"%d %-22.22s %d minute%s^n",place,name,good,good == 1 ? "" : "s")
SQL_NextRow(Query)
}
len += format(motd[len], 1023-len,"</body></font></pre>")
show_motd(id, motd,"Top 15 Players By Time")
return PLUGIN_CONTINUE
}
public query(FailState, Handle:Query, Error[], Errcode){
}
AND I NEED TO ADD DONATE TIME IN THT PLUGIN... I FOUND THIS BUT I DONT HAVE TO ADD THIS.. CAN SOME1 HELP ME WITH IT...
PHP Code:
new gTime[ 33 ]; // Variable that holds total time of player
new g_tempid; // Played Id of target
public plugin_init()
{
register_clcmd( "say /donate", "CmdDonate" ); //Opens the menu
register_clcmd( "pt_donate", "CmdDonateTime" );
}
public CmdDonateTime( id, level, cid )
{
new amount[ 21 ];
read_argv( 1, amount, charsmax( amount ) );
new szSenderName[ 32 ], szReceiverName[ 32 ];
get_user_name( id, szSenderName, charsmax( szSenderName ) );
get_user_name( g_tempid, szReceiverName, charsmax( szReceiverName ) );
new timenum = str_to_num( amount );
if( timenum > ( gTime[ id ] / 60 ) )
{
client_print( id, print_chat, "* You don't have enough time to give." );
return PLUGIN_HANDLED;
}
gTime[ g_tempid ] += timenum * 60;
gTime[ id ] -= timenum * 60;
client_print( g_tempid, print_chat, "* You received %i minutes from %s", timenum, szSenderName );
client_print( id, print_chat, "* You gave %i minutes to %s leaving you %i minutes", timenum, szReceiverName, ( gTime[ id ] / 60 ) );
Save( id )
Save( g_tempid )
return PLUGIN_CONTINUE;
}
public CmdDonate( id )
{
new frm[ 125 ];
format( frm, charsmax( frm ), "\yDonate time to player ( Your time in minutes: \w%i )", ( gTime[ id ] / 60 ) );
new menu = menu_create( frm, "menu_handler" );
new players[ 32 ], pnum, tempid;
new szName[ 32 ], szTempid[ 10 ];
get_players( players, pnum );
for( new i; i < pnum; i++ )
{
tempid = players[ i ];
get_user_name( tempid, szName, charsmax( szName ) );
num_to_str( tempid, szTempid, charsmax( szTempid ) );
menu_additem( menu, szName, szTempid, 0 );
}
menu_display( id, menu, 0 );
}
public menu_handler( id, menu, item )
{
if( item == MENU_EXIT )
{
menu_destroy( menu );
return PLUGIN_HANDLED;
}
new data[ 6 ], szName[ 64 ];
new access, callback;
menu_item_getinfo( menu, item, access, data, charsmax( data ), szName, charsmax( szName ), callback );
g_tempid = str_to_num( data );
new szTargetName[ 32 ];
get_user_name( g_tempid, szTargetName, charsmax( szTargetName ) );
client_print( id, print_chat, "* Write amount you want to donate to %s", szTargetName );
client_cmd( id, "messagemode pt_donate" );
menu_destroy( menu );
return PLUGIN_HANDLED;
}
|
|