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
SuperHeroMod

SHM 1.2, rejestracja bohatera w kilku językach

SuperHeroMod

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

#1 ogieR8

    Wszechmogący

  • Power User

Reputacja: 203
Profesjonalista

  • Postów:641
  • Imię:Mariusz
  • Lokalizacja:Ruda Śląska
Offline

Napisano 23.01.2015 14:09

~ Siema. Bawię się od pewnego czasu SuperHERO Mod'em 1.20. Silnik zbliżony do idei nowego CoD'a, czy Diablo Core, a dokładniej w oddzielnych pluginach mamy super bohaterów. W głównym silniku SHM zrobiłem już language menu, nie używałem data/lang tylko np.

client_print(id, 3, gPolski[id] ? "Opis po PL" : "Opis pod EB");

Nie znam się na tej bardziej skomplikowanej metodzie lang'a, więc zrobiłem tak, bo i tak 2 języki mi wystarczą. Silnik cały obrobiony, ale.. co zrobić z klasami ? Tak to wygląda w plugin_init

sh_set_hero_info(gHeroID, "Master of Magnetism", "Strip and Get a players guns when they shoot you")

Jest to przykład bohatera Magneto. 

1 param = ID bohatera

2 param = krótki opis bohatera przy wyborze (w menu)

3 param = dłuższy opis bohatera, wyświetlany w chwili wybrania bohatera

 

Zrobiłem natywy w wszystkich bohaterach, aby pobrać wartość gPolski, ale.. to jest w plugin_init, tam nie ma index'u. Zwykła pętla pomoże ? Bo w sumie jeśli to w pętli zrobie to nie wiem, czy nie zarejestruje mi się klasa 32 razy.. No i w sumie plugin_init włącza się od razu, i czy natywy są wczytywane przed init'em ? 

 

Tak wygląda forward w silniku odnośnie informacji o bohaterze.

public _sh_set_hero_info() {
	new heroIndex = get_param(1)

	if ( heroIndex < 0 || heroIndex >= gSuperHeroCount ) return

	new pPower[50], pHelp[128]
	get_string(2, pPower, charsmax(pPower))		//Short Power Description
	get_string(3, pHelp, charsmax(pHelp))		//Help Info

	debugMsg(0, 3, "Create Hero-> HeroID: %d - %s - %s", heroIndex, pPower, pHelp)

	copy(gSuperHeros[heroIndex][superpower], 49, pPower)
	copy(gSuperHeros[heroIndex][help], 127, pHelp)
}

  • +
  • -
  • 0

Irytuje mnie nieczytelny kod, jeśli oczekujesz ode mnie pomocy - zmień to !


#2 sebul

    Godlike

  • Przyjaciel

Reputacja: 2 035
Godlike

  • Postów:5 411
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:Ostrołęka
Offline

Napisano 23.01.2015 14:34

Automatyczna wiadomość


Ten temat został przeniesiony z forum

AMX Mod X > Pytania

do

Mody > Inne mody > Pytania
  • +
  • -
  • 0

Posiadam TBM (inaczej PTB), które działa dużo lepiej niż zwykłe PTB, nawet na modach z lvlami. Zainteresowany? Proszę bardzo


#3 Rivit

    Godlike

  • Support Team

Reputacja: 1 319
Godlike

  • Postów:4 380
Offline

Napisano 23.01.2015 15:58

new opis[64], name[64];

if(gPolski[id])
{
      formatex(opis, charsmax(opis), "po polsku opis");
      formatex(name, charsmax(name), "po polsku nazwa");
}
else
{
      formatex(opis, charsmax(opis), "po ang opis");
      formatex(name, charsmax(name), "po ang nazwa");
}

sh_set_hero_info(gHeroID, nazwa, opis)

Sprawdz :D


  • +
  • -
  • 0

#4 ogieR8

    Wszechmogący

  • Autor tematu
  • Power User

Reputacja: 203
Profesjonalista

  • Postów:641
  • Imię:Mariusz
  • Lokalizacja:Ruda Śląska
Offline

Napisano 23.01.2015 16:10

Ale to jest w plugin_init, cztli pętli użyć, aby można działać na indexach ?


  • +
  • -
  • 0

Irytuje mnie nieczytelny kod, jeśli oczekujesz ode mnie pomocy - zmień to !


#5 Rivit

    Godlike

  • Support Team

Reputacja: 1 319
Godlike

  • Postów:4 380
Offline

Napisano 23.01.2015 16:31

Niedoczytałem :X

 

 

 

To moze dodaj 2 parametry do rejestracji i tam gdzie uzywasz gPolski to sobie pobierasz odpowiedni tekst z tablicy


  • +
  • -
  • 1

#6 ogieR8

    Wszechmogący

  • Autor tematu
  • Power User

Reputacja: 203
Profesjonalista

  • Postów:641
  • Imię:Mariusz
  • Lokalizacja:Ruda Śląska
Offline

Napisano 23.01.2015 18:03

W silniku zmienione na:

public _sh_set_hero_info() {
	new heroIndex = get_param(1)

	if ( heroIndex < 0 || heroIndex >= gSuperHeroCount ) return

	new pPower[50], pHelp[128]
	for(new i = 1; i <= 32; i++) {
		if(gJezykGracza[i]) {
			get_string(4, pPower, charsmax(pPower))
			get_string(5, pHelp, charsmax(pHelp))
		}
		else {
			get_string(2, pPower, charsmax(pPower))
			get_string(3, pHelp, charsmax(pHelp))
		}
	}
		
	debugMsg(0, 3, "Stworzenie bohatera -> ID: %d, NAME: %s, HELP: %s", heroIndex, pPower, pHelp)

	copy(gSuperHeros[heroIndex][superpower], 49, pPower)
	copy(gSuperHeros[heroIndex][help], 127, pHelp)
}

W klasie:

sh_set_hero_info(gHeroID, "Master of Magnetism", "Strip and Get a players guns when they shoot you", "Mistrz magnetyzmu", "Przeciwnik traci bron, a Ty ja dostaniesz.. kiedy w Ciebie strzeli")

Niestety, obydwa pliki zaaktualizowane na serwerze jednak nie działa. Zawsze 'nazwa' jest po ang, a opis się chyba czasem nie pojawia jak dobrze widzę, jeśli język = EN - działa zawsze. Nie bawiłem się tak nigdy, pewnie zrobiłem znając życie głupie błędy, jakaś rada ?


  • +
  • -
  • 0

Irytuje mnie nieczytelny kod, jeśli oczekujesz ode mnie pomocy - zmień to !


#7 wooDy.

    Pomocny

  • Użytkownik

Reputacja: 24
Życzliwy

  • Postów:71
  • Lokalizacja:Kraków
Offline

Napisano 23.01.2015 18:39

Stwórz dwie klasy / zmieniaj nazwę tam gdzie się wyświetla w zależności od języku( to bym wybrał ;) ).


  • +
  • -
  • 0
b_350_20_00DF04_000000_FFFFFF_00DF04.png
b_350_20_00DF04_000000_FFFFFF_00DF04.png

#8 ogieR8

    Wszechmogący

  • Autor tematu
  • Power User

Reputacja: 203
Profesjonalista

  • Postów:641
  • Imię:Mariusz
  • Lokalizacja:Ruda Śląska
Offline

Napisano 23.01.2015 18:53

Odpada. Silnik SHM 1.2 uciągnie 100 bohaterów, znalazłem ich 500+, część niedziałała, część bezsensowna, ale i tak siedzę nad 140 teraz i myślę co do odrzutu :) A zejście do 50 to już wogóle.


  • +
  • -
  • 0

Irytuje mnie nieczytelny kod, jeśli oczekujesz ode mnie pomocy - zmień to !


#9 Rivit

    Godlike

  • Support Team

Reputacja: 1 319
Godlike

  • Postów:4 380
Offline

Napisano 23.01.2015 19:06

W silniku zmienione na:

public _sh_set_hero_info() {
	new heroIndex = get_param(1)

	if ( heroIndex < 0 || heroIndex >= gSuperHeroCount ) return

	new pPower[50], pHelp[128]
	for(new i = 1; i <= 32; i++) {
		if(gJezykGracza[i]) {
			get_string(4, pPower, charsmax(pPower))
			get_string(5, pHelp, charsmax(pHelp))
		}
		else {
			get_string(2, pPower, charsmax(pPower))
			get_string(3, pHelp, charsmax(pHelp))
		}
	}
		
	debugMsg(0, 3, "Stworzenie bohatera -> ID: %d, NAME: %s, HELP: %s", heroIndex, pPower, pHelp)

	copy(gSuperHeros[heroIndex][superpower], 49, pPower)
	copy(gSuperHeros[heroIndex][help], 127, pHelp)
}

W klasie:

sh_set_hero_info(gHeroID, "Master of Magnetism", "Strip and Get a players guns when they shoot you", "Mistrz magnetyzmu", "Przeciwnik traci bron, a Ty ja dostaniesz.. kiedy w Ciebie strzeli")

Niestety, obydwa pliki zaaktualizowane na serwerze jednak nie działa. Zawsze 'nazwa' jest po ang, a opis się chyba czasem nie pojawia jak dobrze widzę, jeśli język = EN - działa zawsze. Nie bawiłem się tak nigdy, pewnie zrobiłem znając życie głupie błędy, jakaś rada ?

 

 

Nie rób pętli tam, przecież gdy wykonuje sie plugin_init (czyli rejestracja natywu) to nikt nie ma jeszcze polskiego....

 

Tu zrób tylko pobieranie angielskiego i polskiego (czyli będzie 5 parametrów)

Potem gdzieś w kodzie (tam gdzie wyświetlasz np. opis), dodajesz warunek: jeśli polski to wyświetl mu tekst z tablicy z napisami polskimi, jeśli nie to angielskie

 

 

Rozumiesz?


  • +
  • -
  • 1

#10 ogieR8

    Wszechmogący

  • Autor tematu
  • Power User

Reputacja: 203
Profesjonalista

  • Postów:641
  • Imię:Mariusz
  • Lokalizacja:Ruda Śląska
Offline

Napisano 23.01.2015 19:46

Teoretycznie raczej tak. kod klasy jest dobry, z silnika wyrzucic warunek jezyka i wrzucic go w momencie wyswietlenia, oraz.. pobrac 2 ostatnie argumenty do oddzielnych zmiennych/tablic.


  • +
  • -
  • 0

Irytuje mnie nieczytelny kod, jeśli oczekujesz ode mnie pomocy - zmień to !






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

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

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