Jump to content

ChaWder

Member
  • Posts

    111
  • Joined

  • Last visited

Everything posted by ChaWder

  1. Congratz @soufyen! Hello guys! What's up?
  2. Salut colegi. Se mai face sedinta saptamana asta?
  3. Salut, noroc si tie. Pacat ca ai plecat.
  4. nu cred asa ceva, mor Prea penala faza, bestial.
  5. Paste fericit tuturor. Multumim de reduceri.
  6. Revin cu EDIT cu tot cu poza.
  7. Revin cu EDIT cu tot cu poza.
  8. Daca tot nu ai setat imaginea STOCK, imi poti spune tema pe care imaginea sa o aiba (girls, nature, etc.)? EDIT: Acum am vazut, Gangster Family. Revin cu poza.
  9. Salutare! Am decis ca astazi sa 'va invat' alt lucru util pentru serverele de SA:MP, acela fiind 'Kill Feed' pentru sistemul de Paintball. Pentru inceput, vom creea doua stock-uri in modul de joc: stock TrimiteDeathMSGLaPaint( killerid, playerid, reason ) // Cu aceasta functie vom trimite mesajul. { foreach(Player, i) { if( PlayerPaintballing[ i ] != 1 ) continue; // Schimbati variabila PlayerPaintballing cu cea din GM-ul vostru, este variabila care isi da seama daca jucatorul e in meci sau nu. SendDeathMessageToPlayer( i, killerid, playerid, reason ); // Aceasta functie este aparuta in SA-MP 0.3z R2-2, daca utilizati o versiune mai veche, nu o sa puteti porni serverul. } return 1; } stock StergeKillList() // Cu aceasta functie vom sterge lista cand meciul se va termina. { for(new i = 0; i < 5; i++) { SendDeathMessage( MAX_PLAYERS + 1, MAX_PLAYERS + 1, 255 ); } } Dupa ce ati introdus aceste stock-uri, mergem la callback-ul OnPlayerDeath (puteti ajunge cu CTRL+F) unde cautam cand se inregistreaza kill-urile facute la paintball (in cazul meu: PlayerPaintballing). if(PlayerPaintballing[playerid] != 0) // Variabila care inregistreaza daca esti sau nu in meci - Se poate gasi foarte usor la comanda /enterpaint, /enter, sau cum o aveti in modul de joc. { // Deasupra tuturor, sub verificare adaugati (NU DEASUPRA CONDITIEI / SUB "{"): TrimiteDeathMSGLaPaint( killerid, playerid, reason ); // Aici urmeaza alte coduri. } Cel mai important lucru este sa aveti grija la "{ }". Daca ati uitat una, modul de joc va intampina la compilare 26+ erori. (!)Sper ca v-a fost de ajutor. Un +1 nu strica.
  10. Problema la conectare erau de la ei, acum functioneaza, am testat.
  11. Salutare tuturor! Am decis sa-mi incep activitatea in aceste categorii de programare. Ca un prim tutorial, m-am decis sa fie "crearea unei simple comenzi" in PAWNO. Ce face comanda "/aaa"? Pe unele servere de SA:MP, aceasta comanda te introduce intr-un alt virtualworld si te teleporteaza la un loc setat de scripter. Aceasta comanda este folosita in special pentru testarea jucatorilor. Codul: CMD:aaa(playerid,params[]) { if(playerVariables[playerid][pAdminLevel] >= 1) { SetPlayerVirtualWorld(playerid,0); SetPlayerInterior(playerid,0); SetPlayerPos(playerid, 140.1661,1367.0115,1083.8594); // DE MODIFICAT COORDONATELE SendClientMessage(playerid,COLOR_WHITE,"Bun venit in lumea adminilor (VW: 1)"); } return 1; } Legenda: CMD:aaa -> comanda a fost scrisa prin intermediul ZCMD. playerVariables[playerid][pAdminLevel] >= 1 -> Aceasta conditia ne informeaza ca doar adminii cu level 1 in sus pot folosi aceasta comanda (playerVariables poate fii de multe tipuri: PlayerInfo, PlayerData, etc. ;;; pAdminLevel poate fii de multe tipuri: pAdmin, pALevel, etc.). SetPlayerVirtualWorld -> Seteaza Virtual World-ul celor care folosesc aceasta comanda. SetPlayerInterior -> Seteaza interiorul celor care folosesc aceasta comanda. SetPlayerPos -> Seteaza pozitia jucatorului dupa ce a tastat comanda. SendClientMessage -> Afiseaza un text in chat dupa tastarea comenzii. (!)Sper ca v-am fost de ajutor. Un +1 nu strica.
  12. Salut! Joci binisor din cate vad, felicitari. Uite un sfat: opreste muzica aceea atunci cand castigi / pierzi runda (volumul de muzica).
  13. Bun venit, sper sã te simți ca acasã. Bun venit, sper sã te simți ca acasã.
  14. Nu este problema de la PC-urile voastre, problema este de la serverele lor.
  15. Dacă eşti un pasionat al C++-ului sau pur şi simplu ai nevoie pentru la şcoală, sau mai mult, dai bacalaureatul la informatică, sunt aici pentru a te ajuta. Să presupunem că avem un fişier numit "vect.txt" (de la "vector" + extensia clasică pentru fişierele text: ".txt" *funcţionează pentru orice fel de nume şi orice fel de extensie, însă extensia nu trebuie să fie mai lungă decât 3 caractere). Acest fişier conţine o serie de numere, despărţite prin spaţiu (vector). 1 2 3 5 4 6 3 2 5 Vrem să realizăm un program care să memoreze conţinutul fişierului într-un vector, nu doar să afişeze pe ecran elementele acestuia. Pentru asta, tehnica mea este următoarea: declarăm un număr întreg care va lua valori de la 0 în sus (pozitive) ce va reprezenta numărul de caractere prezente în fişier (în afară de spaţii sau enter). Personal am numit această variabilă "caractere". int v[100], i, caractere=0; Trebuie ori declarată cu valoarea iniţială 0, ori dată ulterior valoarea 0, întrucât vom folosi incrementarea acestei variabile pentru fiecare caracter întâlnit în fişier. De asemenea, nu uitaţi de declararea streamului pentru fişier: ifstream f("vect.txt"); ifstream vine de la "In File STREAM" . Asociaţi asta cu luarea informaţiilor din fişier (programul intră în fişier pentru a lua cele necesare). Accesarea propriu-zisă a fişierului după declararea acestuia, personal o fac folosind instrucţiunea repetitivă WHILE (cât timp) while(!f.eof()) { //instructiuni } while = cât timp ! = diferit = nu e adevarat f = variabila fişier declarată mai sus prin ifstream f("vect.txt"); .eof() = metoda prin care detectăm finalul fişierului. "eof" vine de la "end of file" !f.eof() = cât timp citesc din fişier şi acesta nu s-a terminat. Această instrucţiune va lua caracter cu caracter din fişier, astfel vom putea face operaţii cu ele. Observăm că am declarat deci vectorul "v", număul de caractere ale fişierului "caractere", contuarul "i" şi fişierul "f". while(!f.eof()) { caractere++; f>>v[caractere]; } ce face acest set de instrucţiuni? traducere: cât timp nu e sfârşitul fişierului execut instrucţiunile: { incrementez variabila caractere cu 1 scot din fişier caracterul curent ( luând caracter cu caracter prin while(!f.eof()) ) şi îl memorez în vectorul v pe poziţia "caractere" } să presupunem deci că avem 3 numere în fişier: 5 7 8 caractere = 0; // iniţial, înainte să începem citirea din fişier while(!f.eof()) { caractere++; f>>v[caractere]; } caractere++; // caractere devine 1 prima data f>>v[caractere]; // caractere fiind 1, pe poziţia 1 a vectorului "v", se va memora primul număr întâlnit, adică 5 caractere++; // caractere devine 2 după ce se ajunge la al doilea caracter f>>v[caractere]; // caractere fiind 2 acum, pe poziţia 2 a vectorului "v", se va memora al doilea număr întâlnit, adică 7 caractere++; // caractere devine 3 după ce ajunge la al treilea caracter f>>v[caractere]; // caractere fiind 3, pe poziţia 3 a vectorului "v", se va memoraal treilea număr întâlnit, adică 8 nu mai sunt numere, deci s-a ajuns la finalul fişierului, deci se iese din instrucţiunea repetitivă "while" acum nu mai rămâne de făcut decât să afişăm elementele vectorului. for(i=1;i<=caractere;i++) { cout<<v<<" "; } am început să memorăm caracterele de la poziţia 1, deci le citim pornind de la poziţia 1. Contoarul "i" ia valori până la "caractere". (adică avem 3 caractere în exemplul dat mai sus cu 5 7 8, pornim de la 1 până la 3). Codul sursă de la programul în care avem screenshotul de mai sus:
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.