Skocz do zawartości

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Zdjęcie

Pierwsza runda po rr


  • Nie możesz napisać tematu
  • Zaloguj się, aby dodać odpowiedź
4 odpowiedzi w tym temacie

#1 Jenot

    Pomocny

  • Użytkownik

Reputacja: 48
Pomocny

  • Postów:72
  • Steam:steam
  • Imię:Karol
  • Lokalizacja:Kamień Krajeński / Duża Cerkwica
Offline

Napisano 30.01.2014 15:08

Witam. Mam problem. Otóż chcę dodać prezent dla najlepszego gracza rozgrzewki. Osoba, która będzie miała najwięcej fragów na rr otrzyma w pierwszej rundzie po rozgrzewce dodatkowe 200$, czyli łącznie będzie miała ich 1000. I tutaj pojawia się problem, jakiego eventu użyć, by gracz otrzymał dodatkowe pieniądze w tylko i wyłącznie w pierwszej rundzie po rr? Rozgrzewka trwa minutę, jest reset i gra zaczyna się od nowa.


  • +
  • -
  • 0

b_350_20_5A6C3E_383F2D_D2E1B5_2E3226.png

b_350_20_5A6C3E_383F2D_D2E1B5_2E3226.png

b_350_20_5A6C3E_383F2D_D2E1B5_2E3226.png

b_350_20_5A6C3E_383F2D_D2E1B5_2E3226.png

 

www.cs-reload.pl - Zapraszam serdecznie.


#2 dasiek

    Nie wiem, nie znam się, nie orientuję się, zarobiony jestem.

  • Junior Admin

Reputacja: 2 077
Godlike

  • Postów:5 706
  • Imię:Adaś
  • Lokalizacja:No teraz trochę dalej od WWy
Offline

Napisano 30.01.2014 15:11


I tutaj pojawia się problem, jakiego eventu

 

event nowej rundy. pod koniec rozgrzewki daj boolean'a z tym żeby dać i zapisz do zmiennej id gracza który wygrał. w funkcji odpowiadającej za nowa rundę sprawdz czy bolean jest na TAK , i dodaj graczowi hajs jednocześnie ustawiając takiego booleana na false;


  • +
  • -
  • 1

#3 Jenot

    Pomocny

  • Autor tematu
  • Użytkownik

Reputacja: 48
Pomocny

  • Postów:72
  • Steam:steam
  • Imię:Karol
  • Lokalizacja:Kamień Krajeński / Duża Cerkwica
Offline

Napisano 30.01.2014 16:19

Jak dodam do rozgrzewki taki kod, to zadziała to dawanie kasy? Chodzi mi o to, żeby ono było tylko i wyłącznie w pierwszej rundzie i żeby otrzymał je najlepszy gracz rozgrzewki.

public client_connect(id) { prezent[id] = false; }

public Koniec()
{
	new players[32], num
	get_players(players, num)
	new rank[1]
	for(new i = 0; i < num; i++) 
	{
		new id = players[i]
		prezent[id] = false
		if(frags[id] > rank[0]) 
		{                                                                                                                                                                                                                                                                                              
			rank[0] = id
		}
		frags[i] = 0
	}
	prezent[rank[0]] = true;
}

/* Naliczanie */
public Death() 
{
	new iKiller = read_data(1)
	new iVictim = read_data(2)
	new a = get_user_team(iKiller)
	new b = get_user_team(iVictim)
	new c = is_user_connected(iKiller)
	new d = is_user_connected(iVictim)
	if(a != b && c && d)
	{
		frags[iKiller]++
	}
}
 /* Prezent */
