Player TimeTrack

Pluginuri pentru modul AmxModX.

Moderators: Moderatori ajutatori, Moderatori, Echipa eXtreamCS.com

The Kalu
Fost administrator
Fost administrator
Posts: 13712
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:

25 Feb 2015, 15:30

Multumiri lui HADES OWNAGE pentru explicatie la sqlx.
Descriere: Stocheaza intr-o baza de date informatii cum ar fii timpul jucat pe server si numele, acestea sunt afisate intr-o pagina web.

Descarcare:
Fisiere Web: http://www.girlshare.ro/34493871.5
Fisier .sma: http://www.girlshare.ro/34504009.1

Va rog sa descarcati fisierul din nou deoarece am incarcat unul nefunctional din greseala.

Cheia primara "id" trebuie sa fie pe auto increment din sql.

Nume: Player TimeTrack
Versiune: 1.x
Link oficial:

Instalare:
1. Fisierul PlayedTime.sma il puneti in addons/amxmodx/scripting
2. Fisierul PlayedTime.amxx il puneti in addons/amxmodx/plugins
3. Intrati in fisierul addons/amxmodx/configs/plugins.ini si adaugati la urma:

Code: Select all

PlayedTime.amxx
4. Schimbati din connect.php datele cu datele voastre de la mysql.
5. La linia 136 se afla un array cu admini, puneti exact numele adminului/adminilor.

Code: Select all

$admins = array('M0hikan', 'KingOfSocks');

Cvar-uri Nu are

Comenzi administrative Nu are

Comenzi publice Nu are

Module necesare Nu are

Imagini:
Image
Image
RoyalServer
User avatar
Edi.
eXtream Mod
eXtream Mod
Posts: 5392
Joined: 08 Jul 2009, 08:38
Detinator Steam: Da
SteamID: Hozzakwaz
Reputatie: Nume anterior: Eddy ;X
eXtream Mod
Fost Intermediar
Location: Botoşani / Iaşi
Has thanked: 109 times
Been thanked: 247 times
Contact:

25 Feb 2015, 15:33

Deci nu cred, multumesc frumos. In seara asta voi incerca si eu acest plugin. Mersi mohikane. :D
Image
The Kalu
Fost administrator
Fost administrator
Posts: 13712
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:

25 Feb 2015, 15:34

Am uitat sa specific ca cheia primara "id" trebuie sa fie pe auto increment din sql.
Image
User avatar
YONTU
Scripter eXtreamCS
Scripter eXtreamCS
Posts: 2466
Joined: 10 May 2013, 14:25
Detinator Steam: Nu
CS Status: Everyone is looking at ur shoes
Reputatie: Moderator ajutator
Fost scripter eXtreamCS
Location: Gura Humorului
Has thanked: 256 times
Been thanked: 288 times
Contact:

25 Feb 2015, 17:40

Foarte interesant! :)
M-am uitat prin sursa. Sunt unele chestii care nu ti-au iesit cum trebuie!

Cat timp setezi task-uri in init, asigura-te ca le-ai setat cum trebuie.

Code: Select all

	set_task(4.0, "PlayerAnnounce")
La 4 secunde de la deschiderea serverului, pluginul iti afiseaza un mesaj. Nici task-ul nu l-ai setat cum trebuie.

Code: Select all

public PlayerAnnounce(id){
	client_print(id,print_chat,"Welcome %s, you have playing for %d minutes.",steamid[id],playTime[id])
}
Cat timp nu ai setat parametrii in task, nu trebuie sa pui si in public. (Codul de mai sus este gresit, o sa-ti dea erori in consola)
Uite asa este mai bine:
In init setezi task-ul ca s ti-l afiseze mereu la un anumit interval.

Code: Select all

	set_task(300.0, "PlayerAnnounce", _, _, "b") // odata la 5 min
Publicul tre sa arate astfel:

Code: Select all

public PlayerAnnounce(){

	new iPlayer[32], Num, player;
	get_players(iPlayer, Num, "c");

	for(new i = 0; i < Num; i++) {

		player = iPlayer[i];
		client_print(id,print_chat,"Welcome %s, you have playing for %d minutes.",steamid[id],playTime[id])
	}
}
Cand faci un plugin, asigura-te ca l-ai asezat cum trebe in pagina (exista ctrl + i in amxx studio).

Si aici ai gresit:

Code: Select all

public client_putinserver( id ){
	LoadData(id)	

	new uName[32]
	get_user_name(id, uName, 31);

	if(is_user_alive( id )){
		client_print(id, print_chat, "[AMXX] %s welcome.", uName, pTime)
	}
}

Code: Select all

	if(is_user_alive( id )){
		client_print(id, print_chat, "[AMXX] %s welcome", uName, pTime)
	}
->

