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

Ilosc graczy


  • Zamknięty Temat jest zamknięty
8 odpowiedzi w tym temacie

#1 kasza

    Godlike

  • Przyjaciel

Reputacja: 890
Czempion

  • Postów:4 102
  • GG:
  • Steam:steam
  • Imię:Imię
  • Lokalizacja:Lokalizacja
Offline

Napisano 01.09.2009 16:27

Mozna dodac w tym pluginie opcje aby pokazywala ilosc graczy na serwerze ??

#include <amxmodx>
#include <amxmisc>
#pragma tabsize 0

public plugin_init() {
register_plugin("Menu Serwerow","1.0","???")
register_clcmd("say /serwer","AwesomeMenu")
register_clcmd("say /serwery","AwesomeMenu")
register_clcmd("say /server","AwesomeMenu")
register_clcmd("say /servery","AwesomeMenu")
}

public AwesomeMenu(id)
{
new menu = menu_create("Menu serwerow!:", "menu_handler")
menu_additem(menu, "CsBytow[AimSkill/Respawn][STEAM ONLY]", "1", 0)

menu_setprop(menu, MPROP_EXIT, MEXIT_ALL)
menu_display(id, menu, 0)
}

public menu_handler(id, menu, item)
{
if (item == MENU_EXIT)
{
return PLUGIN_HANDLED
}
new data[8], iName[64]
new access, callback
menu_item_getinfo(menu, item, access, data,7, iName, 63, callback)
new key = str_to_num(data)
switch(key)
{
case 1:{
client_cmd(id, "Connect 91.207.10.45:27010")
menu_destroy(menu)
return PLUGIN_HANDLED
}

}
menu_destroy(menu)
return PLUGIN_HANDLED
}


  • +
  • -
  • 0

Skillownia.com

 

 #3 [UWC3NG] Skillownia.com - 213.189.52.253:27301

 


#2 R3X

    Godlike

  • Przyjaciel

Reputacja: 2 987
Godlike

  • Postów:4 248
  • Lokalizacja:Nie
Offline

Napisano 01.09.2009 19:22

bez sockets nie
  • +
  • -
  • 0

#3 kasza

    Godlike

  • Autor tematu
  • Przyjaciel

Reputacja: 890
Czempion

  • Postów:4 102
  • GG:
  • Steam:steam
  • Imię:Imię
  • Lokalizacja:Lokalizacja
Offline

Napisano 01.09.2009 19:28

a zrobil byś?
  • +
  • -
  • 0

Skillownia.com

 

 #3 [UWC3NG] Skillownia.com - 213.189.52.253:27301

 


#4 kyku

    Wszechmogący

  • Użytkownik

Reputacja: 166
Profesjonalista

  • Postów:612
  • Lokalizacja:Jasło
Offline

Napisano 01.09.2009 20:37

widzialem cos podobnego w xRedirect czy jakos tak :P wyciagnij z tamtego
  • +
  • -
  • 0

#5 Abes Mapper

    Repulsion Gel

  • Przyjaciel

Reputacja: 2 017
Godlike

  • Postów:7 356
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:Sulejówek
Offline

Napisano 01.09.2009 20:41

Żeby nie było więcej o tym mowy - kasza nie zna się na PAWNIE
  • +
  • -
  • 0

#6 kyku

    Wszechmogący

  • Użytkownik

Reputacja: 166
Profesjonalista

  • Postów:612
  • Lokalizacja:Jasło
Offline

Napisano 01.09.2009 20:43

g_naServerActivePlayers[nServerCount] = index_get_byte(sRcvBuf, aIndexes[A2S_INFO_GOLD_IDX_NUMPLAYERS])
								g_naServerMaxPlayers[nServerCount] = index_get_byte(sRcvBuf, aIndexes[A2S_INFO_GOLD_IDX_MAXPLAYERS])
cos takiego szukaj :P

@up
cos pomoge :P
  • +
  • -
  • 0

#7 kasza

    Godlike

  • Autor tematu
  • Przyjaciel

Reputacja: 890
Czempion

  • Postów:4 102
  • GG:
  • Steam:steam
  • Imię:Imię
  • Lokalizacja:Lokalizacja
Offline

Napisano 01.09.2009 21:16

kyku, nic nie wymysle :| wybacz nie jak jak pisal abes

kasza nie zna się na PAWNIE

mial dopisac ze kompletne 0
  • +
  • -
  • 0

Skillownia.com

 

 #3 [UWC3NG] Skillownia.com - 213.189.52.253:27301

 


#8 kyku

    Wszechmogący

  • Użytkownik

Reputacja: 166
Profesjonalista

  • Postów:612
  • Lokalizacja:Jasło
Offline

Napisano 15.10.2009 21:38

jak bys jeszcze chcial.. masz tu moj plugin:
/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <amxmisc>
#include <sockets>
#include <colorchat>


#define SERWEROW 6

#define TAG "[Ganiany]"



new PORT[SERWEROW];
new IP[SERWEROW][33];
new SOCKETS[SERWEROW];
new MAPA[SERWEROW][33];
new GRACZY[SERWEROW];
new GRACZYMAX[SERWEROW];
new iloscserwerow;



public plugin_init() {


	// --- TWOJE SERWERY --
	
	format(IP[/*W pierwszym bez ++*/iloscserwerow], 32, "77.79.241.195");
	PORT[iloscserwerow] = 27059 ;
	
	format(IP[++iloscserwerow], 32, "77.79.241.200");
	PORT[iloscserwerow] = 27075;
	
	format(IP[++iloscserwerow], 32, "77.79.241.206");
	PORT[iloscserwerow] = 27054 ;
	
	format(IP[++iloscserwerow], 32, "193.33.177.35");
	PORT[iloscserwerow] = 27146 ;
	
	format(IP[++iloscserwerow], 32, "77.79.241.208");
	PORT[iloscserwerow] = 27022 ;

	// -- KONIEC
	

	if(iloscserwerow > SERWEROW){
		server_print("------------------------------------");
		server_print("-----------ZA DUZO SERWEROW---------");
		server_print("------------------------------------");
		set_fail_state("Za duzo serwerow");
	}
	
	
	register_plugin("MINI REDIRECT", "0.1", "kyku")
	
	
	set_task(1.0, "query_servers")
	set_task(555.0, "spamuj", 0, _, _, "b"); // co 555 sekund <img src='https://amxx.pl/public/style_emoticons/<#EMO_DIR#>/wink.gif' class='bbc_emoticon' alt=';)' />
	register_clcmd("say /serwer","serwery")
	register_clcmd("say /serwery","serwery")
	register_clcmd("say /server","serwery")
	register_clcmd("say /servery","serwery")
	
	
}

public spamuj()
{
	
	ColorChat(0, GREEN, "%s^x01 By przelaczac sie pomiedzy serwerami wpisz:^x03 /serwery", TAG);
}


public serwery(id)
{
	query_servers()
	for(new i; i<=iloscserwerow; i++){
		if(equal(MAPA[i], "") || equal(MAPA[i], " ")|| equal(MAPA[i], "Serwer OFFLINE")){
			format(MAPA[i], 32, "Serwer OFFLINE");
			
		} else if(contain(MAPA[i], "Mapa:") == -1){
			
			format(MAPA[i], 63, "Mapa: %s", MAPA[i]);
			
		}
	}
	new menu = menu_create("Menu serwerow", "serweryh")
	new serv[256];
	new num=0;
	
	// ------ TWOJE SERWERY ------
	
	
	format(serv, 255, "%s[Ganiany] Mystic ^t(%d/%d)^t %s", !equal(MAPA[++num], "Serwer OFFLINE")?"":"d", GRACZY[num],GRACZYMAX[num], MAPA[num])
	menu_additem(menu, serv, "1", 0)
	
	format(serv, 255, "%s[PokeMod] Mystic ^t(%d/%d)^t %s", !equal(MAPA[++num], "Serwer OFFLINE")?"":"d", GRACZY[num],GRACZYMAX[num], MAPA[num])
	menu_additem(menu, serv, "2", 0)
	
	format(serv, 255, "%s[EasyBlock] Mystic ^t(%d/%d)^t %s", !equal(MAPA[++num], "Serwer OFFLINE")?"":"d", GRACZY[num],GRACZYMAX[num], MAPA[num])
	menu_additem(menu, serv, "3", 0)

	format(serv, 255, "%s[DiabloMod] Mystic ^t(%d/%d)^t %s", !equal(MAPA[++num], "Serwer OFFLINE")?"":"d", GRACZY[num],GRACZYMAX[num], MAPA[num])
	menu_additem(menu, serv, "4", 0)

	format(serv, 255, "%s[Surf] Mystic ^t(%d/%d)^t %s", !equal(MAPA[++num], "Serwer OFFLINE")?"":"d", GRACZY[num],GRACZYMAX[num], MAPA[num])
	menu_additem(menu, serv, "5", 0)

	
	// ------ KONIEC ------
	
	
	menu_setprop(menu, MPROP_EXIT, MEXIT_ALL)
	menu_display(id, menu, 0)
}

public serweryh(id, menu, item)
{
	if (item == MENU_EXIT)
	{
		return PLUGIN_HANDLED
	}
	
	new data[8], iName[64], name[34]
	get_user_name(id, name, 33)
	new access, callback
	menu_item_getinfo(menu, item, access, data,7, iName, 63, callback)
	new key = str_to_num(data)
	if(GRACZY[key-1] > 0 && GRACZY[key-1] == GRACZYMAX[key-1]){
		ColorChat(id, GREEN, "%s^x01 Serwer jest pelny.", TAG);
		return PLUGIN_HANDLED	
	}
	if(equal(MAPA[key-1], "Serwer OFFLINE")){
		ColorChat(id, GREEN, "%s^x01 Serwer jest wylaczony.", TAG);
		return PLUGIN_HANDLED
	}
	
	
	switch(key)
	{
		// ------ TWOJE SERWERY ------
		
		
		case 1:{
		ColorChat(0, GREEN, "%s^x01 Gracz: %s przeszedl na serwer: Ganiany",TAG, name);
		client_cmd(id, "Connect %s:%d", IP[key-1], PORT[key-1] )
		menu_destroy(menu)
		return PLUGIN_HANDLED
		}
		case 2:{
		ColorChat(0, GREEN, "%s^x01 Gracz: %s przeszedl na serwer: PokeMod",TAG, name);
		client_cmd(id, "password poke;Connect %s:%d", IP[key-1], PORT[key-1] )
		menu_destroy(menu)
		return PLUGIN_HANDLED	
		}
		case 3:{
		ColorChat(0, GREEN, "%s^x01 Gracz: %s przeszedl na serwer: EasyBlock",TAG, name);
		client_cmd(id, "password eb;Connect %s:%d", IP[key-1], PORT[key-1] )
		menu_destroy(menu)
		return PLUGIN_HANDLED
		}
		case 4:{
		ColorChat(0, GREEN, "%s^x01 Gracz: %s przeszedl na serwer: DiabloMod",TAG, name);
		client_cmd(id, "password diablo;Connect %s:%d", IP[key-1], PORT[key-1] )
		menu_destroy(menu)
		return PLUGIN_HANDLED
		}
		case 5:{
		ColorChat(0, GREEN, "%s^x01 Gracz: %s przeszedl na serwer: Surf",TAG, name);
		client_cmd(id, "password surf;Connect %s:%d", IP[key-1], PORT[key-1] )
		menu_destroy(menu)
		return PLUGIN_HANDLED
		}
		
		// ------ KONIEC ------
		
		
		
	}
	menu_destroy(menu)
	return PLUGIN_HANDLED
}







public receive_serverquery_answers()// ---- Z PLUGINU XREDIRECT [Edit]
{
	for(new num; num<=iloscserwerow; num++){
	new sRcvBuf[1400]
	new nRcvLen
	new nRecvCount
	new sMap[30]

	nRecvCount = 0
	new nCmdBackup = 2

	new nSocket = SOCKETS[num];

	while (socket_change(nSocket, 1) && (nRecvCount <= nCmdBackup))
	{


				nRecvCount++
				setc(sRcvBuf, 1400, 0);

				nRcvLen = socket_recv(nSocket, sRcvBuf, 1400)

			
				if (nRcvLen > 5)
				{
					new aIndexes[100]
					if (equal(sRcvBuf, {-1,-1,-1,-1}, 4))
					{
						if (sRcvBuf[4] == 'm')
						{
							
							index_create(sRcvBuf, nRcvLen, "41sssss111111[ss14411]11", aIndexes)
							copyc(sMap, 30- 1, sRcvBuf[aIndexes[4]], 0)
							MAPA[num] = sMap
			
							GRACZY[num] = index_get_byte(sRcvBuf, aIndexes[7])
							GRACZYMAX[num] = index_get_byte(sRcvBuf, aIndexes[8])
							
						}
						else if (sRcvBuf[4] == 'I') 
						{
							
							index_create(sRcvBuf, nRcvLen, "411ssss21111111s", aIndexes)
							copyc(sMap, 30- 1, sRcvBuf[aIndexes[4]], 0)
							MAPA[num] = sMap
						
							GRACZY[num] = index_get_byte(sRcvBuf, aIndexes[8])
							GRACZYMAX[num] = index_get_byte(sRcvBuf, aIndexes[9])
							
						}
					}
				}
			}
	}
	return PLUGIN_HANDLED
}

public index_get_byte(sData[1400], nIndex)// ---- Z PLUGINU XREDIRECT
{
	return sData[nIndex]
}


public query_servers()// ---- Z PLUGINU XREDIRECT [Edit]
{
	for(new num; num<=iloscserwerow;  num++){
	new nCheckMethod = 2
	if (nCheckMethod == 0)
		return PLUGIN_HANDLED
	new socket_error
	new sOldRequest[12]
	new sNewRequest[26]

	if (nCheckMethod == 1)
	{
		// we don't know what server it is so send both old and new style query
		format(sOldRequest, 8, "%c%c%c%c%s", 255, 255, 255, 255, "ping")
		format(sNewRequest, 5, "%c%c%c%c%c", 255, 255, 255, 255, 105)
	}
	else if (nCheckMethod == 2)
	{
		// we don't know what server it is so send both old and new style query
		format(sOldRequest, 11, "%c%c%c%c%s", 255, 255, 255, 255, "details")
		format(sNewRequest, 25, "%c%c%c%c%c%s%c", 255, 255, 255, 255, 84, "Source Engine Query", 0)
	}

	new nServerCount = 0
	new nQuerySocket
	new nCmdBackup
	new nSendCount
	
	
	nQuerySocket = SOCKETS[num]
	
	if (nQuerySocket > 0)
	{


				new sEmptyBufferDummy[512]
				new nEndlessProtection = 0
				while ((socket_change(nQuerySocket, 1)) && (nEndlessProtection < 500))
				{

					socket_recv(nQuerySocket, sEmptyBufferDummy, 512)
					nEndlessProtection++
				}
				if (nEndlessProtection >= 500)
				{
					socket_close(nQuerySocket)
					//log_amx("WARNING: endless protection triggered for socket %i (%s)", nQuerySocket, g_saServerNames)
				}
				
			}
			else
			{
				
				if (!equal(IP[num], "")){
					nQuerySocket = socket_open(IP[num], PORT[num], SOCKET_UDP, socket_error)
				} 
				
			}
			
	if ((nQuerySocket > 0) && (socket_error == 0))
			{
				
				SOCKETS[num] = nQuerySocket
				nCmdBackup = 2
				if (nCheckMethod == 1)
				{
					for (nSendCount = -1; nSendCount < nCmdBackup; nSendCount++)
						socket_send2(nQuerySocket, sOldRequest, 8)
					for (nSendCount = -1; nSendCount < nCmdBackup; nSendCount++)
						socket_send2(nQuerySocket, sNewRequest, 5)
				}
				else if (nCheckMethod == 2)
				{
					
					for (nSendCount = -1; nSendCount < nCmdBackup; nSendCount++)
						socket_send2(nQuerySocket, sOldRequest, 11)
					for (nSendCount = -1; nSendCount < nCmdBackup; nSendCount++)
						socket_send2(nQuerySocket, sNewRequest, 25)
				}
			}
	else
			{
				SOCKETS[num] = 0
				log_amx("%L", LANG_SERVER, "MSG_SOCKET_ERROR", socket_error, nServerCount)
			}
	}

	set_task(1.0, "receive_serverquery_answers", 21934808)
	return PLUGIN_HANDLED
}



public index_create(sData[1400], nDataLen, sFormatString[100], aIndexes[100])// ---- Z PLUGINU XREDIRECT [Edit]
{

	new nFormatPos = 0 
	new nIndexPos = 0 
	new nDataIndex = 0 
	new nFormatPosMax = strlen(sFormatString)
	while ((nIndexPos < nFormatPosMax) && (nDataIndex <= nDataLen))
	{
		switch (sFormatString[nFormatPos])
		{
			case '1': 
			{
				aIndexes[nIndexPos] = nDataIndex
				nDataIndex++
				nIndexPos++
			}
			case '2':
			{
			
				aIndexes[nIndexPos] = nDataIndex
				nDataIndex += 2
				nIndexPos++
			}
			case '4':
			{
				
				aIndexes[nIndexPos] = nDataIndex
				nDataIndex += 4
				nIndexPos++
			}
			case 's': 
			{
				
				aIndexes[nIndexPos] = nDataIndex
				do { nDataIndex++; } while ((sData[nDataIndex] != 0) && (nDataIndex < nDataLen)) // find the end of the string by searching a 0 character
				nDataIndex++
				nIndexPos++
			}
			case '[':
			{
				
				if (sData[nDataIndex] != 1) // skip options
				{
					do { nFormatPos++; } while ((sFormatString[nFormatPos] != ']') && (nFormatPos < nFormatPosMax))
					
				}
				else
					
				nDataIndex++
				nIndexPos++
			}
			case ']': 
			{
				
				nDataIndex++
			}
			default:
				nDataIndex++
		}
		nFormatPos++
	}

	return nIndexPos
}

  • +
  • -
  • 0

#9 kasza

    Godlike

  • Autor tematu
  • Przyjaciel

Reputacja: 890
Czempion

  • Postów:4 102
  • GG:
  • Steam:steam
  • Imię:Imię
  • Lokalizacja:Lokalizacja
Offline

Napisano 15.10.2009 21:42

dzięki kyku, mam juz Xredirect i na razie dziala ;P
Temat off
  • +
  • -
  • 0

Skillownia.com

 

 #3 [UWC3NG] Skillownia.com - 213.189.52.253:27301

 





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

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