public New_Round() 
{
	
	{
	gRound++;
	}

	if(is_user_alive(id) && prezent[id])
	{
		cs_set_user_money(id,cs_get_user_money(id) + 200)
	}
	
	if( gRound >= 2)
	{
		prezent[id]=false;
	}

  • +
  • -
  • 0

b_350_20_5A6C3E_383F2D_D2E1B5_2E3226.png

b_350_20_5A6C3E_383F2D_D2E1B5_2E3226.png

b_350_20_5A6C3E_383F2D_D2E1B5_2E3226.png

b_350_20_5A6C3E_383F2D_D2E1B5_2E3226.png

 

www.cs-reload.pl - Zapraszam serdecznie.


#4 dasiek

    Nie wiem, nie znam się, nie orientuję się, zarobiony jestem.

  • Junior Admin

Reputacja: 2 077
Godlike

  • Postów:5 706
  • Imię:Adaś
  • Lokalizacja:No teraz trochę dalej od WWy
Offline

Napisano 30.01.2014 17:34

na pierwszy rzut oka już widzę że nie gdyż New_Round() nie ma parametru ID do którego chcesz się odwołać. 

 

Reszta wydaje się być "ok" choć zamiast tworzyć tablicę dla każdego lepiej zrobić coś takiego. 

Pseudo kod :

zmienne : 

new bool:daj_hajs = false;
new najlepszy_gracz = 0; 

gdy rozgrzewka się skończy sprawdzaj kto ma najwięcej fragów (tak jak to zrobiłeś powinno styknąć) id gracza zapisuj w najlepszy_gracz i ustaw daj_hajs na true. 

 

w evencie nowej rundy sprawdzaj czy daj_hajs jest true , jak tak , 

cs_set_user_money(najlepszy_gracz,cs_get_user_money(najlepszy_gracz)+200);
daj_hajs = false;

powinno styknąć. wiele nie pomogę gdyż dawno nie bawiłęm się w tym + nie mam kodu Twojej rozgrzewki.

 

Powodzenia! ;)


  • +
  • -
  • 1

#5 Jenot

    Pomocny

  • Autor tematu
  • Użytkownik

Reputacja: 48
Pomocny

  • Postów:72
  • Steam:steam
  • Imię:Karol
  • Lokalizacja:Kamień Krajeński / Duża Cerkwica
Offline

Napisano 30.01.2014 20:39

#include <amxmodx>
#include <amxmisc>
#include <hamsandwich>
#include <StripWeapons>
 
#define PLUGIN "Rozgrzewka"
#define VERSION "1.0"
#define AUTHOR "Jenot"
 
#define MAX 32
#define SPAWN_TASKID 9999
#define TASK_EQUIP 99999
#define RESTART_TASKID 123
#define ACTIVE_TASKID 124
 
enum PluginSounds {
	psJeden,
	psDwa,
	psTrzy,
	psMuzyka
};
 
stock const gPluginSounds[ PluginSounds ][ 128 ] = {
	"sound/rozgrzewka/jeden.wav",
	"sound/rozgrzewka/dwa.wav",
	"sound/rozgrzewka/trzy.wav",
	"sound/rozgrzewka/muzyka.mp3"
}
 
stock const gPluginPause[ ][ ] = {
	"imessage.amxx",
	"redbull.amxx",
	"scrollmsg.amxx",
	"vip.amxx",
	"RoundSound.amxx",
	"ultimate_sounds.amxx"
}
 
new bool:Active = false;
new bool:gbPlay[ MAX + 1 ];
new bool:daj_hajs = false; 
new frags[33];
new gPcvar[ 3 ];
 
public plugin_init( ) {
	register_plugin( PLUGIN, VERSION, AUTHOR )
	
	register_event("TextMsg", "Game_Restart", "a", "2&#Game_C");
	register_event("DeathMsg","onDeath","a");
	register_event("CurWeapon","eventCurWeapon","be","1=0", "2!0");
	register_event("HLTV", "New_Round", "a", "1=0", "2=0");
	
	RegisterHam(Ham_Spawn, "player", "fwSpawn",1);
	
	gPcvar[ 0 ] = register_cvar( "rozgrzewka_czas", "95" );
	gPcvar[ 1 ] = register_cvar( "rozgrzewka_odrodzenie", "2.0" );
	gPcvar[ 2 ] = get_cvar_pointer( "mp_freezetime" );
	
	
	blockBuy( );
}
 
public plugin_precache( ) {
	for( new i = 0; i < sizeof( gPluginSounds ); i++) {
		precache_generic( gPluginSounds[ PluginSounds: i ] );
	}
}
 
public Game_Restart( ) {
	if( Active ) {
		remove_task( RESTART_TASKID );
		return;
	}
	Active = true;
	new iRTime = get_pcvar_num( gPcvar[ 0 ] )+ get_pcvar_num( gPcvar[ 2 ] ) + 1;
	
	for( new i = 1; i < MAX + 1; i++ ) {
		gbPlay[ i ] = true;
	}
 
	new param[ 1 ];
	param[ 0 ]= iRTime;
	set_task( 1.0, "CountDown", RESTART_TASKID, param, 1);
	
	for(new i = 0; i < sizeof gPluginPause; i++) {
		pause( "ac", gPluginPause[ i ] );
	}
}
 
