Player TimeTrack

Pluginuri pentru modul AmxModX.

Moderators: Moderatori ajutatori, Moderatori, Echipa eXtreamCS.com

The Kalu
Fost administrator
Fost administrator
Posts: 13709
Joined: 09 Oct 2010, 12:39
Detinator Steam: Da
CS Status: In grajd!
SteamID: kalulord
Reputatie: Fost Administrator
Fost membru Club eXtreamCS (6 luni)
Nume anterior: Terra
Location: Romania, Ploiesti
Has thanked: 328 times
Been thanked: 646 times
Contact:

28 Feb 2015, 11:18

Lux0R^ wrote:practic charsmax e un macro, care este defapt sizeof -1

in fine, dupa mine un plugin trebuie sa aibe eficienta maxima, nu doar sa ruleze corect.
Eu iti multumesc ca incerci sa imi explici cum sta treaba, dar iti dai seama ca sunt la inceput de drum si ma multumesc cu ceea ce am facut pana acuma.Stai linistit ca o sa corectez si cu ce mi-ai dat tu.
Image
RoyalServer
User avatar
Truth
Membru, skill +1
Membru, skill +1
Posts: 215
Joined: 26 Jun 2014, 19:50
Detinator Steam: Da
CS Status: I learn ...
SteamID: Private
Fond eXtream: 0
Location: Buzau
Has thanked: 1 time
Been thanked: 9 times

28 Feb 2015, 13:31

Lux0R^ wrote:practic charsmax e un macro, care este defapt sizeof -1

in fine, dupa mine un plugin trebuie sa aibe eficienta maxima, nu doar sa ruleze corect.
E doar de fațadă....
Nu contează ce folosești.. Eu de exemplu de multe ori trec pozițiile decât să pun sizeof -1 sau charsmax.
De ce ?
Deoarece acestea înți numără pozițiile variabilei și îți scade o poziție, dar în loc să folosești acestea poți să scrii direct rezultatul. E acelaș lucru...

Felicitări pentru plugin e foarte interesant :)
Image

Pluginuri Publicate:

- Furien XP System #1 | #2 | #3 | #4 | #5 | #6
Lux0R^
Scripter eXtreamCS
Scripter eXtreamCS
Posts: 1222
Joined: 13 Jul 2013, 16:31
Detinator Steam: Da
Reputatie: Scripter eXtreamCS
Moderator ajutator
Has thanked: 15 times
Been thanked: 12 times

28 Feb 2015, 14:58

Truth wrote:
Lux0R^ wrote:practic charsmax e un macro, care este defapt sizeof -1

in fine, dupa mine un plugin trebuie sa aibe eficienta maxima, nu doar sa ruleze corect.
E doar de fațadă....
Nu contează ce folosești.. Eu de exemplu de multe ori trec pozițiile decât să pun sizeof -1 sau charsmax.
De ce ?
Deoarece acestea înți numără pozițiile variabilei și îți scade o poziție, dar în loc să folosești acestea poți să scrii direct rezultatul. E acelaș lucru...

Felicitări pentru plugin e foarte interesant :)
deacord cu tine, dar in timp poate modifici ceva la marimea tablourilor, si acel sizeof te ajuta mult in unele cazuri:).
eu stiu ca am patit :))
Pauza pana in iulie... licenta ^^

Fara pm-uri pentru pluginuri de zm/furien + tot ce tine de vip.

Codul Scripterului: scripting/codul-scripterului-t362300.html#p2754224
User avatar
SimeriaIonut
Fost moderator
Fost moderator
Posts: 261
Joined: 17 Apr 2010, 15:28
Detinator Steam: Da
Detinator server CS: XMAS.EXTREAMCS.COM
SteamID: _lvl4nticore_
Reputatie: Owner xmas.extreamcs.com
Fost moderator ajutator
Has thanked: 14 times
Been thanked: 23 times
Contact:

28 Feb 2015, 16:56

Am incercat pluginul si nu imi porneste serverul. Pur si simplu dupa ce adaug linia PlayedTime.amxx in plugins serverul nu porneste cu nicio eroare in loguri.

Nu sunt de azi in domeniu, stiu in mare masura problemele si rezolvarile cu aproximativ orice eroare ultimele builduri hlds, si tot nu inteleg de ce.

AmxModx 1.8.2
MetaMod v1.21-am

