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
 

bakaj - zdjęcie

bakaj

Rejestracja: 20.01.2010
Aktualnie: Nieaktywny
Poza forum Ostatnio: 31.10.2011 08:42
-----

Moje tematy

Vot na dodatkowe 5 rund

03.05.2011 11:57

Witam!

Znalazlem ostatnio plugin na AlliedMods, ktory po rozegraniu x rund daje vota na przedluzenie mapy o kolejne x rund. Problem tkwi w tym, ze plugin ten zlicza wszystkie rundy (nawet te przed restartem - np. gdy czas rundy mija, badz gdy jest jedna osoba i podklada paki, a pozniej laczy sie druga i nastepuje restart). W tym momencie po restarcie vot nastepuje np. przy 10 rundzie, a mam ustawiona na 19 runde. Dzieje sie tak, poniewaz w pluginie mozna ustawic vot na dana runde (pobieranie cvaru maxrounds + wybor danej rundy), a chcialbym, zeby wyskakiwal w ostatniej i sam pobieral dane kiedy jest ta ostatnia runda. Dodatkowo jakims dziwnym sposobem plugin dolicza mi rundy do kolejnych map, wieczorem na mapie mialem mr20, wchodzac rano bylo juz mr45. Chcialbym rowniez, zeby vot wyskakiwal tylko raz, czyli mozliwosc jednorazowego przedluzenia mapy o x rund.
Jezeli znajdzie sie ktos chetny, to bardzo bym prosil o pomoc, oczywiscie bedzie +.

sma:

#include <amxmodx> 

new g_iRoundCount = 1 
new g_iVoteCount[2] 

public plugin_init() 
{ 
    register_plugin("More Rounds?", "0.1", "Fysiks") 
    register_event("HLTV", "hookNewRound", "a", "1=0", "2=0") 
} 

public hookNewRound() 
{ 
    g_iRoundCount++ 
     
    if( g_iRoundCount == 19 ) 
    { 
        // Start Vote for extra rounds 
        startVote() 
    } 
} 

startVote() 
{ 
    new menu = menu_create("\yPrzedluzyc mape o 5 rund?", "handleVotes") 
    menu_additem(menu, "Tak", "y") 
    menu_additem(menu, "\rNie", "n") 
     
    new iPlayers[32], iNumPlayers 
    get_players(iPlayers, iNumPlayers) 
    for(new i = 0; i < iNumPlayers; i++) 
    { 
        menu_display(iPlayers[i], menu, 0) 
    } 
     
    set_task(10.0, "endVote") 
} 

public handleVotes(id, menu, item) 
{ 
    g_iVoteCount[item]++  // not 100% sure this works correctly 
    client_print(0, print_chat, "Gracz glosowal na : %s", item ? "NIE" : "TAK")  // Check to see if this prints correctly when you vote. 
} 

public endVote() 
{ 
    if( g_iVoteCount[0] > g_iVoteCount[1] ) 
    { 
        set_cvar_num("mp_maxrounds", get_cvar_num("mp_maxrounds") + 5) 
        client_print(0, print_chat, "Votowanie udane. Gramy 5 rund wiecej...") 
    set_hudmessage(0, 255, 0, 0.01, 0.40, 0, 0, 5.0)
    show_hudmessage(0, "Votowanie udane. Gramy 5 rund wiecej...")
    
    
    
    } 
    else 
    { 
        client_print(0, print_chat, "Votowanie nieudane. Mapa zmieni sie po tej rundzie...") 
        set_hudmessage(0, 255, 0, 0.01, 0.40, 0, 0, 5.0)
        show_hudmessage(0, "Votowanie nieudane. Mapa zmieni sie po tej rundzie...")
    } 
} 

Z góry dziekuje za pomoc. Pozdrawiam

amxbans_ssban info w say u gracza

25.04.2011 10:52

Witam, nie wiem czy to odpowiedni dzial, poniewaz sa tu same modyfikacje pod php, jezeli nie to proszę o przeniesienie (jezeli modyfikacja zostanie w ogóle zaakceptowana).

Zmodyfikowalem troszke plugin amxbans_ssban (GM 1.5.1) na wlasne potrzeby, poniewaz w oryginale nie posiadal on mozliwosci ustawienia informacji w sayu u osoby, ktorej robione sa screeny. Jest to przydatne w celu identyfikacji gracza (w oryginale nie ma zadnej informacji na ssie, procz malej notki w hudzie), podczas nieobecnosci admina ktory robil foty. Zdarzaly sie rowniez przypadki, ze admin nie pamietal komu i w jakiej sytuacji robil foty, a na ssie nie ma daty i nicka admina.

Do pluginu dodalem info, takie jak ma admin podczas robienia ssow + spolszczylem (w amxbans-ssban.cfg ustaw amx_stamptype "3").

Screen:
Dołączona grafika

Wystarczy podmienic amxbans_ssban.amxx w folderze plugins.

sma :

#include < amxmodx >
#include < amxmisc >
#include < fakemeta >
#include < colorchat >

#define PLUGIN "AMXBans: Screens"
#define VERSION	"0.4"
#define AUTHOR "GmStaff"

