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

Czy ktoś może napisać, przepisać plugin?Rangi!

help amxx rangi szybko

Najlepsza odpowiedź Linux', 04.07.2015 16:40

Sprawdz

#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <nvault>
#include <fakemeta>
#include <fun>

new nazwa_gracza[33][64];
new zabicia_gracza[33], ranga_gracza[33];
new vault;

new limit_rang = 5;
new nazwy_rang[][] =
{
	"Nazwa 1",
	"Nazwa 2",
	"Nazwa 3",
	"Nazwa 4",
	"Nazwa 5"
}
new zabicia_poziomu[] =
{
	0, 8, 20, 36, 60
}
public plugin_init()
{
	register_plugin("RangMod", "1.0", "Linux`");
	register_event("DeathMsg", "Death", "a");
	register_message(get_user_msgid("SayText"),"handleSayText");
	vault = nvault_open("RangMod");
}
public client_authorized(id)
{
	get_user_name(id, nazwa_gracza[id], 63);
	zabicia_gracza[id] = 0;
	ranga_gracza[id] = 0;
	WczytajDane(id);
}
public client_disconnect(id)
{
	ZapiszDane(id);
}
public Death()
{
	new killer = read_data(1);
	new id = read_data(2);
	if(!is_user_connected(killer) || !is_user_connected(id))
		return;

	if(get_user_team(id) != get_user_team(killer))
	{
		zabicia_gracza[killer]++;
		SprawdzPoziom(killer);
	}
}
public handleSayText(msgId,msgDest,msgEnt)
{
	new id = get_msg_arg_int(1);
	if(!is_user_connected(id))      
		return;

	new szTmp[256],szTmp2[256];
	get_msg_arg_string(2,szTmp, charsmax(szTmp));

	new szPrefix[64];
	formatex(szPrefix,charsmax(szPrefix),"^x04[%s]", nazwy_rang[ranga_gracza[id]]);
	if(!equal(szTmp,"#Cstrike_Chat_All"))
	{
		add(szTmp2,charsmax(szTmp2),szPrefix);
		add(szTmp2,charsmax(szTmp2)," ");
		add(szTmp2,charsmax(szTmp2),szTmp);
	}
	else
	{
		add(szTmp2,charsmax(szTmp2),szPrefix);
		add(szTmp2,charsmax(szTmp2),"^x03 %s1^x01 :  %s2");
	}

	set_msg_arg_string(2,szTmp2);
}
public SprawdzPoziom(id)
{
	while(zabicia_gracza[id] >= zabicia_poziomu[ranga_gracza[id]] && ranga_gracza[id] < limit_rang)
		ranga_gracza[id]++;

	while(zabicia_gracza[id] < zabicia_poziomu[ranga_gracza[id]-1])
		ranga_gracza[id]--;

	if(ranga_gracza[id] > limit_rang)
		ranga_gracza[id] = limit_rang;

	ZapiszDane(id);
}
public ZapiszDane(id)
{
	new vaultkey[128], vaultdata[256], identyfikator[64];
	format(vaultdata, charsmax(vaultdata), "#%i#%i", zabicia_gracza[id], ranga_gracza[id]);
	format(vaultkey, charsmax(vaultkey), "%s-rang", identyfikator, copy(identyfikator, charsmax(identyfikator), nazwa_gracza[id]));
	nvault_set(vault, vaultkey, vaultdata);
}
public WczytajDane(id)
{
	new vaultkey[128],vaultdata[256], identyfikator[64];
	format(vaultkey, charsmax(vaultkey),"%s-rang", identyfikator, copy(identyfikator, charsmax(identyfikator), nazwa_gracza[id]));
	if(!nvault_get(vault, vaultkey, vaultdata, 255))
	{
		format(vaultkey, charsmax(vaultkey), "%s-rang", nazwa_gracza[id]);
		nvault_get(vault, vaultkey, vaultdata, 255);
	}

	replace_all(vaultdata, 255, "#", " ");	 
	new danegracza[2][32];
	parse(vaultdata, danegracza[0], 31, danegracza[1], 31);
	zabicia_gracza[id] = str_to_num(danegracza[0]);
	ranga_gracza[id] = str_to_num(danegracza[1]);
}

Kod wyciagniety z starego coda wiec i ogolna zasada dodawania rang jest taka sama. Jesli chcesz dodac nowa range to dodajesz ja w zmiennej "nazwy_rang" i ustawiasz po ilu zabojstwach ma byc dostepna w zmiennej "zabicia_gracza". Po dodaniu nowej rangi musisz rozszerzyc maksymalny limit rang. To tyle w zasadzie.

 

 

Przejdź do postu


  • Nie możesz napisać tematu
  • Zaloguj się, aby dodać odpowiedź