Code: Select all

	if(is_user_alive( id )){
		client_print(id, print_chat, "[AMXX] %s welcome. You have playing %d min.", uName, playTime[id])
	}
Felicitari pentru plugin!
„Peste douăzeci de ani vei fi dezamăgit din cauza lucrurilor pe care nu le-ai făcut, nu din cauza celor pe care le-ai făcut.” - Mark Twain
„Asa e si in viata, hotii castiga, prostii care invata pierd.” - Mihai Nemeș


Bio.LeagueCs.Ro - Biohazard v4.4 Xmas Edition
discord: IonutC#5114

Experinta in: Java/Spring boot/Angular/C/C++/C#/Javascript/Python/HTML/CSS/Pawn/SQL
Ai nevoie de ajutorul meu? Ma poti gasi doar la adresa de discord de mai sus.
The Kalu
Fost administrator
Fost administrator
Posts: 13712
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:

25 Feb 2015, 17:50

Asta am primit de la Hades si restul am facut eu cum m-am priceput, iti dai seama ca sunt la inceput.Multumesc de feedback YONTU :P
De la Hades, sqlx | Afiseaza codul
#include <amxmodx>
#include <sqlx>

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

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

new Handle:g_SqlTuple;
new g_Error[ 512 ];

public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR)
	
	g_pcvarHost = register_cvar( "furien_sql_host", "" )
	g_pcvaruUser = register_cvar( "furien_sql_user", "" )
	g_pcvarPass = register_cvar( "furien_sql_pass", "" )
	g_pcvarDB = register_cvar( "furien_sql_db", "" )
	
	set_task( 0.1, "SqlInit" )
}

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 ( nick VARCHAR( 32 ) PRIMARY KEY, level INT( 11 ), xp INT( 11 ), strenghtpower INT( 11 ), agilitypower INT( 11 ), healthpower INT( 11 ), levitationpower INT( 11 ), useralreadyhavepower INT( 11 ), ultimatepower INT( 11 ), coins 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)
{
	new szTemp[ 512 ]
	format( szTemp, charsmax( szTemp ), "UPDATE `%s` SET `level` = '%d' , `xp` = '%d' , `strenghtpower` = '%d' , `agilitypower` = '%d' , `healthpower` = '%d' , `levitationpower` =  '%d' , `useralreadyhavepower` =  '%d' , `ultimatepower` =  '%d' , `coins` =  '%d'  WHERE `%s`.`nick` = '%s';", SQL_TABLE,  Level [ id ], eXP[id], StrenghtPower [ id ], AgilityPower [ id ], HealthPower [ id ], LevitationPower [ id ], UserAlreadyHavePower [ id ], UltimatePower [ id ], Coins [ id ], SQL_TABLE, g_szName[ id ] )
	
	SQL_ThreadQuery( g_SqlTuple, "IgnoreHandle", szTemp )
}

public LoadData( id )
{
	new Data[ 1 ]
	Data[ 0 ] = id
	
	new szTemp[ 512 ]
	format( szTemp, charsmax( szTemp ), "SELECT level,xp,strenghtpower,agilitypower,healthpower,levitationpower,useralreadyhavepower,ultimatepower,coins FROM `%s` WHERE (`%s`.`nick` = '%s');", SQL_TABLE, SQL_TABLE, g_szName[ id ] )
	
	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
	
	new id
	id = Data[ 0 ]
	
	if( SQL_NumResults( Query ) < 1 )
	{
		new szTemp[ 512 ]
		format( szTemp, charsmax( szTemp ), "INSERT INTO %s (nick,level,xp,strenghtpower,agilitypower,healthpower,levitationpower,useralreadyhavepower,ultimatepower,coins) VALUES('%s', '0', '0', '0', '0', '0', '0', '0', '0', '0' );", SQL_TABLE, g_szName[ id ], Level [ id ], eXP [ id ], StrenghtPower [ id ], AgilityPower [ id ], HealthPower [ id ], LevitationPower [ id ], UserAlreadyHavePower [ id ], UltimatePower [ id ], Coins [ id ] )
		
		SQL_ThreadQuery( g_SqlTuple, "IgnoreHandle", szTemp )
	} 
	else
	{		
		Level[id] = SQL_ReadResult( Query, 0 )
		eXP[ id ] = SQL_ReadResult( Query, 1 )
		StrenghtPower [ id ] = SQL_ReadResult( Query, 2 )
		AgilityPower [ id ] = SQL_ReadResult( Query, 3 )
		HealthPower [ id ] = SQL_ReadResult( Query, 4 )
		LevitationPower [ id ] = SQL_ReadResult( Query, 5 )
		UserAlreadyHavePower [ id ] = SQL_ReadResult( Query, 6 )
		UltimatePower [ id ] = SQL_ReadResult( Query, 7 )
		Coins [ id ] = SQL_ReadResult( Query, 8 )
	}
	
	return PLUGIN_CONTINUE
}


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
Mr.Alexx
Membru, skill 0
Membru, skill 0
Posts: 40
Joined: 17 Oct 2014, 19:07
Detinator Steam: Nu
CS Status: Citesc forumul eXtreamCS.com...!
Fond eXtream: 0
Contact:

