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
Modyfikacja

"Gracz został przekierowany" - info w say

Modyfikacja

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

#1 pluser_pl

    Banned

  • Zbanowany

Reputacja: 0
Nowy

  • Postów:10
  • Imię:Łukasz
  • Lokalizacja:Śląsk Opolski
Offline

Napisano 22.07.2012 15:15

Witam. Mam bardzo prosty plugin, który po wpisaniu /ffa przekierowuje na serwer ffa, tak cała lista moich serwerów. Chce dodać do niego info " Gracz został przekierowany na "serwer". Wpisz "/serwer aby do niego dołączyć. Taka funkcja jest w xredirect, ja jej potrzebuję tylko bez polecenia "follow", tylko info o tym że ktoś przeszedł tam.

Moje .sma:

/* By pluser */

#include <amxmodx>
#include <amxmisc>

#define PLUGIN "Nasze serwery"
#define VERSION "1.0"
#define AUTHOR "pluser"

public plugin_init()
{

register_plugin(PLUGIN, VERSION, AUTHOR)
register_clcmd("say /ffa", "ffa")
register_clcmd("say /db", "db")
register_clcmd("say /kz", "kz")
register_clcmd("say /dd2", "dd2")
register_clcmd("say /aaf", "aaf")
}

public ffa(id)


{
client_cmd(id, " Connect 37.123.206.28:27015");
return PLUGIN_HANDLED


}
public db(id)


{
client_cmd(id, " Connect 195.117.171.157:27025");
return PLUGIN_HANDLED


}
public kz(id)


{
client_cmd(id, " Connect 195.117.171.157:27045");
return PLUGIN_HANDLED


}
public dd2(id)


{
client_cmd(id, " Connect 193.33.176.21:27015");
return PLUGIN_HANDLED


}
public aaf(id)


{
client_cmd(id, " Connect 195.117.171.157:27035");
return PLUGIN_HANDLED


}



Wycinek .sma xredirect , w którym jest ta funkcja:
public redirect(id, nServer, bCanOther, bCanDrop, bIgnoreSource)
{

new nForwardServer = -1
new bool:bFoundServer = false
new nRedirType
if (nServer == -1)
nRedirType = 1
else
nRedirType = 2

new nSourceServer

if (bIgnoreSource)
{
nSourceServer = -1
}
else
{
new sSourceServer[3]
get_user_info(id, "xredir", sSourceServer, 2)
if (!is_str_num(sSourceServer))
nSourceServer = -1
else
nSourceServer = str_to_num(sSourceServer)
if ((nSourceServer < 0) || (nSourceServer >= g_nServerCount))
nSourceServer = -1
}

if ((can_redirect_player(nServer, id, nRedirType, false) > 0) || (nServer == -1))
{
if (!bCanOther)
{
if (bCanDrop)
{
client_cmd(id, "echo %s: %L", PLUGIN_TAG, id, "MSG_NO_REDIRECT_SERVER")
client_cmd(id, "disconnect")
}
return false
}

nForwardServer = 0

// make sure at least one valid server exists or the second loop could be endless
while (nForwardServer < g_nServerCount)
{
if ((can_redirect_player(nForwardServer, id, nRedirType, false) == 0) && (nForwardServer != nSourceServer))
{
bFoundServer = true
break
}
nForwardServer++
}
new nAutoMode = get_pcvar_num(cvar_auto)
if ((nAutoMode == 1) || (nAutoMode == 3) || (nAutoMode == 5)) // redirect to random server
nForwardServer = -1
}
else
{
nForwardServer = nServer
bFoundServer = true
}

if (bFoundServer)
{
while (nForwardServer == -1)
{
nForwardServer = random_num(0, g_nServerCount - 1)
if ((can_redirect_player(nForwardServer, id, nRedirType, false) > 0) || ((nForwardServer == nSourceServer)))
nForwardServer = -1
}

new sUserNick[MAX_NAME_LEN]
get_user_name(id, sUserNick, MAX_NAME_LEN - 1)
if (!equal(g_saServerPasswords[nForwardServer], "")) // set the user's server connect password if needed
client_cmd(id, "setinfo ^"password^" ^"%s^"", g_saServerPasswords[nForwardServer])
client_cmd(id, "setinfo ^"xredir^" ^"%d^"", g_nOwnServer)

new sCheckAddress[MAX_IP_LEN]
get_user_ip(id, sCheckAddress, MAX_IP_LEN - 1, 1)
new sFullAddress[MAX_SERVERADDRESS_LEN]
if (is_local_address(sCheckAddress) && (!equal(g_saServerLocalAddresses[nForwardServer], "")))
format(sFullAddress, MAX_SERVERADDRESS_LEN - 1, "%s:%d", g_saServerLocalAddresses[nForwardServer], g_naServerPorts[nForwardServer])
else
format(sFullAddress, MAX_SERVERADDRESS_LEN - 1, "%s:%d", g_saServerAddresses[nForwardServer], g_naServerPorts[nForwardServer])
if (nRedirType == 1)
client_cmd(id, "echo %s: %L", PLUGIN_TAG, id, "MSG_SERVER_FULL_REDIRECTING", g_saServerNames[nForwardServer])
client_cmd(id, "Connect %s", sFullAddress)


if (get_pcvar_num(cvar_show) == 1)
{
new nPlayers[MAX_PLAYERS]
new nPlayerNum, nPlayerCount, nCurrentPlayer
get_players(nPlayers, nPlayerNum, "c")
for (nPlayerCount = 0; nPlayerCount < nPlayerNum; nPlayerCount++)
{
nCurrentPlayer = nPlayers[nPlayerCount]
if (get_pcvar_num(cvar_follow) == 1)
client_print(nCurrentPlayer, print_chat, "%s: %L - %L", PLUGIN_TAG, nCurrentPlayer, "MSG_REDIRECTED", sUserNick, g_saServerNames[nForwardServer], nCurrentPlayer, "MSG_FOLLOW")
else
client_print(nCurrentPlayer, print_chat, "%s: %L", PLUGIN_TAG, nCurrentPlayer, "MSG_REDIRECTED", sUserNick, g_saServerNames[nForwardServer])
}
}

g_nLastRedirectServer = nForwardServer
g_sLastRedirectName = sUserNick
}
else if (bCanDrop)
{
client_cmd(id, "echo %s: %L", PLUGIN_TAG, id, "MSG_NO_REDIRECT_SERVER")
client_cmd(id, "disconnect")
}
return true
}