7 odpowiedzi w tym temacie

#1 Zymlok

    Pomocny

  • Użytkownik

Reputacja: 8
Nowy

  • Postów:55
  • Imię:Szymon
  • Lokalizacja:Daaleko
Offline

Napisano 04.07.2015 07:43

Hej!

Mam pytanie połączone z prośbą do Was wszystkich. Czy ktoś mogłby napisać lub przepisać jakiś plugin, tak aby:

- Były rangi za zabójstwa (podobnie jak w bf2 )

- Rangi były nazwane jak w cs:go 

- Spadek rangi (np. co 100 śmierci ranga w dół! - NIE JEST TO KONIECZNE )

- Możliwość edycji co ile KILLI wyższa ranga.

Jeżeli ktoś mogłby napisać lub przerobić jakiś plugin z rangami to naprawdę postaram się odwdzięczyć!

Za każdą formę pomocy daje + ;)

Dziękuję i pozdrawiam!


  • +
  • -
  • 0

Pomogłem? Daj + ;)

Zapraszam na serwer Only AWP

Ip: 193.33.177.130:27350

 


#2 Zymlok

    Pomocny

  • Autor tematu
  • Użytkownik

Reputacja: 8
Nowy

  • Postów:55
  • Imię:Szymon
  • Lokalizacja:Daaleko
Offline

Napisano 04.07.2015 07:45

Jeżeli to nie ten dział to proszę o link do działu ;) Nie mogłem znaleść...


  • +
  • -
  • 0

Pomogłem? Daj + ;)

Zapraszam na serwer Only AWP

Ip: 193.33.177.130:27350

 


#3 skorpius

    Wszechpomocny

  • Użytkownik

Reputacja: 18
Początkujący

  • Postów:322
  • Imię:Damian
  • Lokalizacja:Dębica
Offline

Napisano 04.07.2015 08:21

Say ma pisać ranga (prefix) czy w HUD?
  • +
  • -
  • 0

4680134.png


#4 Zymlok

    Pomocny

  • Autor tematu
  • Użytkownik

Reputacja: 8
Nowy

  • Postów:55
  • Imię:Szymon
  • Lokalizacja:Daaleko
Offline

Napisano 04.07.2015 14:14

Prefix ^^
  • +
  • -
  • 0

Pomogłem? Daj + ;)

Zapraszam na serwer Only AWP

Ip: 193.33.177.130:27350

 


#5 Linux'

    Pan Pomocny

  • Power User

Reputacja: 549
Wszechwiedzący

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

Napisano 04.07.2015 14:25

1. Rangi maja sie zapisywac czy po ponownym wejsciu gracza ma miec podstawowa?

2. Napisz te nazwy wszystkich rang chyba, ze sobie pozniej zedytujesz.

3. Wymagana ilosc zabojstw co kazda range ma wzrastac czy ma byc caly czas jedna stala suma?


  • +
  • -
  • 0

b35020692_qesnxqa.png


#6 Zymlok

    Pomocny

  • Autor tematu
  • Użytkownik

Reputacja: 8
Nowy

  • Postów:55
  • Imię:Szymon
  • Lokalizacja:Daaleko
Offline

Napisano 04.07.2015 14:46

Zapisywać!
2. Maja sie zwiekszac
3. Nazwy ci podam za 30 min
  • +
  • -
  • 0

Pomogłem? Daj + ;)

Zapraszam na serwer Only AWP

Ip: 193.33.177.130:27350

 


#7 Linux'

    Pan Pomocny

  • Power User

Reputacja: 549
Wszechwiedzący

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

Napisano 04.07.2015 16:40   Najlepsza odpowiedź

Sprawdz

#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <nvault>
#include <fakemeta>
#include <fun>

new nazwa_gracza[33][64];
new zabicia_gracza[33], ranga_gracza[33];
new vault;

