Skocz do zawartości

  • Zaloguj korzystając z Facebooka Zaloguj korzystając z Twittera Zaloguj przez Steam Zaloguj poprzez Google      Logowanie »   
  • Rejestracja

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

dodawanie tagga w nicku w zaleznosci od ip (pomoc)


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

#1 spider

    Początkujący

  • Użytkownik

Reputacja: 0
zer0.

  • Postów:13
  • Lokalizacja:Gdynia
Offline

Napisano 13.10.2008 12:27

potrzebuje plugina, ktory w zaleznosci od ip dodawalby do name gracza jakis tagg. np nick "gracz" zmienialby sie na "gracz[ds1]"

Nie potrafie pisac pluginów dlatego proszę o pomoc. Najlepiej jakby ktos napisal kawalek skryptu np tylko dla 2 roznych ip. z reszta mysle ze sobie poradze :)
  • +
  • -
  • 0

#2 grankee

    Godlike

  • Support Team

Reputacja: 507
Wszechwiedzący

  • Postów:1500
  • Lokalizacja:Radom
Offline

Napisano 13.10.2008 21:15

podaj dokładne info jakie ip (lub zakresy) miałyby nadawać jakie tagi.
  • +
  • -
  • 0

#3 spider

    Początkujący

  • Autor tematu
  • Użytkownik

Reputacja: 0
zer0.

  • Postów:13
  • Lokalizacja:Gdynia
Offline

Napisano 13.10.2008 22:15

w tej chwili nie potrafie powiedziec dokladnych zakresow ip i dal ktorych jaki tag. Serwer stoi w sieci lokalnej akademikow i chcialbym zeby do nazwy dodawany zostawal tag akademika. Kazdy akademik ma swoj oddzielny zakres ip. Wystarczy mi kawalek skryptu dla kilku przykladowych ip i powiedzmy tag dla ip z poza listy. Z reszta sobie CHYBA poradze :)
  • +
  • -
  • 0

#4 grankee

    Godlike

  • Support Team

Reputacja: 507
Wszechwiedzący

  • Postów:1500
  • Lokalizacja:Radom
Offline

Napisano 14.10.2008 00:10

jutro wieczorem dam edita i napisze jak to powinno wygladac
  • +
  • -
  • 0

#5 spider

    Początkujący

  • Autor tematu
  • Użytkownik

Reputacja: 0
zer0.

  • Postów:13
  • Lokalizacja:Gdynia
Offline

Napisano 15.10.2008 10:46

i co zpluginem, moge liczyc na pomoc? :)
  • +
  • -
  • 0

#6 mgr inż. Pavulon

    C35H60Br2N2O4

  • Przyjaciel

Reputacja: 1725
Godlike

  • Postów:6881
  • Steam:steam
  • Imię:Konrad
  • Lokalizacja:Koniecpol
Offline

Napisano 15.10.2008 11:09

i co zpluginem, moge liczyc na pomoc? :)

a nie widzisz co grankee Ci napisał ? Wczoraj napisał że jutro wieczorem da edita, czyli czekaj jak powiedział.
  • +
  • -
  • 0

#7 spider

    Początkujący

  • Autor tematu
  • Użytkownik

Reputacja: 0
zer0.

  • Postów:13
  • Lokalizacja:Gdynia
Offline

Napisano 15.10.2008 12:13

napisal to w nocy z 13/14 czyli spodziewalem sie odpowiedzi 14 wieczorem (czyli wczoraj), dlatego zapytalem jeszcze raz. No ale czekam dalej ;-)
  • +
  • -
  • 0

#8 grankee

    Godlike

  • Support Team

Reputacja: 507
Wszechwiedzący

  • Postów:1500
  • Lokalizacja:Radom
Offline

Napisano 15.10.2008 17:39

podsumujmy, 1:30 to już 14.10.08, jutro (od tego dnia) to 15.10.08, zaraz dam

[ Dodano: 15-10-2008, 20:40 ]
powinno być ok, ale nie sprawdzałem, bo mecz xP
#include <amxmodx>

new g_gracz[32]
// TUTAJ DODASZ ZAKRES IP, NA KTÓRYM MA BYĆ WYMUSZANY TAG, ORAZ TAG.
new ipki[4][16]=//16 znakow to maksymalna dlugosc ip, nie ma potrzeby zmieniać
{
	"123.123.123.123",
	"123.213.213",
	"123.123",
	"123"
}

new tag[4][16]=//16 znakow to maksymalna dlugosc taga, w przypadku dłuższego należy zmienić tą liczbę na ilość znaków taga
{
	"Tag dla 1 ip",
	"Tag dla 2 ip",
	"Tag dla 3 ip",
	"Tag dla 4 ip"
}
// KOD