public CountDown( param[ 1 ] ) {
	new iNow = param[ 0 ]--;
	
	switch( iNow ) {
		case 0:{
			server_cmd("sv_restartround 1");
			clearRespawns();
			new param[ 1 ];
			param[ 0 ] = 0;
			set_task(1.0, "Activation", ACTIVE_TASKID, param, 1);
			for(new i = 0; i < sizeof gPluginPause; i++) {
				unpause( "ac", gPluginPause[ i ] );
			}
		}
		case 1:	play( 0, gPluginSounds[ psJeden ] );
		case 2:	play( 0, gPluginSounds[ psDwa ] );
		case 3:	play( 0, gPluginSounds[ psTrzy ] );
	}
	
	if( iNow >= 1) {
		set_task( 1.0, "CountDown", RESTART_TASKID, param, 1);
	}
	new fx = 0;
	if( iNow <= 5) {
		fx=1;
	}
	set_hudmessage( random_num( 0, 255 ), random_num( 0, 255 ), random_num( 0, 255 ), 0.65, 0.75, fx, 6.0, 1.0 )
	show_hudmessage(0, "Czas rozgrzewki^n%2d:%02d",iNow/60,iNow%60);
}
 
 
public Activation( param[ 1 ] ) {
	Active = ( param[ 0 ] == 0 )?false:true;
}
public onDeath( ) {
	new vid = read_data( 2 );
	if( Active ) {
		set_task( get_pcvar_float(gPcvar[ 1 ]), "respawn", SPAWN_TASKID + vid);
	}
	return PLUGIN_CONTINUE;
}
public fwSpawn( id ) {
	if( Active && is_user_alive( id ) ) {
		if( gbPlay[ id ] ) {
			play( id, gPluginSounds[ psMuzyka ] );
			gbPlay[ id ] = false;
		}
		if(task_exists(TASK_EQUIP +id ) ) {
			remove_task( TASK_EQUIP + id );
		}
		set_task(0.2, "taskEquip", TASK_EQUIP + id);
	}
}
public eventCurWeapon( id ) {
	if( Active ) {
		if( task_exists( TASK_EQUIP + id ) ) {
			remove_task( TASK_EQUIP + id );
		}
		set_task(0.5, "taskEquip", TASK_EQUIP + id);
	}
}
public taskEquip( id ) {
	id -= TASK_EQUIP;
	if( Active && is_user_alive( id ) ) {
		StripWeapons(id, Primary);
		StripWeapons(id, Secondary);
		StripWeapons(id, Grenades);
		StripWeapons(id, C4);
	}
}
 
public respawn( task_id ) {
	ExecuteHamB( Ham_CS_RoundRespawn, task_id - SPAWN_TASKID );
}
public clearRespawns(){
	for( new i = 1; i <= MAX; i++) {
		if( task_exists( SPAWN_TASKID + i ) ) {
			remove_task(SPAWN_TASKID+i);
		}
		if( task_exists( TASK_EQUIP + i ) ) {
			remove_task( TASK_EQUIP + i );
		}
	}
}
 