new victim
new CvarMaxss, CvarInterval, CvarTimestamptype, CvarHUDText;
new CvarBanTime, CvarBanReason;

new CountMenu
new CvarCountScreens
new g_max_players
new g_user_ids[33]
new g_player[33]

public plugin_init ( ) { 
	register_plugin ( PLUGIN, VERSION, AUTHOR );

	register_clcmd ( "amx_ssban", "cmdScreen", ADMIN_BAN, "<authid, nick or #userid> <count of screens>" );
	register_clcmd ( "amx_ssbanmenu", "cmdScreenMenu", ADMIN_BAN, " - display screens menu" );

	CvarMaxss			= register_cvar ( "amx_maxscreens", "10" );
	CvarInterval		= register_cvar ( "amx_interval", "1.0" );
	CvarTimestamptype	= register_cvar ( "amx_stamptype", "3" );
	CvarHUDText		= register_cvar ( "amx_hudtext", "Cheese! <img src='http://img.amxx.pl/public/style_emoticons/default/smile.gif' class='bbc_emoticon' alt=':)' />" );
	CvarCountScreens	= register_cvar ( "amx_screenscount", "1 2 3 4 5 6 7 8 9");

	CvarBanTime		= register_cvar ( "amx_ssbantime", "0" );
	CvarBanReason		= register_cvar ( "amx_ssbanreason", "Screens, go gm-community.net" );

	register_cvar ( "amxbans_ssversion", VERSION, FCVAR_SERVER | FCVAR_SPONLY );
	g_max_players = get_maxplayers();

	new configsDir [ 64 ];
	get_configsdir ( configsDir, 63 );
	
	server_cmd ( "exec %s/amxbans-ssban.cfg", configsDir );

}

public plugin_cfg ( ) {
	new line[ 128 ], token[ 10 ], szKey[ 16 ];
	get_pcvar_string ( CvarCountScreens, line, 127 );

	CountMenu = menu_create ( "\rCount of screens\w", "CountScreensMenu" );
	while ( contain ( line, " " ) != -1 ) {
		strbreak ( line, token, 9, line, 127 );
		format( szKey, charsmax ( szKey ), "Make %s screen(s)", token )
		menu_additem ( CountMenu, szKey, token );
	}
}

public cmdScreenMenu ( id, level, cid ) {
	if ( !cmd_access ( id, level, cid, 1 ) )
		return PLUGIN_HANDLED;
		
	new menu = menu_create ( "\rChoose player", "PlayersMenu" );
	
	new i, name[ 32 ], tempid[ 10 ];
	
	for ( i = 1; i <= g_max_players; i++ ) {
		if ( is_user_connected ( i ) ) {
			get_user_name ( i, name, 31 );
			num_to_str ( i, tempid, 9 );
			g_user_ids[ i ] = get_user_userid ( i );
			menu_additem ( menu, name, tempid, 0 );
		}
	}
	
	menu_display ( id, menu, 0 );
	return PLUGIN_HANDLED;
}

public PlayersMenu ( id, menu, item ) {
	if ( item == MENU_EXIT ) {
		return PLUGIN_HANDLED;
	}
	
	new data[ 6 ], iName[ 64 ];
	new access, callback;
	menu_item_getinfo ( menu, item, access, data, 5, iName, 63, callback );
	
	g_player[ id ] = str_to_num ( data );
	menu_display ( id, CountMenu, 0 );
	
	return PLUGIN_HANDLED;
}

public CountScreensMenu ( id, menu, item ) {
	if ( item == MENU_EXIT ) {
		return PLUGIN_HANDLED;
	}
	
	new data[ 6 ], iName[ 64 ];
	new access, callback;
	new player = g_player[id];
	
	menu_item_getinfo ( menu, item, access, data,5, iName, 63, callback );
	
	if ( g_user_ids[ player ] == get_user_userid ( player ) ) {
		client_cmd ( id, "amx_ssban #%d %s", g_user_ids[ player ], data );
	}
	
	return PLUGIN_HANDLED;
}

public cmdScreen ( id, level, cid ) { 
	if ( !cmd_access ( id, level, cid, 3 ) ) {
		return PLUGIN_HANDLED;
	}

	new arg1[ 24 ], arg2[ 4 ];

	read_argv ( 1, arg1, 23 );
	read_argv ( 2, arg2, 3 );
	
	new screens = str_to_num ( arg2 );
	victim = cmd_target ( id, arg1, 1 );
	
	if ( screens > get_pcvar_num ( CvarMaxss ) ) {
		console_print ( id, "Gm# You cannot take that many screenshots!" );
		
		return PLUGIN_HANDLED;
	}
	
	if ( !victim ) {
		return PLUGIN_HANDLED;
	}
	
	new Float: interval = get_pcvar_float ( CvarInterval );
	new array[ 2 ];

	array[ 0 ] = id;
	array[ 1 ] = victim;

	set_task ( interval, "takeScreen", 0, array, 2, "a", screens );
	set_task ( interval * screens + 1.0, "victimBan", 0, array, 2 );

	return PLUGIN_HANDLED;
}
 