public plugin_init() 
{
	register_plugin("IP Tags","1.0","grankee")
}
public client_connect(id)
{
	g_gracz[id]=-1
	new ip[16],oldname[32],newname[48],i=0
	get_user_ip(id,ip,15,1)
	while(ipki[i][0])
	{
		if (equali(ip,ipki[i]))
		{
			get_user_name(id,oldname,31)
			format(newname,47,"%s%s",tag[i],oldname)
			set_user_info(id,"name",newname)
			g_gracz[id]=i
			return PLUGIN_CONTINUE
		}
	}
	return PLUGIN_CONTINUE
}
public client_disconnect(id)
{
	g_gracz[id]= -1
}
public client_infochanged(id)
{
	if(g_gracz[id]!=-1)
	{
		new newname[32],oldname[32],lastname[48]
		get_user_info(id, "name", newname,31)
		get_user_name(id,oldname,31)
		if(!is_user_connected(id) || is_user_bot(id)) 
			return PLUGIN_CONTINUE
		if(!equali(newname, oldname))
		{
			if(equali(newname,tag[g_gracz[id]]))
				return PLUGIN_CONTINUE
				
			format(oldname,47,"%s%s",tag[g_gracz[id]],newname)
			set_user_info(id,"name",lastname)
			return PLUGIN_HANDLED
		}
	}
	return PLUGIN_CONTINUE
}

  • +
  • -
  • 0

#9 spider

    Początkujący

  • Autor tematu
  • Użytkownik

Reputacja: 0
zer0.

  • Postów:13
  • Lokalizacja:Gdynia
Offline

Napisano 15.10.2008 20:26

dzięki za plugina :) skompilowal sie bez problemu ale po wrzuceniu na serwer, serwer sie wywala, tzn tak jakby byl wylaczony znika z listy serwerow, a przez konsole nic nie moge z nim zrobic tylko wylaczyc sie da, jakas podpowiedz co moze byc nie tak?
  • +
  • -
  • 0

#10 grankee

    Godlike

  • Support Team

Reputacja: 507
Wszechwiedzący

  • Postów:1500
  • Lokalizacja:Radom
Offline

Napisano 16.10.2008 19:59

logi?
  • +
  • -
  • 0

#11 spider

    Początkujący

  • Autor tematu
  • Użytkownik

Reputacja: 0
zer0.

  • Postów:13
  • Lokalizacja:Gdynia
Offline

Napisano 16.10.2008 21:23

sorry ze zapytam ale z czego logi? :P w konsoli serwera nic sie nie pojawia
  • +
  • -
  • 0

#12 Gość__*

  • Gość

Reputacja: 0

Offline

Napisano 16.10.2008 21:24

http://amxx.pl/viewtopic.php?t=2106

#13 spider

    Początkujący

  • Autor tematu
  • Użytkownik

Reputacja: 0
zer0.

  • Postów:13
  • Lokalizacja:Gdynia
Offline

Napisano 16.10.2008 21:38

no tak, nie pomyslalem o plikach

wpisy z momentu rozpoczecia dzialania plgina

amxmodx/logs/

L 10/15/2008 - 21:26:00: [adminchat.amxx] Chat: "spider<175><STEAM_ID_LAN><>" tsay "restart mapy i test nowego plugina"
L 10/15/2008 - 21:26:16: [admincmd.amxx] Cmd: "spider<175><STEAM_ID_LAN><>" changelevel "mini_dust2"
L 10/15/2008 - 21:26:18: -------- Mapchange to mini_dust2 --------
L 10/15/2008 - 21:28:38: -------- Mapchange to de_dust2 --------
L 10/15/2008 - 21:29:49: -------- Mapchange to de_dust2 --------

dalej wszystko ok, po restarcie serwera i wylaczeniu plugina wszystko wrocilo do normy

jak widac nie ma przydatnych informacji
  • +
  • -
  • 0

#14 Miczu

    Godlike

  • Przyjaciel

Reputacja: 646
Wszechmogący

  • Postów:2862
Offline

Napisano 16.10.2008 22:16

public client_connect(id) 

{ 

    g_gracz[id]=-1 

    new ip[16],oldname[32],newname[48],i=0 

    get_user_ip(id,ip,15,1) 

    while(ipki[i][0]) 

    { 

        if (equali(ip,ipki[i])) 

        { 

            get_user_name(id,oldname,31) 

            format(newname,47,"%s%s",tag[i],oldname) 

            set_user_info(id,"name",newname) 

            g_gracz[id]=i 

            return PLUGIN_CONTINUE 

        } 

    } 

    return PLUGIN_CONTINUE 

}
nie widze i++
  • +
  • -
  • 0

#15 grankee

    Godlike

  • Support Team

Reputacja: 507
Wszechwiedzący

  • Postów:1500
  • Lokalizacja:Radom
Offline

Napisano 17.10.2008 07:34

Przepraszam, zachowałem się jak gówniarz, to się więcej nie powtórzy ;> ;> zmęczenie robi swoje.

#include <amxmodx>

new g_gracz[32]
// TUTAJ DODASZ ZAKRES IP, NA KTÓRYM MA BYĆ WYMUSZANY TAG, ORAZ TAG.
new ipki[][16]=//16 znakow to maksymalna dlugosc ip, nie ma potrzeby zmieniać
{
	"123.123.123.123",
	"123.213.213",
	"123.123",
	"123"
}

new tag[][16]=//16 znakow to maksymalna dlugosc taga, w przypadku dłuższego należy zmienić tą liczbę na ilość znaków taga
{
	"Tag dla 1 ip",
	"Tag dla 2 ip",
	"Tag dla 3 ip",
	"Tag dla 4 ip"
}
// KOD


public plugin_init() 
{
	register_plugin("IP Tags","1.0","grankee")
}
public client_connect(id)
{
	g_gracz[id]=-1
	new ip[16],oldname[32],newname[48],i=0
	get_user_ip(id,ip,15,1)
	while(ipki[i][0])
	{
		if (equali(ip,ipki[i]))
		{
			get_user_name(id,oldname,31)
			format(newname,47,"%s%s",tag[i],oldname)
			set_user_info(id,"name",newname)
			g_gracz[id]=i
			return PLUGIN_CONTINUE
		}
		i++
	}
	return PLUGIN_CONTINUE
}
public client_disconnect(id)
{
	g_gracz[id]= -1
}
public client_infochanged(id)
{
	if(g_gracz[id]!=-1)
	{
		new newname[32],oldname[32],lastname[48]
		get_user_info(id, "name", newname,31)
		get_user_name(id,oldname,31)
		if(!is_user_connected(id) || is_user_bot(id)) 
			return PLUGIN_CONTINUE
		if(!equali(newname, oldname))
		{
			if(equali(newname,tag[g_gracz[id]]))
				return PLUGIN_CONTINUE
				
			format(oldname,47,"%s%s",tag[g_gracz[id]],newname)
			set_user_info(id,"name",lastname)
			return PLUGIN_HANDLED
		}
	}
	return PLUGIN_CONTINUE
}

  • +
  • -
  • 0

#16 mgr inż. Pavulon

    C35H60Br2N2O4

  • Przyjaciel

Reputacja: 1725
Godlike

  • Postów:6881
  • Steam:steam
  • Imię:Konrad
  • Lokalizacja:Koniecpol
Offline

Napisano 17.10.2008 09:53

if(equali(newname,tag[g_gracz[id]]))
                return PLUGIN_CONTINUE