Dokładnie:
if (get_pcvar_num(cvar_show) == 1)
{
new nPlayers[MAX_PLAYERS]
new nPlayerNum, nPlayerCount, nCurrentPlayer
get_players(nPlayers, nPlayerNum, "c")
for (nPlayerCount = 0; nPlayerCount < nPlayerNum; nPlayerCount++)
{
nCurrentPlayer = nPlayers[nPlayerCount]
if (get_pcvar_num(cvar_follow) == 1)
client_print(nCurrentPlayer, print_chat, "%s: %L - %L", PLUGIN_TAG, nCurrentPlayer, "MSG_REDIRECTED", sUserNick, g_saServerNames[nForwardServer], nCurrentPlayer, "MSG_FOLLOW")
else
client_print(nCurrentPlayer, print_chat, "%s: %L", PLUGIN_TAG, nCurrentPlayer, "MSG_REDIRECTED", sUserNick, g_saServerNames[nForwardServer])
}
}



MSG_REDIRECTED = Gracz '%s' przekierowuje sie na %s

Jeśli można, to niech to jest użyte bez słownika, tylko bezpośrednio.


Dorzucam .sma xredirect i wycinek z tego pluginu w którym występuje ta funkcja.
Będę wdzięczny za pomoc, dziękuje.

Załączone pliki



#2 pluser_pl

    Banned

  • Autor tematu
  • Zbanowany

Reputacja: 0
Nowy

  • Postów:10
  • Imię:Łukasz
  • Lokalizacja:Śląsk Opolski
Offline

Napisano 23.07.2012 08:42

Dobra przerobiłem trochę xredirect, nie do końca jest tak jak chciałem, ale widać ciężko takie coś zrobić.

Można zamknąć.

#3 sebul

    Godlike

  • Przyjaciel

Reputacja: 2 035
Godlike

  • Postów:5 411
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:Ostrołęka
Offline

Napisano 23.07.2012 08:52

Wiadomość wygenerowana automatycznie


Ten temat został zamknięty przez moderatora.

Powód: Temat zamknięty na prośbę użytkownika.


Z pozdrowieniami,
Zespół AMXX.PL
  • +
  • -
  • 0

Posiadam TBM (inaczej PTB), które działa dużo lepiej niż zwykłe PTB, nawet na modach z lvlami. Zainteresowany? Proszę bardzo






Również z jednym lub większą ilością słów kluczowych: Modyfikacja

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

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