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

String formatted incorrectly


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

#1 becometa

    Życzliwy

  • Użytkownik

Reputacja: 1
Nowy

  • Postów:33
  • GG:
  • Lokalizacja:Łódź
Offline

Napisano 20.11.2010 11:06

Cześć,

mam sobie taki kodzik
client_print_color(id, print_chat, "%L:   %s", LANG_PLAYER, "ADMIN_SLAY_1", name, g_menuSettings[id]);
			} else {
				
				client_print_color(id, print_chat, "%L:   %s", LANG_PLAYER, "ADMIN_SLAY_1", name);
			}
kompilować się kompiluje, jednakże w grze występuje błąd, coś musiałem sknocić i niepoprawnie formatuje wiadomość(używam natywnych z chatcolor.inc :) w plikach ML - tj. !g, !n, !t)
: becometa
zamiast
Administrator %s zgladzil gracza %s
wyciąg z debugowanego error logu
L 11/20/2010 - 10:59:43: String formatted incorrectly - parameter 7 (total 6)
L 11/20/2010 - 10:59:43: [AMXX] Displaying debug trace (plugin "plmenu.amxx")
L 11/20/2010 - 10:59:43: [AMXX] Run time error 25: parameter error 
L 11/20/2010 - 10:59:43: [AMXX]    [0] plmenu.sma::actionSlapMenu (line 361)
Gdzie popełniłem błąd?

Użytkownik BeCometA edytował ten post 20.11.2010 11:07

  • +
  • -
  • 0

#2 grankee

    Godlike

  • Support Team

Reputacja: 517
Wszechwiedzący

  • Postów:1 500
  • Lokalizacja:Radom
Offline

Napisano 20.11.2010 12:30

Prawdopodobnie wstawiłeś 6 razy %s/%d/%f/%d/%i a podałeś 7 argumentów lub odwrotnie, tzn:
client_print(id,print_chat,"%d %d %d %d %d %d",1,2,3,4,5,6,7)

czyli %d masz 6 razy a później cyfer masz 7,lub dowrotnie, %d masz 7 razy a cyfer 6.
Oczywiście to jest tylko przykład, w pluginie pewnie będziesz miał raczej %s a nie %d i zamiast cyfer coś w stylu name albo slap_power.
Może być też tak, że to liczy razem z argumentami client_print zatem będziesz miał wtedy 3 argumety mniej, jako że bez formatowania client_print masz już 3 argumenty: id, print_type, text. Generalnie chodzi o to samo.
  • +
  • -
  • 0

#3 DarkGL

    Nie oddam ciasteczka !

  • Administrator

Reputacja: 6 555
Godlike

  • Postów:11 981
  • GG:
  • Steam:steam
  • Imię:Rafał
  • Lokalizacja:Warszawa
Offline

Napisano 20.11.2010 13:00

pokaż całą funkcję :)
  • +
  • -
  • 0

#4 becometa

    Życzliwy

  • Autor tematu
  • Użytkownik

Reputacja: 1
Nowy

  • Postów:33
  • GG:
  • Lokalizacja:Łódź
Offline

Napisano 20.11.2010 13:00

@grankee: Mam rozumieć, że liczba stringów w pluginie nie jest taka sama jak w plikach ML, tak?

@edit: DarkGL

public actionSlapMenu(id, key)
{
	switch (key)
	{
		case 7:
		{
			++g_menuOption[id]
			
			g_menuOption[id] %= ArraySize(g_slapsettings);
			
			g_menuSettings[id] = ArrayGetCell(g_slapsettings, g_menuOption[id]);
			
			displaySlapMenu(id, g_menuPosition[id]);
		}
		case 8: displaySlapMenu(id, ++g_menuPosition[id])
		case 9: displaySlapMenu(id, --g_menuPosition[id])
		default:
		{
			new player = g_menuPlayers[id][g_menuPosition[id] * 7 + key]
			new name2[32]
			
			get_user_name(player, name2, 31)

			if (!is_user_alive(player))
			{
				client_print_color(id, print_chat, "%L", id, "CANT_PERF_DEAD", name2)
				displaySlapMenu(id, g_menuPosition[id])
				return PLUGIN_HANDLED
			}

			new authid[32], authid2[32], name[32]

			get_user_authid(id, authid, 31)
			get_user_authid(player, authid2, 31)
			get_user_name(id, name, 31)

			if (g_menuOption[id])
			{

				client_print_color(id, print_chat, "%L:   %s", LANG_PLAYER, "ADMIN_SLAY_1", name, g_menuSettings[id]);
			} else {
				
				client_print_color(id, print_chat, "%L:   %s", LANG_PLAYER, "ADMIN_SLAY_1", name);
			}

			if (g_menuOption[id])
				user_slap(player, (get_user_health(player) > g_menuSettings[id]) ? g_menuSettings[id] : 0)
			else
				user_kill(player)

			displaySlapMenu(id, g_menuPosition[id])
		}
	}
	
	return PLUGIN_HANDLED
}
standardowy plmenu z tym, że zaimplementowane chatcolor :D

Dodano 24 listopad 2010 - 22:48:
jakiś pomysł?

Użytkownik becometa edytował ten post 28.11.2010 11:01

  • +
  • -
  • 0

#5 GanGsT3RBoY

    Nowy

  • Nowy

Reputacja: 0
Nowy

  • Postów:1
  • Lokalizacja:Szczecin
Offline

Napisano 28.11.2010 11:01

O ja też szukam czegoś podobnego ma ktoś rozwiązanie?
  • +
  • -
  • 0

#6 DarkGL

    Nie oddam ciasteczka !

  • Administrator

Reputacja: 6 555
Godlike

  • Postów:11 981
  • GG:
  • Steam:steam
  • Imię:Rafał
  • Lokalizacja:Warszawa
Offline

Napisano 28.11.2010 12:34

client_print_color(id, print_chat, "%L: %s", LANG_PLAYER, "ADMIN_SLAY_1", name, g_menuSettings[id]);
na
client_print_color(id, print_chat, "%L", LANG_PLAYER, "ADMIN_SLAY_1", name,name2);

i
client_print_color(id, print_chat, "%L: %s", LANG_PLAYER, "ADMIN_SLAY_1", name);
na
client_print_color(id, print_chat, "%L", LANG_PLAYER, "ADMIN_SLAY_1", name,name2);


jeśli dobrze cie zrozumiałem i ADMIN_SLAY_1 to Administrator %s zgladzil gracza %s
to wtedy powinno działać ;)
  • +
  • -
  • 0

#7 becometa

    Życzliwy

  • Autor tematu
  • Użytkownik

Reputacja: 1
Nowy

  • Postów:33
  • GG:
  • Lokalizacja:Łódź
Offline

Napisano 28.11.2010 16:26

Niestety jednak to nie to.
Chodzi mi po prostu o zastosowanie natywnej colorchat w plmenu dla wszystkich komunikatów drukowanych na czacie.
show_activity_key
- to odpowiada za drukowanie tego
natomiast autor include'a nakierował mnie, że podmianie podlegają
client_print
a więc jak w przypadku show_activity_key zastosować natywne colorchat? :D
  • +
  • -
  • 0




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

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