public takeScreen ( array[ 2 ] ) {
	new victim = array[ 1 ];
	new id = array[ 0 ];
	
	new timestamp[ 32 ], HUDText[ 32 ], name[ 32 ], adminname[ 32 ];
	get_time ( "%m/%d/%Y - %H:%M:%S", timestamp, 31 );
	get_user_name ( victim, name, 31 );
	get_user_name ( id, adminname, 31 );
	get_pcvar_string ( CvarHUDText, HUDText, 31 );

	switch( get_pcvar_num ( CvarTimestamptype ) ) {
		case 0: {
			ColorChat( id, RED, "AMXBans#^x01 Screenshot zrobiony graczowi ^x03%s^x01 przez admina ^x04%s^x01 (Data : %s)", name, adminname );
			ColorChat ( victim, RED, "AMXBans#^x01 Screenshot zrobiony graczowi ^x03%s^x01 przez admina ^x04%s^x01 (Data : %s)", name, adminname, timestamp );
			client_cmd ( victim, "snapshot" );
		}

		case 1: {
			ColorChat( id, RED, "AMXBans#^x01 Screenshot zrobiony graczowi ^x03%s^x01 przez admina ^x04%s^x01 (Data : %s)", name, adminname, timestamp );
		 	ColorChat ( victim, RED, "AMXBans#^x01 Screenshot zrobiony graczowi ^x03%s^x01 przez admina ^x04%s^x01 (Data : %s)", name, adminname, timestamp );
			client_cmd(victim, "snapshot");
		}

		case 2: {
			set_hudmessage( 0, 225, 0, 0.02, 0.90, 0, 1.0, 2.0 );
			show_hudmessage ( victim, "%s", HUDText );
			client_cmd ( victim, "snapshot" );
		}

		case 3: {
			set_hudmessage( 0, 225, 0, 0.02, 0.90, 0, 1.0, 2.0 );
			show_hudmessage ( victim, "%s", HUDText );
			ColorChat ( victim, RED, "AMXBans#^x01 Screenshot zrobiony graczowi ^x03%s^x01 przez admina ^x04%s^x01 (Data : %s)", name, adminname, timestamp );
			ColorChat ( id, RED, "AMXBans#^x01 Screenshot zrobiony graczowi ^x03%s^x01 przez admina ^x04%s^x01 (Data : %s)", name, adminname, timestamp );
			client_cmd ( victim, "snapshot" );
		}
	}

	return PLUGIN_CONTINUE;
}

public victimBan ( array[ 2 ] ) {
	new  Reason[ 50 ];

	new victimId = get_user_userid ( array[ 1 ] );
	get_pcvar_string ( CvarBanReason, Reason, 31 );

	client_cmd ( array[ 0 ], "amx_ban %i #%i ^"%s^"", get_pcvar_num ( CvarBanTime ), victimId, Reason);
}

Mam nadzieje, ze komus sie przyda. Pozdrwiam

Piorun na serwerze

06.02.2011 14:03

WItam.

Na jednym z serwerow ZombiePlague widzialem taki fajny efekt. Co jakis czas zostaje odtworzony odglos pioruna (jak na aztecu) i na mapie robi sie jasno (przez 1-2 sek). Jezeli jest ktos w stanie napisac taki plugin to proszę o odp. Z gory dziekuje za pomoc. Pozdrawiam

Ilość rund do konca mapy

21.10.2010 13:44

Witam:)

Nie wiem, czy pisze w odpowiednim dziale, dlatego proszę o przeniesienie, jezeli tak nie jest:)

Do sedna. Na serwerze mam ustawione mp_maxrounds. W miscstats ustawilem RoundCounter, czyli co runde wyświtla mi komunikat :

"Przygotuj Sie! Runda xxx".

Jezeli jest to mozliwe chcialbym, aby ktos pomogl mi przerobic to na :

"Pozostalo rund do konca : xxx",

zeby nie pokazywalo mi ktora to runda, tylko odliczalo ilosc rund do konca:)

public eNewRound()
{
	if (read_data(1) == floatround(get_cvar_float("mp_roundtime") * 60.0,floatround_floor))
	{
		g_firstBlood = 1
		g_C4Timer = 0
		++g_roundCount
		
		if (RoundCounter)
		{
			set_hudmessage(0, 255, 0, -1.0, 0.30, 0, 6.0, 6.0, 0.5, 0.15, -1)
			ShowSyncHudMsg(0, g_announce_sync, "%L", LANG_PLAYER, "PREPARE_FIGHT", g_roundCount)
		}
		
		if (RoundCounterSound)
			play_sound("misc/prepare")


Jezeli nie te linijki sa za to odpowiedzialne wkleje cale sma:) Z gory dzięki za pomoc. Pozdrawiam

Cisza wyborcza:)

23.07.2010 17:47

Witam:) Daloby rade zrobic plugin, ktory podczas votowania nie wyswietla chatu? tzn. zeby gracze nie mogli nic napisac na czas vota. Dodam, ze na serwie mam galileo. Po co mi to? Po to, zeby nikt nie spamowal nazwa mapki, a bezmozgi nie kierowaly sie tym co pisza inni:)