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
CS:GO

CodMod_Stary - Wlasny kolor hud na zyczenie

cs:go

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

#1 Linux'

    Pan Pomocny

  • Power User

Reputacja: 549
Wszechwiedzący

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

Napisano 08.08.2015 08:19

opis

 

W tym poradniku pokaze w jaki sposob dodac wlasny kolor hud na zyczenie gracza.

 

Pierw gdzies na gorze dodajemy:

new hud_gracza[MAX_PLAYERS+1], hud_klasy_gracza[MAX_PLAYERS+1][MAX_CLASS+1]
new String:nazwy_hud[][] =
{
	"#ADFF2F", // 0
	"#ADFF2F", // 1
	"#008000", // 2
	"#FFFF00", // 3
	"#FFFFFF", // 4
	"#FFA500", // 5
	"#FF0000", // 6
	"#1E90FF", // 7
	"#00FFFF", // 8
	"#808000", // 9
	"#9400D3", // 10
	"#8B4513", // 11
	"#FF00FF" // 12
};
new String:opis_hud[][] =
{
	"Domyslny", // 0
	"Zielonozolty", // 1
	"Zielony", // 2
	"Zolty", // 3
	"Bialy", // 4
	"Pomaranczowy ", // 5
	"Czerwony", // 6
	"Niebieski", // 7
	"Morski", // 8
	"Oliwkowy", // 9
	"Fioletowy", // 10
	"Brazowy", // 11
	"Rozowy" // 12
};

teraz szukamy:

public OnClientPutInServer(client)
{

i dodajemy do srodka:

hud_gracza[client] = 0;

oraz zamieniamy:

for(new i = 1; i < sizeof nazwy_klas; i ++)
{
	poziom_klasy_gracza[client][i] = 1;
	doswiadczenie_klasy_gracza[client][i] = 0;
	inteligencja_klasy_gracza[client][i] = 0;
	zdrowie_klasy_gracza[client][i] = 0;
	obrazenia_klasy_gracza[client][i] = 0;
	wytrzymalosc_klasy_gracza[client][i] = 0;
	kondycja_klasy_gracza[client][i] = 0;
}

na:

for(new i = 1; i < sizeof nazwy_klas; i ++)
{
	poziom_klasy_gracza[client][i] = 1;
	doswiadczenie_klasy_gracza[client][i] = 0;
	inteligencja_klasy_gracza[client][i] = 0;
	zdrowie_klasy_gracza[client][i] = 0;
	obrazenia_klasy_gracza[client][i] = 0;
	wytrzymalosc_klasy_gracza[client][i] = 0;
	kondycja_klasy_gracza[client][i] = 0;
	hud_klasy_gracza[client][i] = 0;
}

nastepnie przechodzimy do:

public Action:DataBaseConnect()
{

i zamieniamy

SQL_FastQuery(sql, "CREATE TABLE IF NOT EXISTS `codmod` (`id` INT(11) NOT NULL AUTO_INCREMENT, `steamid` VARCHAR(48) NOT NULL, `klasa` VARCHAR(48) NOT NULL, `lvl` INT(11) DEFAULT 1, `xp` INT(14), `inteligencja` INT(9), `zdrowie` INT(9), `obrazenia` INT(9), `wytrzymalosc` INT(9), `kondycja` INT(9), PRIMARY KEY (`id`), UNIQUE KEY `klasaid` (`klasa`,`steamid`)) ENGINE=MyISAM  DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci;");

na

SQL_FastQuery(sql, "CREATE TABLE IF NOT EXISTS `codmod` (`id` INT(11) NOT NULL AUTO_INCREMENT, `steamid` VARCHAR(48) NOT NULL, `klasa` VARCHAR(48) NOT NULL, `lvl` INT(11) DEFAULT 1, `xp` INT(14), `inteligencja` INT(9), `zdrowie` INT(9), `obrazenia` INT(9), `wytrzymalosc` INT(9), `kondycja` INT(9), `hudkolor` INT(9), PRIMARY KEY (`id`), UNIQUE KEY `klasaid` (`klasa`,`steamid`)) ENGINE=MyISAM  DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci;");

teraz szukamy:

public Action:ZapiszDane(client)
{

i zamieniamy

Format(tmp, sizeof(tmp), "INSERT INTO `codmod` (`steamid`, `klasa`, `lvl`, `xp`, `inteligencja`, `zdrowie`, `obrazenia`, `wytrzymalosc`, `kondycja`) VALUES ('%s', '%s', %d, %d, %d, %d, %d, %d, %d) ON DUPLICATE KEY UPDATE `lvl`=VALUES(`lvl`), `xp`=VALUES(`xp`), `inteligencja`=VALUES(`inteligencja`), `zdrowie`=VALUES(`zdrowie`), `obrazenia`=VALUES(`obrazenia`), `wytrzymalosc`=VALUES(`wytrzymalosc`), `kondycja`=VALUES(`kondycja`);", authid, nazwy_klas[klasa_gracza[client]], poziom_gracza[client], doswiadczenie_gracza[client], inteligencja_gracza[client], zdrowie_gracza[client], obrazenia_gracza[client], wytrzymalosc_gracza[client], kondycja_gracza[client]);

na

Format(tmp, sizeof(tmp), "INSERT INTO `codmod` (`steamid`, `klasa`, `lvl`, `xp`, `inteligencja`, `zdrowie`, `obrazenia`, `wytrzymalosc`, `kondycja`, `hudkolor`) VALUES ('%s', '%s', %d, %d, %d, %d, %d, %d, %d, %d) ON DUPLICATE KEY UPDATE `lvl`=VALUES(`lvl`), `xp`=VALUES(`xp`), `inteligencja`=VALUES(`inteligencja`), `zdrowie`=VALUES(`zdrowie`), `obrazenia`=VALUES(`obrazenia`), `wytrzymalosc`=VALUES(`wytrzymalosc`), `kondycja`=VALUES(`kondycja`), `hudkolor`=VALUES(`hudkolor`);", authid, nazwy_klas[klasa_gracza[client]], poziom_gracza[client], doswiadczenie_gracza[client], inteligencja_gracza[client], zdrowie_gracza[client], obrazenia_gracza[client], wytrzymalosc_gracza[client], kondycja_gracza[client], hud_gracza[client]);

nastepnie przechodzimy do:

public Action:WczytajDane(client, klasa)
{

i pod

kondycja_gracza[client] = kondycja_klasy_gracza[client][klasa];

dodajemy

hud_gracza[client] = hud_klasy_gracza[client][klasa];

i znow szukamy:

public Action:Prethink(client)
{

i zamieniamy

PrintHintText(client, "[Klasa: <b>%s</b>]\n[Xp: <b>%0.1f</b>/<b>100.0%%</b> | Lv: <b>%i</b>]\n[Item: <b>%s</b> [<b>%i%%</b>]]", nazwy_klas[klasa_gracza[client]], procent_gracza, poziom_gracza[client], nazwy_itemow[informacje_itemu_gracza[client][0]], moc_itemu[client]);

na

PrintHintText(client, "<font color='%s'>[Klasa: <b>%s</b>]\n[Xp: <b>%0.1f</b>/<b>100.0%%</b> | Lv: <b>%i</b>]\n[Item: <b>%s</b> [<b>%i%%</b>]]</font>", nazwy_hud[hud_gracza[client]], nazwy_klas[klasa_gracza[client]], procent_gracza, poziom_gracza[client], nazwy_itemow[informacje_itemu_gracza[client][0]], moc_itemu[client]);

oraz (opcjonalnie)

PrintHintText(client, "[Klasa: <b>%s</b>]\n[Xp: <b>%0.1f</b>/<b>100.0%%</b> | Lv: <b>%i</b>]\n[Item: <b>%s</b> [<b>%i%%</b>]]</font>", nazwy_klas[klasa_gracza[target]], procent_gracza, poziom_gracza[target], nazwy_itemow[informacje_itemu_gracza[target][0]], moc_itemu[target]);

na

PrintHintText(client, "<font color='%s'>[Klasa: <b>%s</b>]\n[Xp: <b>%0.1f</b>/<b>100.0%%</b> | Lv: <b>%i</b>]\n[Item: <b>%s</b> [<b>%i%%</b>]]</font>", nazwy_hud[hud_gracza[target]], nazwy_klas[klasa_gracza[target]], procent_gracza, poziom_gracza[target], nazwy_itemow[informacje_itemu_gracza[target][0]], moc_itemu[target]);

teraz gdzies na koncu dodajemy:

public Action:HudMenu(client)
{
	if(klasa_gracza[client])
	{
		if(IsPlayerAlive(client))
		{
			new String:lista[512];
			new Handle:menu = CreateMenu(HudMenu_Handler);
			SetMenuTitle(menu, "HudKolor:");
			for(new i = 1; i < sizeof nazwy_hud; i ++)
			{
				Format(lista, sizeof(lista), "%s", opis_hud[i]);
				AddMenuItem(menu, "1", lista);
			}

			DisplayMenu(menu, client, 250);
		}
		else
			PrintToChat(client, "[COD:MW] Musisz byc zywy aby moc zmienic kolor hud!");
	}
	else
		PrintToChat(client, "[COD:MW] Musisz miec wybrana klase aby moc zmienic kolor hud!");
}
public HudMenu_Handler(Handle:classhandle, MenuAction:action, client, Position)
{
	if(action == MenuAction_Select)
	{
		new String:Item[32];
		GetMenuItem(classhandle, Position, Item, sizeof(Item));
		Position++;

		if(StrEqual(Item, "1"))
		{
			if(!zapisz_dane[client])
				zapisz_dane[client] = 1;

			hud_gracza[client] = Position;
			PrintToChat(client, "[COD:MW] Zmieniles kolor swojego hud na %s.", opis_hud[Position]);
			HudMenu(client);
		}
	}
	else if(action == MenuAction_End)
		CloseHandle(classhandle);
}

nastepnie przechodzimy do:

public Action:Komendy(client, args)
{

i gdzies w srodku pod public WyrzucItem dodajemy:

else if(strcmp(text, "/hud", false) == 0 || strcmp(text, "/kolor", false) == 0)
	HudMenu(client);

teraz szukamy:

public Action:WybierzKlase(client)
{

i pod

kondycja_klasy_gracza[client][klasa_g] = kondycja_gracza[client];

dodajemy

hud_klasy_gracza[client][klasa_g] = hud_gracza[client];

nastepnie zamieniamy

Format(tmp, sizeof(tmp), "SELECT `lvl`, `xp`, `inteligencja`, `zdrowie`, `obrazenia`, `wytrzymalosc`, `kondycja`, `klasa` FROM `codmod` WHERE steamid = '%s';", authid);

na

Format(tmp, sizeof(tmp), "SELECT `lvl`, `xp`, `inteligencja`, `zdrowie`, `obrazenia`, `wytrzymalosc`, `kondycja`, `hudkolor`, `klasa` FROM `codmod` WHERE steamid = '%s';", authid);

nastepnie zamieniamy caly:

public WybierzKlase2(Handle:owner, Handle:query, const String:error[], any:client)
{

na

public WybierzKlase2(Handle:owner, Handle:query, const String:error[], any:client)
{
	if(query == INVALID_HANDLE)
	{
		LogError("Load error: %s", error);
		return;
	}
	if(SQL_GetRowCount(query))
	{
		new poziom = 1, doswiadczenie = 0, inteligencja = 0, zdrowie = 0, obrazenia = 0, wytrzymalosc = 0, kondycja = 0, hud = 0;
		new String:klasa[512];
		while(SQL_MoreRows(query))
		{
			while(SQL_FetchRow(query))
			{
				poziom = SQL_FetchInt(query, 0);
				doswiadczenie = SQL_FetchInt(query, 1);
				inteligencja = SQL_FetchInt(query, 2);
				zdrowie = SQL_FetchInt(query, 3);
				obrazenia = SQL_FetchInt(query, 4);
				wytrzymalosc = SQL_FetchInt(query, 5);
				kondycja = SQL_FetchInt(query, 6);
				hud = SQL_FetchInt(query, 7);

				SQL_FetchString(query, 8, klasa, sizeof(klasa));
				for(new i = 1; i < sizeof nazwy_klas; i ++)
				{
					if(StrEqual(nazwy_klas[i], klasa))
					{
						poziom_klasy_gracza[client][i] = poziom;
						doswiadczenie_klasy_gracza[client][i] = doswiadczenie;
						inteligencja_klasy_gracza[client][i] = inteligencja;
						zdrowie_klasy_gracza[client][i] = zdrowie;
						obrazenia_klasy_gracza[client][i] = obrazenia;
						wytrzymalosc_klasy_gracza[client][i] = wytrzymalosc;
						kondycja_klasy_gracza[client][i] = kondycja;
						hud_klasy_gracza[client][i] = hud;
					}
				}
			}
		}
	}

	WybierzKlaseMenu(client);
	polaczony_raz[client] = 0;
}

Jezeli zrobiles wszystko tak jak wyzej to powinienes miec dzialajaca zmiane koloru hud na zyczenie.

 

Uwaga, jezeli modyfikujesz swoj zapis, musisz usunac aktualny plik zapisu lub go zmodyfikowac poprzez dodanie nowej kolumny do pliku. Jezeli tego nie zrobisz serwer bedzie wyswietlac bledy.

 

I teraz jak zmodyfikowac liste kolorow, wszystkie zmiany wprowadzasz w:

new String:nazwy_hud[][] =

oraz w opisie danego koloru. Powyzsze kolory to tylko moja propozycja, kolor mozna sobie wybrac dowolny jak i tresc do kolorowania.


  • +
  • -
  • 0

b35020692_qesnxqa.png


#2 plx211

    Wszechpomocny

  • Użytkownik

Reputacja: 231
Wszechwidzący

  • Postów:397
  • Lokalizacja:Polska
Offline

Napisano 08.08.2015 10:32

Zamiast do db lepiej zapisac do cookie clienta, po za tym nie "php color" a hex color
  • +
  • -
  • 0

#3 Linux'

    Pan Pomocny

  • Autor tematu
  • Power User

Reputacja: 549
Wszechwiedzący

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

Napisano 06.10.2015 19:47

Poradnik zostal zaaktualizowany do najnowszej wersji silnika


  • +
  • -
  • 0

b35020692_qesnxqa.png






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

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

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