Modificare plugin rank

Tutoriale scripting, cod si portiuni de cod.

Moderators: Moderatori ajutatori, Moderatori, Echipa eXtreamCS.com

User avatar
Fuffy
Membru, skill +1
Membru, skill +1
Posts: 299
Joined: 07 Jan 2016, 08:34
Detinator Steam: Da
CS Status: Citesc forumul eXtreamCS.com...!
Fond eXtream: 0
Contact:

10 Dec 2016, 02:15

georgik5 wrote:Netestat, dar acum ar trebui sa mearga. Ai avut dreptate Fuffy.
| Afiseaza codul
#include < amxmodx >
#include < csx >
#include <fakemeta>

const Float:REFRESH_RATE = 1.0;

public plugin_init( )
{
	register_plugin( "HUD Rank", "0.0.1", "Exolent" );
	
	set_task( REFRESH_RATE, "TaskShowRank", .flags = "b" );
}

public TaskShowRank( )
{
	static iPlayers[ 32 ];
	new iNum;
	get_players( iPlayers, iNum, "h" );
	
	static iStats[ 8 ];
	new iTotalStats = get_statsnum( );
	
	for( new i = 0; i < iNum; i++ )
	{
		if (!is_user_connected(iPlayers[ i ]))
			continue;
		
		set_hudmessage( 0, 255, 0, -0.01, -0.2, .holdtime = ( REFRESH_RATE + 0.2 ), .fadeintime = 0.1, .fadeouttime = 0.1, .channel = 3 );
		show_hudmessage( iPlayers[ i ], "Rank: %d / %d", get_user_stats( is_user_alive(iPlayers[ i ]) ? iPlayers[ i ] : pev(iPlayers[ i ], pev_iuser2), iStats, iStats ), iTotalStats );
	}
}
Tot nu te-ai lasat sa nu adaugi is_user_connected inauntrul loop-ului :))
Nu e nevoie, get_players() deja are grija de aceste lucruri, si-n plus is_user_connected() va fi chemat pentru fiecare 'entrace' founded, deci mai bine il scoti.

Nu-s sigur daca merge si fara, dar poti incerca sa scoti si set_huddmessage dinauntr-ul loop-ului.
#Offtopic -> 'Depresie' ala de pe AM are cont aici?


De ce static iPlayers ? de ce static iStats?
AMXX Blue e acum doar pe github.
RoyalServer
User avatar
georgik5
Membru, skill +1
Membru, skill +1
Posts: 398
Joined: 16 Aug 2008, 22:37
Detinator Steam: Da
SteamID: di57inct
Has thanked: 9 times
Been thanked: 5 times

10 Dec 2016, 02:28

Fuffy wrote: Tot nu te-ai lasat sa nu adaugi is_user_connected inauntrul loop-ului :))
Nu e nevoie, get_players() deja are grija de aceste lucruri, si-n plus is_user_connected() va fi chemat pentru fiecare 'entrace' founded, deci mai bine il scoti.
Nu am stiut pentru ca nu am folosit aproape niciodata get_players.
Fuffy wrote:Nu-s sigur daca merge si fara, dar poti incerca sa scoti si set_huddmessage dinauntr-ul loop-ului.
Vrei sa zici in afara loop'ului. Si da, cred ca ar merge.
Fuffy wrote:#Offtopic -> 'Depresie' ala de pe AM are cont aici?
Nu stiu.
Fuffy wrote:De ce static iPlayers ? de ce static iStats?
Tot ce e array mai mare decat 2 e bine sa fie static. Are legatura cu felul cum se creeaza si folosesc variabilele. Este optimizare. Prea mult de explicat si nici nu am retinut tot.

Varianta finala:
| Afiseaza codul
#include < amxmodx >
#include < csx >
#include <fakemeta>

const Float:REFRESH_RATE = 1.0;

public plugin_init( )
{
	register_plugin( "HUD Rank", "0.0.1", "Exolent" );
	
	set_task( REFRESH_RATE, "TaskShowRank", .flags = "b" );
}

public TaskShowRank( )
{
	static iStats[ 8 ];
	new iTotalStats = get_statsnum( );
	
	static iPlayers[ 32 ];
	new iNum;
	
	set_hudmessage( 0, 255, 0, -0.01, -0.2, .holdtime = ( REFRESH_RATE + 0.2 ), .fadeintime = 0.1, .fadeouttime = 0.1, .channel = 3 );
	
	get_players( iPlayers, iNum, "a" );
	
	for( new i = 0; i < iNum; i++ )
	{
		show_hudmessage( iPlayers[ i ], "Rank: %d / %d", get_user_stats( iPlayers[ i ], iStats, iStats ), iTotalStats );
	}
	
	get_players( iPlayers, iNum, "b" );
	
	for( new i = 0; i < iNum; i++ )
	{
		show_hudmessage( iPlayers[ i ], "Rank: %d / %d", get_user_stats( pev(iPlayers[ i ], pev_iuser2), iStats, iStats ), iTotalStats );
	}
}
User avatar
Fuffy
Membru, skill +1
Membru, skill +1
Posts: 299
Joined: 07 Jan 2016, 08:34
Detinator Steam: Da
CS Status: Citesc forumul eXtreamCS.com...!
Fond eXtream: 0
Contact:

