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
 

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
  • Nie możesz odpowiedzieć
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: 550
    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: 550
    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

 





  


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

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

Coinsy CSGOPolygon Za SMS, PSC , Przelew - CoinSell.pro
Skiny do CS:GO za SMS, PSC, Przelew - CSGOPaka.com
Automatyczny Bot Levelowania Steam - LVLUPSteam.com
CSGO Gambling Sites and Free Betting Codes - DreamCodes.gg 💸 SellYourSkins.com - Łatwo sprzedaj swoje skiny do CS:GO

Logowanie


  • Potrzebujesz konta? Zarejestruj się!