/* Blokada */
public blockBuy( ) {
	register_clcmd( "drop", "block" )
	register_clcmd( "cl_setautobuy", "block" )
	register_clcmd( "cl_autobuy", "block" )
	register_clcmd( "cl_setrebuy", "block" )
	register_clcmd( "cl_rebuy", "block" )
	register_clcmd( "buy", "block" )
	register_clcmd( "p228", "block" );
	register_clcmd( "228compact", "block" );
	register_clcmd( "shield", "block" );
	register_clcmd( "scout", "block" );    
	register_clcmd( "hegren", "block" );               
	register_clcmd( "xm1014", "block" );
	register_clcmd( "autoshotgun", "block" );                   
	register_clcmd( "mac10", "block" );                
	register_clcmd( "aug", "block" );
	register_clcmd( "bullpup", "block" );
	register_clcmd( "sgren", "block" );   
	register_clcmd( "elites", "block" );     
	register_clcmd( "fn57", "block" );
	register_clcmd( "fiveseven", "block" );  
	register_clcmd( "ump45", "block" );                
	register_clcmd( "sg550", "block" );
	register_clcmd( "krieg550", "block" );   
	register_clcmd( "galil", "block" );
	register_clcmd( "defender", "block" );  
	register_clcmd( "famas", "block" );
	register_clcmd( "clarion", "block" );   
	register_clcmd( "usp", "block" );
	register_clcmd( "km45", "block" );       
	register_clcmd( "glock", "block" );
	register_clcmd( "9x19mm", "block" );     
	register_clcmd( "awp", "block" );
	register_clcmd( "magnum", "block" );     
	register_clcmd( "mp5", "block" );
	register_clcmd( "smg", "block" );       
	register_clcmd( "m249", "block" );                 
	register_clcmd( "m3", "block" );
	register_clcmd( "12gauge", "block" );   
	register_clcmd( "m4a1", "block" );                 
	register_clcmd( "tmp", "block" );
	register_clcmd( "mp", "block" );         
	register_clcmd( "g3sg1", "block" );
	register_clcmd( "d3au1", "block" );    
	register_clcmd( "flash", "block" );                
	register_clcmd( "deagle", "block" );
	register_clcmd( "nighthawk", "block" ); 
	register_clcmd( "sg552", "block" );
	register_clcmd( "krieg552", "block" );   
	register_clcmd( "ak47", "block" );
	register_clcmd( "cv47", "block" );                        
	register_clcmd( "p90", "block" );
	register_clcmd( "c90", "block" );
	register_clcmd( "primammo", "block" );
	register_clcmd( "secammo", "block" );
	register_clcmd( "vest", "block" );
	register_clcmd( "vesthelm", "block" );
	register_clcmd( "nvgs", "block" );
}
 
public block( id ) {
	if( Active ) {
		client_print( id, print_center, "Nie tym razem" );
		return PLUGIN_HANDLED;
	}
	return PLUGIN_CONTINUE;
}
 
/* Odtwarzanie */
play( id, const sound[ ] )
{
	new end = strlen( sound ) - 4;
	if( containi(sound, ".mp3" ) == end && end > 0 )
		client_cmd( id, "mp3 play %s", sound);
	else if( containi(sound,".wav") == end && end > 0)
		client_cmd(id, "spk %s", sound);
	else
		client_cmd(id, "speak %s",sound);
}
 
public client_connect(id) { daj_hajs[id] = false; }
 
public Koniec()
{
	new najlepszy_gracz = 0;
	get_players(najlepszy_gracz, num)
	new rank[1]
	for(new i = 0; i < num; i++) 
	{
		new id = najlepszy_gracz[i]
		daj_hajs[id] = false
		if(frags[id] > rank[0]) 
		{                                                                                                                                                                                                                                                                                              
			rank[0] = id
		}
		frags[i] = 0
	}
	daj_hajs[rank[0]] = true;
}
 
/* Naliczanie */
public Death() 
{
	new iKiller = read_data(1)
	new iVictim = read_data(2)
	new a = get_user_team(iKiller)
	new b = get_user_team(iVictim)
	new c = is_user_connected(iKiller)
	new d = is_user_connected(iVictim)
	if(a != b && c && d)
	{
		frags[iKiller]++
	}
}
 /* Prezent */
public New_Round(id) 
{
	new gRound = 0;
	{
	gRound++;
	}
 
	get_user_name(najlepszy_gracz, name, 34);
	client_print(najlepszy_gracz, print_chat,"Najlepszym graczem rozgrzewki zostal %s i otrzymal 200$",name);
	if(is_user_connected(najlepszy_gracz)
	{
	if(is_user_alive(id) && daj_hajs[id])
	{
		cs_set_user_money(najlepszy_gracz,cs_get_user_money(najlepszy_gracz)+200);
		daj_hajs = false;
	}
}
	
	if( gRound >= 2)
	{
		daj_hajs[id]=false;
	}

Tak będzie dobrze?


  • +
  • -
  • 0

b_350_20_5A6C3E_383F2D_D2E1B5_2E3226.png

b_350_20_5A6C3E_383F2D_D2E1B5_2E3226.png

b_350_20_5A6C3E_383F2D_D2E1B5_2E3226.png

b_350_20_5A6C3E_383F2D_D2E1B5_2E3226.png

 

www.cs-reload.pl - Zapraszam serdecznie.





Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych