#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
}
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.
|
Guest Message by DevFuse
Ilosc graczy
Temat rozp.
kasza
, 01.09.2009 16:27
8 odpowiedzi w tym temacie
#1
Napisano 01.09.2009 16:27
Mozna dodac w tym pluginie opcje aby pokazywala ilosc graczy na serwerze ??
#2
Napisano 01.09.2009 19:22
bez sockets nie
#3
Napisano 01.09.2009 19:28
a zrobil byś?
#4
Napisano 01.09.2009 20:37
widzialem cos podobnego w xRedirect czy jakos tak wyciagnij z tamtego
#5
Napisano 01.09.2009 20:41
Żeby nie było więcej o tym mowy - kasza nie zna się na PAWNIE
#6
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
@up
cos pomoge
#7
Napisano 01.09.2009 21:16
kyku, nic nie wymysle wybacz nie jak jak pisal abes
mial dopisac ze kompletne 0kasza nie zna się na PAWNIE
#8
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 }
#9
Napisano 15.10.2009 21:42
dzięki kyku, mam juz Xredirect i na razie dziala
Temat off
Temat off
Użytkownicy przeglądający ten temat: 0
0 użytkowników, 0 gości, 0 anonimowych