SpriTe_ Posted June 13, 2013 Report Share Posted June 13, 2013 Sistem de Limbi-Introducere:Urmarind multe TOPIC-uri de pe acest forum, jucandu-ma pe diferite servere chiar unice, am observat unele dificultati in scrierea corecta in diferite limi straine, ca: ENGLEZA , GERMANA chiar si ROMANA.Si am decis sa fac acest TOUTURIAL pentru a face munca unui scripter cat de cat mai usoara.-Inceputul:TOUTURIALUL va avea 6 pasi: 1.Sa creem o variabila care ne va fi folositoare in urmatorii pasi. 2.Sa definim limbile care vor fi folosite in scriere. 3.Sa creem limba care va predomina in acest FS/GM la callbackul OnPlayerConnect 4.Sa folosim corect variabilile create. 5.3 Custom functions for an easier usage.- SetPlayerLanguage(playerid, language);- GetPlayerLanguage(playerid);- SendLanguageMessage(playerid, lrom[], leng[], lde);PASUL 1 - Cream variabila ce va stoca limba folosita.Insertati aceasta variabila la inceputul scriptului:[pawn]new pLimba[MAX_PLAYERS char];[/pawn]si sa nu uitati de include-ul:[pawn]#include < a_samp >#include < zcmd >[/pawn]char - il punem pentru ca la compilare sa folosim mai putini byts.PASUL 2 - cream definitiile pentru limbile folosite.In cazul meu eu voi folosi doar 3 limbi, care le cunosc cel mai bine: " ROMANA, ENGLEZA, GERMANA ", nu am vrut sa pun si italina , spaniola, etc, caci ma complic eu pe mine si va voi complica eu pe voi.Insertam aceste definitii la inceputul scriptului:[pawn]#define ROM 0#define ENG 1#define DE 2#define SCM SendClientMessage[/pawn]PASUL 3 - limba ce va predomina pe server.la callbackul OnPlayerConnect punem limba care va predomina in cea mai mare parte pe server.Codul va arata astfel:[pawn]public OnPlayerConnect(playerid){ //Sa presupunem ca pe server va predomina limba Romana pLLimba{playerid} = ROM; SCM(playerid, -1, "Limba ce predomineaza in cea mai mare parte pe acest server este ROMANA"); SCM(playerid, -1, "Pentru a modifica limba foloseste: /ROM- pentru limba romana, /ENG- pentru limba engleza si /GER- pentru limba germana"); return 1;}[/pawn]PASUL 4 - cream 2 funtii simple.Cu ajutorul acestor doua functii simple veti putea verifica ce limba a selectat player-ul.[pawn]//Verifica ce limba a selectat playerul.stock GetPlayerLanguage(playerid) { return pLimba{playerid};}//Inserteaza limba playerului.stock SetPlayerLanguage(playerid, language) { pLimba{playerid} = language;}[/pawn]PASUL 5 - folosim functiile create de noi mai sus.Acum eu voi crea 3 comenzi pentru ca playerul sa-si poata alege mai usor limba dorita, in cazul meu le voi crea prin ZCMD[pawn]//Limba Romana.CMD: rom ( playerid , params [ ] ){ SCM ( playerid, -1, "Ai selectat limba romana ( ROM ) , de acum toate textele iti vor aparea in limba romana"); pLimba{playerid} = ROM; //Acum puteti sa vedeti la ce v-a ajutat prima variabila. return 1 ; //Aceasta spune serverului caci comanda a fost procesata cu succes !}//Limba EnglezaCMD: eng( playerid , params [ ] ){ SCM( playerid, -1, " You selected the English(ENG) language, now messages will be written in English"); pLimba{playerid} = ENG; return 1;}//Limba GermanaCMD: ger( playerid , params [ ] ){ SCM( playerid, -1, " Du hat di deutsche ( DE ) sprache gewahlt, nun Nachrichten in deutscher Sprache verfasst wurden"); pLimba{playerid} = DE;}[/pawn]Cum trimitem mesaje in diferite limbi?-Acum eu voi crea o comanda /help , care va avea trei optiuni, una in ROMANA, una in ENGLEZA si una in GERMANA.Acum sa ne folosim de functiile ce le-am aratat in " INCEPUTUL ":Exista doua variante una grea si una usoara:[pawn]CMD: help ( playerid , params [ ] ){ switch(GetPlayerLanguage(playerid)) { case ROM: SCM( playerid , -1 , " Bun venit in centrul de informatii ! "); SCM( playerid , -1 , " Textele cu informatii vin aici ! " ) ; case ENG: SCM( playerid , -1 , " Welcome in HELP-CENTER ! "); SCM( playerid , -1 , " Information here ! "); case DE: SCM( playerid , -1 , " Willkommen auf der Hilfe-Center ! " ); SCM( playerid , -1 , " Hilfe-Text hier ! " ); } } return 1;}[/pawn]Cum transmitem mesaje in diferite limbi, mai simplu ? -La fel folosim functiile din " INCEPUTUL " !-Pentru asta eu voi crea deja aici un STOCK[pawn]stock SendLanguageMessage(playerid, color, lrom[], leng[], lde[] ) // In loc de " color " puneti culoarea dorita.{ switch(GetPlayerLanguage(playerid)) { case ROM:SCM(playerid, color, lrom); case ENG:SCM(playerid, color, leng); case DE:SCM(playerid, color, lde); } return 1;}[/pawn]CREDITS Scripter Commands, creator Touturial - SpriTe_Ideea - Zh3r0Pentru tot ce stiu - AllexPS: Unii dintre voi care sunteti mai avansati al de Rock, SPEEDY, Gireada, probabil stiti ca aceasta este o mare parte din ideea lui Zh3r0, dar eu am facut-o pe ZCMD, si am facut-o mai usor de folosit. Quote Link to comment Share on other sites More sharing options...
[Funky]Anakin Posted June 13, 2013 Report Share Posted June 13, 2013 Arata destul de bine .Aranjarea imi place dar si cum ai scriptat .E bine ca te-ai folosit de ideea lui Zh3r0 .Felicitari . Quote Link to comment Share on other sites More sharing options...
Rock Posted June 13, 2013 Report Share Posted June 13, 2013 Ar fi ceva si asta, trebuie explicat un pic de tot mai bine dar merge, se intelege.Inafara de asta as recomanda y_languages. Multi mai eficient si mai usor de folosit. Quote Just Rock Link to comment Share on other sites More sharing options...
SpriTe_ Posted June 13, 2013 Author Report Share Posted June 13, 2013 Ar fi ceva si asta, trebuie explicat un pic de tot mai bine dar merge, se intelege.Inafara de asta as recomanda y_languages. Multi mai eficient si mai usor de folosit.Asta vroiam sa fac si eu cu y_languages, dar mi s-a parut ca trebuie sa mai invat un pic acolo, ca sa pot explica totul la punctul sau...Poate in urmatorul touturial fac cu y_languages Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.