Modulul mysql activat, niciun alt plugin care necesita mysql existent pe server, deci nu poate fi un conflict.
XMAS.EXTREAMCS.COM #Official Christmas Mod 2024 [❄️🎅🎄🎁]
The Kalu
Fost administrator
Fost administrator
Posts: 13709
Joined: 09 Oct 2010, 12:39
Detinator Steam: Da
CS Status: In grajd!
SteamID: kalulord
Reputatie: Fost Administrator
Fost membru Club eXtreamCS (6 luni)
Nume anterior: Terra
Location: Romania, Ploiesti
Has thanked: 328 times
Been thanked: 646 times
Contact:

28 Feb 2015, 17:01

SimeriaIonut wrote:Am incercat pluginul si nu imi porneste serverul. Pur si simplu dupa ce adaug linia PlayedTime.amxx in plugins serverul nu porneste cu nicio eroare in loguri.

Nu sunt de azi in domeniu, stiu in mare masura problemele si rezolvarile cu aproximativ orice eroare ultimele builduri hlds, si tot nu inteleg de ce.

AmxModx 1.8.2
MetaMod v1.21-am

Modulul mysql activat, niciun alt plugin care necesita mysql existent pe server, deci nu poate fi un conflict.
Ai folosit acest sma?
sursa noua | Afiseaza codul
/* Plugin generated by AMXX-Studio */
//My plugin never fail, if al else fail ROD OF AGES!

#include <amxmodx>
#include <sqlx>

#define PLUGIN "New Plug-In"
#define VERSION "0.Ox"
#define AUTHOR "Hades Ownage"

#pragma tabsize 0

new const SQL_TABLE[ ] = "player_time";
new g_pcvarHost;
new g_pcvaruUser;
new g_pcvarPass;
new g_pcvarDB;

new steamid[32]
new playedTime[32]
new string[32]

new Handle:g_SqlTuple;
new g_Error[ 512 ];

public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR)
	
	g_pcvarHost = register_cvar( "furien_sql_host", "127.0.0.1" )
	g_pcvaruUser = register_cvar( "furien_sql_user", "root" )
	g_pcvarPass = register_cvar( "furien_sql_pass", "" )
	g_pcvarDB = register_cvar( "furien_sql_db", "cstrike" )

	//client commands
	register_clcmd("say /timetrack", "timeTrack");
	
	set_task( 0.1, "SqlInit" )
	//set_task(15.0, "PlayerAnnounce",0, _, _, "b") //later use
}

public SqlInit( )
{
	new szHost[ 32 ]
	new szUser[ 32 ]
	new szPass[ 32 ]
	new szDB[ 32 ]
	
	get_pcvar_string( g_pcvarHost, szHost, charsmax( szHost ) )
	get_pcvar_string( g_pcvaruUser, szUser, charsmax( szUser ) )
	get_pcvar_string( g_pcvarPass, szPass, charsmax( szPass ) )
	get_pcvar_string( g_pcvarDB, szDB, charsmax( szDB ) )
	
	g_SqlTuple = SQL_MakeDbTuple( szHost, szUser, szPass, szDB )
	
	new ErrorCode
	new Handle:SqlConnection = SQL_Connect( g_SqlTuple, ErrorCode, g_Error, charsmax( g_Error ) )
	
	if( SqlConnection == Empty_Handle )
		set_fail_state( g_Error )
	
	new Handle:Queries
	Queries = SQL_PrepareQuery( SqlConnection, "CREATE TABLE IF NOT EXISTS %s (id INT(11) PRIMARY KEY, steamid varchar(32), playedTime INT(11)) ", SQL_TABLE )
	
	if( !SQL_Execute( Queries ) )
	{
		SQL_QueryError( Queries, g_Error, charsmax( g_Error ) )
		set_fail_state( g_Error )
	}
	
	SQL_FreeHandle( Queries )
	SQL_FreeHandle( SqlConnection ) 
}

public plugin_end ( ) {
	
	SQL_FreeHandle ( g_SqlTuple )
	
}

public SaveData(id)
{

	static playTime
    playTime = get_user_time(id, 1) / 60;
    new name[32]
    get_user_name(id, name, 32)

	new szTemp[ 512 ]
	formatex( szTemp, charsmax( szTemp ), "UPDATE `%s` SET `playedTime` = `playedTime` + '%d' WHERE `%s`.`steamid` = '%s';", SQL_TABLE, playTime, SQL_TABLE,name)
	
	SQL_ThreadQuery( g_SqlTuple, "IgnoreHandle", szTemp )
}

