[INC] h_Jezik 2.2 [UPDATE: 20.1.2013] Sustav za dvojezičnu skriptu

Započeo Slay, Maj 17, 2011, 21:23:29 POSLE PODNE

prethodna tema - sledeća tema

0 članova i 1 gost pregledaju ovu temu.



jel getplayerlanguage obavezan ili? i di da ga stavim ne kuzim?! jel moram stavljat prije svake funkcije koja daje text ili gdje? mislio sam napravit da sejva koji je jezik odabran ali prvo da ovo pitanje rijesim da znam kako da napravim da sejva to...
STRANICA U IZRADI

Pa kad napraviš da spremi postavke kod disconnect-a igrača onda napravi da se ućita kod connect-a ili kod login-a zavisi di ti se load-aju postavke.
Kristijan Stipić


UPDATE: v2 RC1
- Optimizacija varijable za pregled jezika 'char'

UPDATE: v2 RC2
- Pogledaj prvi post..
Poslednja Izmena: Jun 30, 2011, 18:56:07 POSLE PODNE od [H]265
Kristijan Stipić


NAPOMENA: Skripta je update-ana na verziju v2 RC2

Slobodno komentirajte :)

Prijedlozi/ideje/zamjerke ili bugovi sve pisite ovdje u topic ili meni na PM

Poslednja Izmena: Jul 02, 2011, 17:08:58 POSLE PODNE od [H]265
Kristijan Stipić

Super je, evo jos par prijedloga:

3D text labele si zaboravio i one menu-e

i ovo bi bilo kul:

SetLanguageName(false,"Ruski");
SetLanguageName(true,"Njemacki");

SetPlayerLanguage(playerid,false); //ruski

SCM(.."Tvoj jezik je: %s",GetPlayerLanguage(playerid));
chat: Tvoj jezik je Ruski
A da default ostane Balkanski i Engleski

edit:

formatex(string,velicina,"false jezik","true jezik",argumenti);
edit: Malo sam razmislio, ovo zadnje nema smisla, jedino da se ubaci jos koji argument da uzme id igraca ili nesto
edit:
formatForPlayer(playerid,string,velicina,"false jezik","true jezik",argumenti);
Poslednja Izmena: Jul 02, 2011, 17:47:53 POSLE PODNE od [TG] BloodMaster

Citat: [TG] BloodMaster poslato Jul 02, 2011, 17:34:42 POSLE PODNE
Super je, evo jos par prijedloga:

3D text labele si zaboravio i one menu-e

i ovo bi bilo kul:

SetLanguageName(false,"Ruski");
SetLanguageName(true,"Njemacki");

SetPlayerLanguage(playerid,false); //ruski

SCM(.."Tvoj jezik je: %s",GetPlayerLanguage(playerid));
chat: Tvoj jezik je Ruski
A da default ostane Balkanski i Engleski

edit:

formatex(string,velicina,"false jezik","true jezik",argumenti);
edit: Malo sam razmislio, ovo zadnje nema smisla, jedino da se ubaci jos koji argument da uzme id igraca ili nesto
edit:
formatForPlayer(playerid,string,velicina,"false jezik","true jezik",argumenti);

Odlične ideje. Ali onda kad već to napravim mogu i CreateNewLanguage
Al dobro je za sad. Ipak bi volio da ostane 'Jednostavni više jezični sustav' jer realno kad bi išao i to sve raditi zašto kad onda jednostavno postoji YSI Text

EDIT: 3D Text & Menu-e ću dodati u sljedećoj verziji, hvala :)

Šta se tiče formatEx - a već imam u jednoj temi na forumu takav kod iako nema nikakve veze sa ovim INC - om ali naravno da je moguće napraviti optional argument npr.

formatEx(optional = playerid....);

znaci ako playerid postoji ili neki drugi index onda vuce iz Player varijabla, a ako ne onda je formatEx localna funkcija to se moze nazvat dinamicnom funkcijom
Poslednja Izmena: Jul 02, 2011, 18:34:36 POSLE PODNE od [H]265
Kristijan Stipić

Ovaj sistem je najvise - prosjecno dobar. Vise mi se svida YSI-ov sistem gdje definiras oznake unutar skripte za neki tekst a sa file-ovima definiras boju i tekst, tako da ne trebas cijeli gamemode recompile-at(i opet uploadat na server) ako ti se negdje dogodi pogreska u tekstu ili ako oces neku drugu boju.

