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

[ROZWIĄZANE] Prośba o modyfikacje ExpMod by GT Team

modyfikacja

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

#1 R1d4r

    Pomocny

  • Użytkownik

Reputacja: 9
Nowy

  • Postów:53
  • Lokalizacja:Polska
Offline

Napisano 28.08.2015 17:16

Proszę o zmodyfikowanie tego pluginu: http://amxx.pl/topic...mod-by-gt-team/

Chodzi głównie o public ZapiszExp(id) (linijka: 1904).

Opis bugu: Po zmianie nicku na serwerze, zapisuje exp na nowy nick i zostaje na starym.

Chciałbym, żeby nie było to możliwe. Próbowałem to zrobić, lecz za każdym razem wyskakiwały błędy.

Cel: Po zmianie nicku, exp się nie zapisuje.

 

Byłbym wdzięczny. Zamieszczam dodatkowo sma, bo je lekko edytowałem. ;-)

Załączone pliki


  • +
  • -
  • 0

#2 Sniper Elite

    Master

  • Power User

Reputacja: 176
Profesjonalista

  • Postów:981
  • GG:
  • Imię:Konrad
  • Lokalizacja:Skryptolandia
Offline

Napisano 29.08.2015 06:13

Nie zedytuję pluginu, ale na swoim ZM EXP miałem podobny problem i ten plugin rozwiązał sprawę:

 

#include <amxmodx>
#include <amxmisc>


public plugin_init() {
register_plugin("Blokada zmiany nicku","1.0","grankee")
register_message(get_user_msgid("SayText"), "message")
}
public message()
{
new arg[32]
get_msg_arg_string(2, arg, 31)
if(containi(arg,"name")!=-1)
{
return PLUGIN_HANDLED
}
return PLUGIN_CONTINUE
}
public client_infochanged(id)
{
new newname[32],oldname[32]
get_user_info(id, "name", newname,31)
get_user_name(id,oldname,31)
new userid2 = get_user_userid(id);
if(!is_user_connected(id) || is_user_bot(id)) return PLUGIN_CONTINUE
if(!equal(newname, oldname))
{
set_user_info(id,"name",oldname)
client_print(id , print_chat , "[AMXX] Zakaz zmiany nicka! Kick!")
server_cmd("kick #%d ^"%s^"",userid2,KICKREASON)
return PLUGIN_HANDLED
}
return PLUGIN_CONTINUE
}

Plugin zmienia nick na stary oraz wyrzuca gracza z serwera z odpowiednią informacją.

Dodatkowo umieść go zaraz pod pluganami od amxbansa w plugins.ini (nie wiem czy to coś daje, ale ja tak mam :) )

 


  • +
  • -
  • 0

Kontakt:

Steam: CSnajper

GG: 4394855

 

Na steam i GG pomagam wyłącznie odpłatnie.


#3 Linux'

    Pan Pomocny

  • Power User

Reputacja: 549
Wszechwiedzący

  • Postów:1 501
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:AmxMod i SourceMod
Offline

Napisano 29.08.2015 07:17

To co podal sniper rozwiaze sprawe. Lub jezeli nie chcesz blokowac zmiany, to wystarczy pobierac nick do zmiennej przy zmianie nicku gracza.
  • +
  • -
  • 0

b35020692_qesnxqa.png


#4 R1d4r

    Pomocny

  • Autor tematu
  • Użytkownik

Reputacja: 9
Nowy

  • Postów:53
  • Lokalizacja:Polska
Offline

Napisano 29.08.2015 13:41

Tak w ogóle to nie jest plugin grankee tylko F.E.A.R.&Many oraz przeróbki od RaYden z allied.

Na jakiej zasadzie miałbym zrobić pobieranie nicku?

Nie lepiej byłoby jakoś przypisać w putinie(putinserver), a potem nick jest nie ważny, bo przechowywany byłby do wyjścia gracza. Może tak by było lepiej? Czy może użyć public client_infochanged. Co byłoby lepsze?


Użytkownik Metal9712 edytował ten post 29.08.2015 13:41

  • +
  • -
  • 0

#5 R1d4r

    Pomocny

  • Autor tematu
  • Użytkownik