public LoadData(id)
{
	static Data[1]; Data[0] = id

	new name[32]
    get_user_name(id, name, 31)
	
	new szTemp[ 512 ]
	formatex( szTemp, charsmax( szTemp ), "SELECT `steamid`,`playedTime` FROM %s WHERE (`%s`.`steamid` = '%s');", SQL_TABLE, SQL_TABLE, name)
	
	SQL_ThreadQuery( g_SqlTuple, "RegisterClient", szTemp, Data, 1 )
}


public RegisterClient( FailState, Handle:Query, Error[ ], Errcode, Data[ ], DataSize )
{
	if( SQL_IsFail( FailState, Errcode, Error ) )
		return PLUGIN_HANDLED_MAIN
	
	static id; id = Data[0]
	
	if( SQL_NumResults( Query ) < 1 )
	{

		static playTime
    	playTime = get_user_time(id, 1) / 60;
    	new name[32]
        get_user_name(id, name, 31)


		new szTemp[ 512 ]
		formatex( szTemp, charsmax( szTemp ), "INSERT INTO %s (steamid, playedTime) VALUES('%s', '0');", SQL_TABLE, name, playTime)
		
		SQL_ThreadQuery( g_SqlTuple, "IgnoreHandle", szTemp )

	}
	
	SQL_FreeHandle(Query)
	return PLUGIN_CONTINUE
}

public timeTrack(id){

	new name[32]
    get_user_name(id, name, 31)

	static Data[1]; Data[0] = id
    
    new szTemp[512]
    formatex( szTemp, charsmax( szTemp ), "SELECT `steamid`,`playedTime` FROM %s WHERE (`%s`.`steamid` = '%s');", SQL_TABLE, SQL_TABLE, name)
    SQL_ThreadQuery(g_SqlTuple,"Sql_PlayedTime",szTemp,Data,1)
        
}

public Sql_PlayedTime(FailState,Handle:Query,Error[],Errcode,Data[],DataSize)
{
    if(FailState == TQUERY_CONNECT_FAILED)
            log_amx("Load - Could not connect to SQL database.  [%d] %s", Errcode, Error)
    else if(FailState == TQUERY_QUERY_FAILED)
            log_amx("Load Query failed. [%d] %s", Errcode, Error)

	static id; id = Data[0]

	new name[32]
    get_user_name(id, name, 31)

    if( SQL_NumResults( Query ) > 0 )
	{

		steamid[id] = SQL_ReadResult(Query, 0, string, 31)
		playedTime[id] = SQL_ReadResult(Query, 1)
   

    client_print(id,print_chat,"[AMXX] You are playing for about %d minutes.", playedTime[id])

	}
    
    return PLUGIN_HANDLED
} 

public client_putinserver( id ){
	LoadData(id)	
}

public client_disconnect(id){

	SaveData(id)

}


public IgnoreHandle( FailState, Handle:Query, Error[ ], Errcode, Data[ ], DataSize )
	SQL_FreeHandle( Query )

SQL_IsFail( const FailState, const Errcode, const Error[ ] ) {
	if( FailState == TQUERY_CONNECT_FAILED )
	{
		log_amx( "[Error] Could not connect to SQL database: %s", Error )
		return true
	}
	
	else if( FailState == TQUERY_QUERY_FAILED )
	{
		log_amx( "[Error] Query failed: %s", Error )
		return true
	}
	
	else if( Errcode )
	{
		log_amx( "[Error] Error on query: %s", Error )
		return true
	}
	
	return false
}
Image
User avatar
SimeriaIonut
Fost moderator
Fost moderator
Posts: 261
Joined: 17 Apr 2010, 15:28
Detinator Steam: Da
Detinator server CS: XMAS.EXTREAMCS.COM
SteamID: _lvl4nticore_
Reputatie: Owner xmas.extreamcs.com
Fost moderator ajutator
Has thanked: 14 times
Been thanked: 23 times
Contact:

28 Feb 2015, 19:39

Probabil aia era problema, acum pluginul functioneaza.

Eu sunt front-end developer in copenhaga, daca vrei sa imbunatatim sistemul da-mi un PM. (HTML5, CSS3, Angular, Grunt, SASS, Bootstrap, Github si cunostinte in back-end)

P.S. Ma bucura faptul ca ai folosit Bootstrap 3.3.2