10 Dec 2016, 14:57

Cum adica tot ce e array mai mare decat 2? Adica orice array care contine mai mult de 2 labes ar trebui sa fie static? Eu stiam ca static ar trebui folosit doar cand folosim variabila respectiva de mai multe ori pe secunde ( client_prethink, preframe, etc... ) .

Ar trebui sa le muti pe new..


Pastreaza prima ideie cand folosesti is_user_alive() ? ... : ... e mai bine asa si fa doar un singur loop.


Ps. am un tuturial despre loop-uri, am explicat si-ntr-un reply despre get_players() verifica-l poate te ajuta cu ceva :)
AMXX Blue e acum doar pe github.
User avatar
georgik5
Membru, skill +1
Membru, skill +1
Posts: 398
Joined: 16 Aug 2008, 22:37
Detinator Steam: Da
SteamID: di57inct
Has thanked: 9 times
Been thanked: 5 times

10 Dec 2016, 16:55

Variabilele sunt bine asa cum sunt. Mi'a explicat un baiat care mananca programare pe paine.

Este mai bine cu 2 loop'uri decat cu mai multe is_user_alive. Cu cat mai putine apelari de native cu atat mai bine.
User avatar
Fuffy
Membru, skill +1
Membru, skill +1
Posts: 299
Joined: 07 Jan 2016, 08:34
Detinator Steam: Da
CS Status: Citesc forumul eXtreamCS.com...!
Fond eXtream: 0
Contact:

10 Dec 2016, 17:19

georgik5 wrote:Variabilele sunt bine asa cum sunt. Mi'a explicat un baiat care mananca programare pe paine.

Este mai bine cu 2 loop'uri decat cu mai multe is_user_alive. Cu cat mai putine apelari de native cu atat mai bine.
Nu stiu cine ti-a spus asta dar nu vreau sa intru in discutii contra-dictorii, daca hamlet vede topicul asta sa se bage el, am incredere ca el stie ce zice.
AMXX Blue e acum doar pe github.
Aliacee
Membru, skill +1
Membru, skill +1
Posts: 108
Joined: 29 Nov 2015, 19:05
Detinator Steam: Da
CS Status: Citesc forumul eXtreamCS.com...!
Fond eXtream: 0
Contact:

10 Dec 2016, 17:31

L-am testat si merge.
Chestia este cand stau spectator si camera nu este pe nimeni(Nu urmaresc niciun player), imi zice ca pozitia mea este 0 din NR. X
Nu stiu daca merge ca acest mesaj(Rank) sa apara doar cand esti mort, nu si cand esti in viata.
Imi poti face te rog daca se poate sa apara si numele playerului pe care il urmaresc, gen asa:
Image
Sa apare ambele mesaje in partea stanga sus.
P.S Testez acum si al doielea plugin, georgik5.
Aliacee
Membru, skill +1
Membru, skill +1
Posts: 108
Joined: 29 Nov 2015, 19:05
Detinator Steam: Da
CS Status: Citesc forumul eXtreamCS.com...!
Fond eXtream: 0
Contact:

10 Dec 2016, 17:45

Este tot la fel.
Nu s-a schimbat mai nimic.
Daca nu se poate, face acest lucru, macar sa apara acest mesaj sus in stanga si cu numele playerului, cum este in poza.
User avatar
georgik5
Membru, skill +1
Membru, skill +1
Posts: 398
Joined: 16 Aug 2008, 22:37
Detinator Steam: Da
SteamID: di57inct
Has thanked: 9 times
Been thanked: 5 times

11 Dec 2016, 04:51

Numele il vezi in bara de jos cand stai spectator pe cineva deci nu are rost sa ti'l pun si in HUD.
Am rezolvat problema cu pozitia 0 din X. Poftim:
| Afiseaza codul
#include < amxmodx >
#include < csx >
#include <fakemeta>

const Float:REFRESH_RATE = 1.0;

public plugin_init( )
{
	register_plugin( "HUD Rank", "0.0.1", "Exolent" );
	
	set_task( REFRESH_RATE, "TaskShowRank", .flags = "b" );
}