new limit_rang = 5;
new nazwy_rang[][] =
{
	"Nazwa 1",
	"Nazwa 2",
	"Nazwa 3",
	"Nazwa 4",
	"Nazwa 5"
}
new zabicia_poziomu[] =
{
	0, 8, 20, 36, 60
}
public plugin_init()
{
	register_plugin("RangMod", "1.0", "Linux`");
	register_event("DeathMsg", "Death", "a");
	register_message(get_user_msgid("SayText"),"handleSayText");
	vault = nvault_open("RangMod");
}
public client_authorized(id)
{
	get_user_name(id, nazwa_gracza[id], 63);
	zabicia_gracza[id] = 0;
	ranga_gracza[id] = 0;
	WczytajDane(id);
}
public client_disconnect(id)
{
	ZapiszDane(id);
}
public Death()
{
	new killer = read_data(1);
	new id = read_data(2);
	if(!is_user_connected(killer) || !is_user_connected(id))
		return;

	if(get_user_team(id) != get_user_team(killer))
	{
		zabicia_gracza[killer]++;
		SprawdzPoziom(killer);
	}
}
public handleSayText(msgId,msgDest,msgEnt)
{
	new id = get_msg_arg_int(1);
	if(!is_user_connected(id))      
		return;

	new szTmp[256],szTmp2[256];
	get_msg_arg_string(2,szTmp, charsmax(szTmp));

	new szPrefix[64];
	formatex(szPrefix,charsmax(szPrefix),"^x04[%s]", nazwy_rang[ranga_gracza[id]]);
	if(!equal(szTmp,"#Cstrike_Chat_All"))
	{
		add(szTmp2,charsmax(szTmp2),szPrefix);
		add(szTmp2,charsmax(szTmp2)," ");
		add(szTmp2,charsmax(szTmp2),szTmp);
	}
	else
	{
		add(szTmp2,charsmax(szTmp2),szPrefix);
		add(szTmp2,charsmax(szTmp2),"^x03 %s1^x01 :  %s2");
	}

	set_msg_arg_string(2,szTmp2);
}
public SprawdzPoziom(id)
{
	while(zabicia_gracza[id] >= zabicia_poziomu[ranga_gracza[id]] && ranga_gracza[id] < limit_rang)
		ranga_gracza[id]++;

	while(zabicia_gracza[id] < zabicia_poziomu[ranga_gracza[id]-1])
		ranga_gracza[id]--;

	if(ranga_gracza[id] > limit_rang)
		ranga_gracza[id] = limit_rang;

	ZapiszDane(id);
}
public ZapiszDane(id)
{
	new vaultkey[128], vaultdata[256], identyfikator[64];
	format(vaultdata, charsmax(vaultdata), "#%i#%i", zabicia_gracza[id], ranga_gracza[id]);
	format(vaultkey, charsmax(vaultkey), "%s-rang", identyfikator, copy(identyfikator, charsmax(identyfikator), nazwa_gracza[id]));
	nvault_set(vault, vaultkey, vaultdata);
}
public WczytajDane(id)
{
	new vaultkey[128],vaultdata[256], identyfikator[64];
	format(vaultkey, charsmax(vaultkey),"%s-rang", identyfikator, copy(identyfikator, charsmax(identyfikator), nazwa_gracza[id]));
	if(!nvault_get(vault, vaultkey, vaultdata, 255))
	{
		format(vaultkey, charsmax(vaultkey), "%s-rang", nazwa_gracza[id]);
		nvault_get(vault, vaultkey, vaultdata, 255);
	}

	replace_all(vaultdata, 255, "#", " ");	 
	new danegracza[2][32];
	parse(vaultdata, danegracza[0], 31, danegracza[1], 31);
	zabicia_gracza[id] = str_to_num(danegracza[0]);
	ranga_gracza[id] = str_to_num(danegracza[1]);
}

Kod wyciagniety z starego coda wiec i ogolna zasada dodawania rang jest taka sama. Jesli chcesz dodac nowa range to dodajesz ja w zmiennej "nazwy_rang" i ustawiasz po ilu zabojstwach ma byc dostepna w zmiennej "zabicia_gracza". Po dodaniu nowej rangi musisz rozszerzyc maksymalny limit rang. To tyle w zasadzie.

 

 


  • +
  • -
  • 1

b35020692_qesnxqa.png


#8 Zymlok

    Pomocny

  • Autor tematu
  • Użytkownik

Reputacja: 8
Nowy

  • Postów:55
  • Imię:Szymon
  • Lokalizacja:Daaleko
Offline

Napisano 04.07.2015 16:41

1. Rangi maja sie zapisywac czy po ponownym wejsciu gracza ma miec podstawowa?

2. Napisz te nazwy wszystkich rang chyba, ze sobie pozniej zedytujesz.

3. Wymagana ilosc zabojstw co kazda range ma wzrastac czy ma byc caly czas jedna stala suma?

1. Maja sie zapisywać! 

2. Silver I, Silver II, Silver III, Silver IV, Silver Elite, Silver Elite Master, Gold nova I, Gold nova II, Gold nova III, Gold Nova Master, Master Guardian I, Master Guardian II, Master Guardian Elite, Distinguished Master Guardian, Legendary Eagle, Legendary Eagle Master, Supreme Master, Global Elite 

3. Ma wzrastać! Proszę o możliwość modyfikacji liczby zabójstw! 

Dziękuję!


  • +
  • -
  • 0

Pomogłem? Daj + ;)

Zapraszam na serwer Only AWP

Ip: 193.33.177.130:27350

 






Również z jednym lub większą ilością słów kluczowych: help, amxx, rangi, szybko

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

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