a i ovako kad ti je u fileu onda je su tekstovi za jedan jezik na jednom mjestu, tj. u jednom fileu; za drugi u drugom fileu i tako je lakse za pratit, i takoder mozes dati nekom ko zna npr. njemacki da ti prevede, moras mu dati samo file sa engleskim/hrvatskim prijevodom, i onda ti on moze isporucit file sa njemackim prevodom
Poslednja Izmena: Jul 10, 2011, 20:45:20 POSLE PODNE od Omega-300
aka JOE BULLET :)

- Kao što sam već gore bio naveo ovo i jesam napravio radi onih koji ne znaju koristiti ovaj iz YSI - a
- Ovo sa fileovima je jebena stvar, to sam bio već rekao u jednoj temi baš za YSI:Text

Ne znam hoću li to napraviti jer jednostavno napravio sam taj jednostavni sustav nema ni potrebe da dodajem još stvari. - Oni koji ne znaju niti ovo koristiti napravio sam i početni mod ima ga u GM boardu.

Mislio sam jedino update - ati još sa par funkcija npr.

formatEx(cells, const balkan[], const english[], {Float,_}:...)

Poslednja Izmena: Jul 15, 2011, 12:27:16 POSLE PODNE od [H]265
Kristijan Stipić

Kako zakon ovo san danas počea koristit nije uopće teško :D

Svaka čast :)

Citat: [H]265 poslato Maj 17, 2011, 21:23:29 POSLE PODNE
COMMAND:help(playerid,params[]) // zcmd
{
      return SCM(playerid, 0xFFFFFF, "TEXT ZA BALKANCE","TEXT ZA DRUGI JEZIK"), 0;
}


Znači sada funkcija ima jedan parametar više.
Brate meni ovo nikako ne radi javi mi da ne valja argument 3.
Eo kako to meni izgleda
Javlja mi ovaj error na ovoj SCM liniji.
C:\Documents and Settings\Ahmed\Desktop\UPCOMING EVOLUTION FREEROAM\gamemodes\UPEFR.pwn(261) : error 035: argument type mismatch (argument 3)
Pawn compiler 3.2.3664           Copyright (c) 1997-2006, ITB CompuPhase


1 Error.
LOL

Moraš imati sve napravljeno kako je upućeno.

1. #include H265\h_jezik
2. Di vec odreÄ'ujeÅ¡ igraću koji će jezik koristiti SetPlayerLanguage(playerid, bool:balkan); (ako je true onda priča balkanski ako je false onda neki drugi jezik)
3.


YCMD:test(playerid,params[],help) { /* YCMD */
#pragma unused params
#pragma unused help
      return \
            SCM(playerid, "Ovdje ide neÅ¡to na balkanskom.","In this field put some other language text."), true; }


Eto tesitirao sam i radi sve kako treba.

Puno me ljudi pitalo kako da nema parametar za boju SCM(id, boja, "","") - Olakšao sam to i napravio sam za 0.3c boje (hex)

npr.


YCMD:test(playerid,params[],help) { /* YCMD */
#pragma unused params
#pragma unused help
      return \
            SCM(playerid, ""#hex_BOJA"Ovdje ide neÅ¡to na balkanskom.",""#hex_BOJA"In this field put some other language text."), true; }


A napravno ako ne stavite ništa deafulth boja je 0xFFFFFF ( svijetlo plava )

Da ne bi rekao da koristiÅ¡ ZCMD takoÄ'er sam testirao sa istim kodom



COMMAND:test(playerid,params[]) { /* ZCMD */
   return \
       SCM(playerid, "Ovdje ide neÅ¡to na balkanskom.","In this field put some other language text."), true; }


Sve je radilo, pokušaj ponovno cijeli postupak.

EDIT: Nisam gledao, koristiš novu verziju u kojoj su dodane 0.3c boje tako da je parametar za boje maknut. Moraš koristiti "#hexa" boje i zaboravio sam objasniti onima koji su tražili da se funkcija GetPlayerLanguage postavi za return integer vrijednosti pa jednostavno koristite IsPlayerLanguage jer on returna integer dok GetPlayerLanguage returna automatski string kako bi si skratili posao sa formatiranjem integera
Poslednja Izmena: Avgust 01, 2011, 01:20:13 PRE PODNE od [H]265
Kristijan Stipić