a nie powinno być:
if(containi(newname, tag[g_gracz[id])!=-1)
                return PLUGIN_CONTINUE
Tak samo z
if (equali(ip,ipki[i]))
IP to liczby i kropki więc wystarczy equal, ale jak w tablicy są
"123.123.123.123",
    "123.213.213",
    "123.123",
    "123"
to wypadało by dać jednak contain, żeby można dać na np podsieć całą.
  • +
  • -
  • 0

#17 spider

    Początkujący

  • Autor tematu
  • Użytkownik

Reputacja: 0
zer0.

  • Postów:13
  • Lokalizacja:Gdynia
Offline

Napisano 17.10.2008 10:29

po skompilowaniu i wrzuceniu na serwer dokladnie takiego plugina (ip ocenzurowalem)

                                                                     #include <amxmodx>

new g_gracz[32]
// TUTAJ DODASZ ZAKRES IP, NA KTÓRYM MA BYĆ WYMUSZANY TAG, ORAZ TAG.
new ipki[15][16]=//16 znakow to maksymalna dlugosc ip, nie ma potrzeby zmieniać
{
    "1xx.xx.xxx",
    "1xx.xx.xxx",
    "1xx.xx.xxx",
    "1xx.xx.xxx",
    "1xx.xx.xxx",
    "1xx.xx.xxx",
    "1xx.xx.xxx",
    "1xx.xx.xxx",
    "1xx.xx.xxx",
    "1xx.xx.xxx",
    "1xx.xx.xxx",
    "1xx.xx.xxx",
    "1xx.xx.xxx",
    "1xx.xx.xxx",
    "1xx.xx.xxx"

}

new tag[15][16]=//16 znakow to maksymalna dlugosc taga, w przypadku dłuższego należy zmienić tą liczbę na ilość znaków taga
{
    "[ds1]",
    "[ds2]",
    "[ds2]",
    "[ds2]",
    "[ds3]",
    "[ds4]",
    "[ds5]",
    "[ds6]",
    "[ds7]",
    "[ds8]",
    "[ds8]",
    "[ds9]",
    "[ds10]",
    "[ds11]",
    "[ds5l]"
}
// KOD


public plugin_init()
{
    register_plugin("IP Tags","1.0","grankee")
}
public client_connect(id)
{
    g_gracz[id]=-1
    new ip[16],oldname[32],newname[48],i=0
    get_user_ip(id,ip,15,1)
    while(ipki[i][0])
    {
        if (equali(ip,ipki[i]))
        {
            get_user_name(id,oldname,31)
            format(newname,47,"%s%s",tag[i],oldname)
            set_user_info(id,"name",newname)
            g_gracz[id]=i
            return PLUGIN_CONTINUE
        }
        i++
    }
    return PLUGIN_CONTINUE
}
public client_disconnect(id)
{
    g_gracz[id]= -1
}
public client_infochanged(id)
{
    if(g_gracz[id]!=-1)
    {
        new newname[32],oldname[32],lastname[48]
        get_user_info(id, "name", newname,31)
        get_user_name(id,oldname,31)
        if(!is_user_connected(id) || is_user_bot(id))
            return PLUGIN_CONTINUE
        if(!equali(newname, oldname))
        {
            if(equali(newname,tag[g_gracz[id]]))
                return PLUGIN_CONTINUE

            format(oldname,47,"%s%s",tag[g_gracz[id]],newname)
            set_user_info(id,"name",lastname)
            return PLUGIN_HANDLED
        }
    }
    return PLUGIN_CONTINUE
}


po wlaczeniu debugowania w logach pojawiaja sie takie bledy:

L 10/17/2008 - 11:01:49: Info (map "mini_dust2") (logfile "error_101708.log")
L 10/17/2008 - 11:01:49: [AMXX] Displaying debug trace (plugin "iptag.amxx")
L 10/17/2008 - 11:01:49: [AMXX] Run time error 4: index out of bounds 
L 10/17/2008 - 11:01:49: [AMXX]    [0] textL83qqj.sma::client_connect (line 55)

nick gracza sie nie zmienia

ale jesli zmienilem w tablicy ip na jedno konkretne ip to gracz po polaczeniu znika z listy graczy (z listy ktora jest pod Tabem) ale normalnie moze grac :P Tak jakby mial pusty string w nazwie (chociaz nawet ta pusta nazwa nie jest wyswietlana na liscie)

czekam na dalsze wskazowki :)
  • +
  • -
  • 0

#18 mgr inż. Pavulon

    C35H60Br2N2O4

  • Przyjaciel

Reputacja: 1725
Godlike

  • Postów:6881
  • Steam:steam
  • Imię:Konrad
  • Lokalizacja:Koniecpol
Offline

Napisano 17.10.2008 10:32

format(newname,47,"%s%s",tag[i],oldname)
            set_user_info(id,"name",newname)
Tylko że nick ma jednak ograniczenia chyba do 31 znaków
  • +
  • -
  • 0

#19 Miczu

    Godlike

  • Przyjaciel

Reputacja: 646
Wszechmogący

  • Postów:2862
Offline

Napisano 17.10.2008 15:56

Powinno byc
if (contain(ip,ipki[i])==0)
dzięki temu bedzie mozna zdefiniowac ze np. 82.(xxx.xxx.xxx) to np. NEOm a jak ktos ma 92.82.82.82 to to nie uzna za neo choc ma 82. w sobie.

======

public client_connect(id) 
{ 
    g_gracz[id]=-1 
    new ip[16],oldname[32],newname[48],i=0 
    get_user_ip(id,ip,15,1) 
    while(ipki[i][0]) 
    { 
        if (equali(ip,ipki[i])) 
        { 
            get_user_name(id,oldname,31) 
            format(newname,47,"%s%s",tag[i],oldname) 
            set_user_info(id,"name",newname) 
            g_gracz[id]=i 
            return PLUGIN_CONTINUE 
        } 
        i++ 
    } 
    return PLUGIN_CONTINUE 
}
nie ma ogranicznika dla 'i'. Czyli petla while bedzie chciala robic i do nieskonczonosci (lub trafienia na podane ip), a ze tablica ma ograniczony zakres, to predzej czy później wywali "index out of bounds"
  • +
  • -
  • 0

#20 grankee

    Godlike

  • Support Team

Reputacja: 507
Wszechwiedzący

  • Postów:1500
  • Lokalizacja:Radom
Offline

Napisano 17.10.2008 21:44

while(ipki[i][0])

warunek w nawiasie (ipki[i][0]) to pierwszy znak kolejnego stringa z tablicy ipki, jeśli kolejne ip nie istnieje to nie istnieje też jego pierwszy znak(który jest warunkiem) co za tym idzie pętla się już nie wykona, coś poknociłem?
  • +
  • -
  • 0




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

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