Reputacja: 9
Nowy

  • Postów:53
  • Lokalizacja:Polska
Offline

Napisano 30.08.2015 02:32

Prosiłbym o doklejenie tego postu do wyższego, ponieważ nie można go edytować, a szkoda. :/

 

Gdzieś na początku dodałem:

new infochanged[33];
new userid2[33];

Potem zmodyfikowałem trochę kod, a mianowicie wygląda teraz public ZapiszExp(id) tak:

///////////////////////////////////////////////////////
public message()
{
    new arg[32]
    get_msg_arg_string(2, arg, 31)
    if(containi(arg,"name")!=-1)
    {
        return PLUGIN_HANDLED
    }
    return PLUGIN_CONTINUE
}
public client_infochanged(id) {
	new newname[33],oldname[33]
	get_user_info(id, "name", newname,32)
	get_user_name(id,oldname,32)
	if(!is_user_connected(id) || is_user_bot(id))return PLUGIN_CONTINUE
	if(!equal(oldname, newname)) {
		infochanged[id] = 1;
		
	}
	return PLUGIN_CONTINUE
}
///////////////////////////////////////////////////////

public ZapiszExp(id)
{
	if(doswiadczenie_gracza[id] <= 250)
		return;
	new dane[256];
	if(infochanged[id] == 0) {
	get_user_name(id, nazwa_gracza, 32);
	plik = nvault_open("ExpMod")
	formatex(dane, 255, "%i %i %i %i %i %i %i %i %i %i %i %i %i %i %i %i %i %i %i %i %i %i", doswiadczenie_gracza[id], poziom_gracza[id], punkty_gracza[id],
	ultra_punkty_gracza[id], zycie_gracza[id], nowe_zycie_gracza[id], niewidzialnosc_gracza[id], nowa_niewidzialnosc_gracza[id], obrazenia_gracza[id],
	nowe_obrazenia_gracza[id], szybkosc_gracza[id], floatround(nowa_szybkosc_gracza[id]), grawitacja_gracza[id], floatround(nowa_grawitacja_gracza[id]),
	kasa_gracza[id], nowa_kasa_gracza[id], skoki_gracza[id], nowe_skoki_gracza[id], longjump_gracza[id], nowy_longujmp_gracza[id], longjump_s_czas[id], monety_gracza[id])
	
	nvault_set(plik, nazwa_gracza, dane)
	
	nvault_close(plik)
	} else if(infochanged[id] == 1) {
		userid2[id] = get_user_userid(id);
		ColorChat(id, GREEN, "%s^x01Zakaz zmiany nicku! Zostajesz wykopany z serwera.", prefix);
		server_cmd("kick #%d ^"%s^"",userid2[id],"Zmieniles nick");
	}
}

Moje pytanie jest takie. Co zrobiłem tutaj źle, że dopiero jak gracz zmieni nick i wejdzie ponownie na serwer dostaje kick'a z powodem "Zmieniłeś nick". Zapisuje EXP i wszystko działa jakby bez tego. Prosiłbym o naprowadzenie, bądź poprawienie tego kodu. Cały dzień się męczyłem z dodaniem do putinserver, aż w końcu pomyślałem, że zrobię to jeszcze inaczej. Po prostu zablokuję możliwość zapisu w momencie, kiedy gracz zmieni nick i go wyrzuci z serwera. Jest mały problem, to mi nie chce działać.  :mur:

 

W razie czego, zamieszczam .sma:

Załączony plik  expmod.sma   71,53 KB  54 Ilość pobrań
  expmod.amxx


Użytkownik Metal9712 edytował ten post 30.08.2015 02:43

  • +
  • -
  • 0

#6 Misiaczek ;c

    /dev/null

  • Moderator

Reputacja: 1 678
Godlike

  • Postów:2 496
  • GG:
  • Steam:steam
  • Imię:Michał
  • Lokalizacja:Halemba
Offline

Napisano 30.08.2015 20:06

Wiadomość wygenerowana automatycznie


Ten temat został zamknięty przez moderatora.

Powód: Pomoc udzielona

Jeśli się z tym nie zgadzasz, report.png raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.


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





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