25 Feb 2015, 18:11

Ce tr sa modific mai exact aici :

Code: Select all

<?php

     $sql = @mysql_connect("localhost", "root", "");
     mysql_select_db("cstrike");

?>
The Kalu
Fost administrator
Fost administrator
Posts: 13712
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:

25 Feb 2015, 18:32

Daca ai cpanel creezi o noua baza de date si la mysql_select_db inlocuiesti cu numele la noua baza de date creata de tine.
mysql_connect("localhost", "root", ""); //
localhost // ip sau sql12.krond.org este doar un exemplu doarece difera la fiecare web hoster.
root // userul de la mysql.
"" // parola de la userul mysql.
Image
User avatar
Mr.Alexx
Membru, skill 0
Membru, skill 0
Posts: 40
Joined: 17 Oct 2014, 19:07
Detinator Steam: Nu
CS Status: Citesc forumul eXtreamCS.com...!
Fond eXtream: 0
Contact:

25 Feb 2015, 18:43

cand il bag..imi pica server-ul..
The Kalu
Fost administrator
Fost administrator
Posts: 13712
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:

25 Feb 2015, 19:09

Mr.Alexx wrote:cand il bag..imi pica server-ul..
In plugins.ini adauga dupa PlayedTime.amxx un debug si verifica consola ce mesaj de eroare da.

Ex: PlayedTime.amxx debug
Image
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

26 Feb 2015, 10:56

original | Afiseaza codul
public SaveData(id)
{

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

	new szTemp[ 512 ]
	format( 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 )
}
->
modificat | Afiseaza codul
public SaveData(id)
{

	static playTime
    playTime = get_user_time(id, 1) / 60;
    new name[32] // aici nu sunt sigur ca nu stiu sql, dar numele are 32 caractere, nu 17.
    get_user_name(id, name, charsmax(name)) 

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


iar asta e doar un exemplu... alea doua greseli le-ai repetat in mai multe locuri
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
CryWolf
Administrator
Administrator
Posts: 6505
Joined: 07 Aug 2008, 16:33
Detinator Steam: Da
Reputatie: Administrator
Fost Scripter
Manager CS2.eXtream.Ro
Fost Detinator ZM.eXtream.Ro
Fost manager CS.eXtream.Ro
Fost manager CSGO.eXtream.Ro
Fost manager global
Location: Botosani
Discord: crywolf1989
Has thanked: 202 times
Been thanked: 850 times
Contact:

26 Feb 2015, 13:46

poti face un stock ca sa nu adaugi codul de mai multe ori in diferite publicuri si da numele trebuie sa fie de 32 de celule sau mai bine zis 31 ceva e genu

Code: Select all

stock get_uname ( id )
{
    new szName [ 32 ];
    get_user_name ( id, szName, charsmax ( szName );
    
    return szName;
} 
si folosesti doar in publicuri get_uname ( id )

@The YONTU:

Code: Select all

get_players(iPlayer, Num)
Nu ne intereseaza daca jucatorul este spectator , bot , sau cum crede el... sau poate ca da http://www.amxmodx.org/doc/index.html?p ... layers.htm

Code: Select all

set_task(4.0, "PlayerAnnounce")
in public plugin_init e prea mult deja ai doua set_taskuri imi are mult pentru un simplu plugin, consider ca daca anunti o data in la conectare cu un simplu set_task cu float random si faci o comanda pentru clienti ca sa vada ulterior cand vor e mai ok decat sa pritezi tu mesaju la fiecare plugin_init.
NU IMI MAI DA-TI PM CU CERERE AJUTOR/SAMD, FOLOSITI FORUMUL, CITESC MAJORITATEA TOPICURILOR.
www.dark-arena.com , SERVERE CS / CS2 / L4D AU REVENIT ONLINE.
www.diasporaiptv.ro - SERVICII PREMIUM IPTV

Image

Image
User avatar
MASTER ~
Utilizator neserios (tepar)
Utilizator neserios (tepar)
Posts: 3651
Joined: 05 Nov 2007, 01:25
Detinator Steam: Da
Detinator server CS: Nu
Reputatie: Utilizator neserios (tepar)
Restrictie moderator
Has thanked: 7 times
Been thanked: 19 times

26 Feb 2015, 19:08

eu il faceam mai smecher :gusta

bravo, jmker de jmker
Post Reply

Return to “AmxModX”

  • Information
  • Who is online

    Users browsing this forum: No registered users and 5 guests