Edit: Precizeaza te rog in primul post necesitatea setarii AUTO INCREMENT a field-ului id. Multi se vor trezi ca vor avea un singur rezultat din query.
XMAS.EXTREAMCS.COM #Official Christmas Mod 2024 [❄️🎅🎄🎁]
User avatar
sharkstar
Membru, skill +4
Membru, skill +4
Posts: 1735
Joined: 24 Dec 2012, 15:51
Detinator Steam: Da
CS Status: Rupetot
SteamID: privat
Location: Bucuresti
Has thanked: 70 times
Been thanked: 42 times

01 Mar 2015, 19:39

Linia 32:
include("connect.php");

Mai bine pune require...
I've never been more normal than I am now.
My tumblr
MicuXx
Membru, skill 0
Membru, skill 0
Posts: 75
Joined: 19 Dec 2011, 07:01
Detinator Steam: Da
Detinator server CS: Nu
SteamID: coldr1987
Location: Vaslui
Contact:

05 Mar 2015, 14:59

Plugin-ul functioneaza perfect. Felicitari!
The Kalu
Fost administrator
Fost administrator
Posts: 13709
Joined: 09 Oct 2010, 12:39
Detinator Steam: Da
CS Status: In grajd!
SteamID: kalulord
Reputatie: Fost Administrator
Fost membru Club eXtreamCS (6 luni)
Nume anterior: Terra
Location: Romania, Ploiesti
Has thanked: 328 times
Been thanked: 646 times
Contact:

05 Mar 2015, 16:20

MicuXx wrote:Plugin-ul functioneaza perfect. Felicitari!
Multumesc MicuXx. :gusta
Image
MariusZ20
Membru, skill +1
Membru, skill +1
Posts: 131
Joined: 07 Feb 2015, 01:12
Detinator Steam: Nu
CS Status: Citesc forumul eXtreamCS.com...!
Fond eXtream: 0
Contact:

05 Mar 2015, 22:23

Eu nu stiu sa il fac functional .. Cine ma poate ajuta ?
Image
User avatar
Carnacior
Membrul anului 2016
Membrul anului 2016
Posts: 1762
Joined: 23 Jun 2013, 14:08
Detinator Steam: Da
CS Status: I eat more pussy than cervical cancer
Detinator server CS: jb.b-zone.ro
SteamID: -
Reputatie: Fost Scripter eXtreamCS
Membrul anului 2016
Membru Club eXtreamCS (1 iul )
Location: Targu Mures
Has thanked: 5 times
Been thanked: 13 times
Contact:

08 Mar 2015, 17:59

pluginul e cam prost facut
adica, ***, n-am nimic cu tine, dar ar fi bine sa postezi public doar ce e facut cum trebuie

si-n legatura cu
M0hikan wrote:
Lux0R^ wrote:new name[32]
get_user_name(id, name, 32)

aici ai facut o greseala groaznica, foloseste charsmax()...

get_user_name(id, name, charsmax(name));
Pot sa folosesc si sizeof, ideea este ca pluginul ruleaza perfect normal.
e fix acelasi lucru daca folosesti sizeof, charsmax, sau numar definit
dar fa-l 31, pentru ca pe ultima celula a vectorului trebuie sa fie neaparat mereu null
daca intra un jucator cu 32 de caractere in nume va da index out of bounds

corect e
new name[32]
get_user_name(id, name, 31)
Ai nevoie de o protectie pentru server? R4GE Server Guard
Cel mai avansat si folosit plugin de protectie romanesc public! Nu ma crezi? VERIFICA


http://www.facebook.com/xyz.aron
Follow me for random bullshit and possibly interesting updates
Skype @ xyz_aron


Image
The Kalu
Fost administrator
Fost administrator
Posts: 13709
Joined: 09 Oct 2010, 12:39
Detinator Steam: Da
CS Status: In grajd!
SteamID: kalulord
Reputatie: Fost Administrator
Fost membru Club eXtreamCS (6 luni)
Nume anterior: Terra
Location: Romania, Ploiesti
Has thanked: 328 times
Been thanked: 646 times
Contact:

08 Mar 2015, 18:21

Poti sa il verifici Carnacior sa vezi ca functioneaza cum trebuie, da m-am folosit de sfaturi sa il mai `slefuiesc` putin si este ok acuma. :P
Image
Post Reply

Return to “AmxModX”

  • Information
  • Who is online

    Users browsing this forum: No registered users and 5 guests