public TaskShowRank( )
{
	static iStats[ 8 ];
	new iTotalStats = get_statsnum( );
	
	static iPlayers[ 32 ];
	new iNum;
	
	set_hudmessage( 0, 255, 0, -0.01, -0.2, .holdtime = ( REFRESH_RATE + 0.2 ), .fadeintime = 0.1, .fadeouttime = 0.1, .channel = 3 );
	
	get_players( iPlayers, iNum, "a" );
	
	for( new i = 0; i < iNum; i++ )
	{
		show_hudmessage( iPlayers[ i ], "Rank: %d / %d", get_user_stats( iPlayers[ i ], iStats, iStats ), iTotalStats );
	}
	
	get_players( iPlayers, iNum, "b" );
	
	new iIDTarget;
	
	for( new i = 0; i < iNum; i++ )
	{
		iIDTarget = pev(iPlayers[ i ], pev_iuser2);
		
		if (!iIDTarget)
			continue;
		
		show_hudmessage( iPlayers[ i ], "Rank: %d / %d", get_user_stats( iIDTarget, iStats, iStats ), iTotalStats );
	}
}
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

13 Dec 2016, 15:28

georgik5 wrote:Numele il vezi in bara de jos cand stai spectator pe cineva deci nu are rost sa ti'l pun si in HUD.
Am rezolvat problema cu pozitia 0 din X. Poftim:
| Afiseaza codul
#include < amxmodx >
#include < csx >
#include <fakemeta>

const Float:REFRESH_RATE = 1.0;

public plugin_init( )
{
	register_plugin( "HUD Rank", "0.0.1", "Exolent" );
	
	set_task( REFRESH_RATE, "TaskShowRank", .flags = "b" );
}

public TaskShowRank( )
{
	static iStats[ 8 ];
	new iTotalStats = get_statsnum( );
	
	static iPlayers[ 32 ];
	new iNum;
	
	set_hudmessage( 0, 255, 0, -0.01, -0.2, .holdtime = ( REFRESH_RATE + 0.2 ), .fadeintime = 0.1, .fadeouttime = 0.1, .channel = 3 );
	
	get_players( iPlayers, iNum, "a" );
	
	for( new i = 0; i < iNum; i++ )
	{
		show_hudmessage( iPlayers[ i ], "Rank: %d / %d", get_user_stats( iPlayers[ i ], iStats, iStats ), iTotalStats );
	}
	
	get_players( iPlayers, iNum, "b" );
	
	new iIDTarget;
	
	for( new i = 0; i < iNum; i++ )
	{
		iIDTarget = pev(iPlayers[ i ], pev_iuser2);
		
		if (!iIDTarget)
			continue;
		
		show_hudmessage( iPlayers[ i ], "Rank: %d / %d", get_user_stats( iIDTarget, iStats, iStats ), iTotalStats );
	}
}
static -> new
tii memoria ocupata degeaba, static o folosesti in cicluri in care se apealeaza de n ori in 0.5sec.
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
Fuffy
Membru, skill +1
Membru, skill +1
Posts: 299
Joined: 07 Jan 2016, 08:34
Detinator Steam: Da
CS Status: Citesc forumul eXtreamCS.com...!
Fond eXtream: 0
Contact:

13 Dec 2016, 17:45

Lux0R^ wrote:
georgik5 wrote:Numele il vezi in bara de jos cand stai spectator pe cineva deci nu are rost sa ti'l pun si in HUD.
Am rezolvat problema cu pozitia 0 din X. Poftim:
| Afiseaza codul
#include < amxmodx >
#include < csx >
#include <fakemeta>

const Float:REFRESH_RATE = 1.0;

public plugin_init( )
{
	register_plugin( "HUD Rank", "0.0.1", "Exolent" );
	
	set_task( REFRESH_RATE, "TaskShowRank", .flags = "b" );
}

public TaskShowRank( )
{
	static iStats[ 8 ];
	new iTotalStats = get_statsnum( );
	
	static iPlayers[ 32 ];
	new iNum;
	
	set_hudmessage( 0, 255, 0, -0.01, -0.2, .holdtime = ( REFRESH_RATE + 0.2 ), .fadeintime = 0.1, .fadeouttime = 0.1, .channel = 3 );
	
	get_players( iPlayers, iNum, "a" );
	
	for( new i = 0; i < iNum; i++ )
	{
		show_hudmessage( iPlayers[ i ], "Rank: %d / %d", get_user_stats( iPlayers[ i ], iStats, iStats ), iTotalStats );
	}
	
	get_players( iPlayers, iNum, "b" );
	
	new iIDTarget;
	
	for( new i = 0; i < iNum; i++ )
	{
		iIDTarget = pev(iPlayers[ i ], pev_iuser2);
		
		if (!iIDTarget)
			continue;
		
		show_hudmessage( iPlayers[ i ], "Rank: %d / %d", get_user_stats( iIDTarget, iStats, iStats ), iTotalStats );
	}
}
static -> new
tii memoria ocupata degeaba, static o folosesti in cicluri in care se apealeaza de n ori in 0.5sec.
I-am zis si eu dar nu ma crede :D :P
AMXX Blue e acum doar pe github.
Post Reply

Return to “Scripting”

  • Information
  • Who is online

    Users browsing this forum: No registered users and 2 guests