Jump to content

andy47

Membru
  • Posts

    519
  • Joined

  • Last visited

  • Days Won

    7

Everything posted by andy47

  1. De ce nu iti pui putin mintea la contributie si iti construiesti propriul tau system?
  2. Te folosesti de functia ProxDetector sau iti creezi tu una personala. https://pastebin.com/PkqzpPYq 20.0 - reprezinta raza mesajului Fade1-5 - sunt culorile mesajului Restu banuiesc ca sti. Un exemplu: La OnPlayerText: format(string, sizeof string, "* %s spune: %s", GetName(playerid), text); ProxDetector(20.0, playerid, string, Fade1, Fade2, Fade3, Fade4, Fade5); // ---------------------------------- stock GetName(playerid) { new GetPName[24]; GetPlayerName(playerid, GetPName, sizeof(GetPName)); return GetPName; } // culorile #define Fade1 ( 0xE6E6E6E6 ) #define Fade2 ( 0xC8C8C8C8 ) #define Fade3 ( 0xAAAAAAAA ) #define Fade4 ( 0x8C8C8C8C ) #define Fade5 ( 0x6E6E6E6E )
  3. Asa ti-as recomanda si eu. Problema rezolvata. T/C!
  4. andy47

    T/C

    Pai iti scrie clar ca nu faci parte din acea factiune.
  5. Te deconecteaza de pe cont?
  6. Textdraw-ul tau trebuie sa fie definit ca un PlayerTextDraw, nu ca unul simplu. Posteaza tot ce ai legat de asta. Am creat si un exemplu la mine in pc cu care am testat si se modifica. https://pastebin.com/3BGikBXH
  7. Nu vad rostul creari unui nou textdraw.
  8. Cand dai compile foloseste streamer.inc din fisierul include de unde ai luat acest gamemode. Cel ce la creat a schimbat uni parametri, ma refer la astia Float:rxx, Float:ryy, Float:rzz Acum nu stiu daca va dauna pe viitor sau nu.
  9. new query[256], tmphour, tmpminute, tmpsecond, hour, minn, sec, Year, Month, Day; //GetFMembers(); //GClanMembers(); gettime(hour,minn,sec); gettime(tmphour, tmpminute, tmpsecond); getdate(Year, Month, Day); new datestr[128], timestr[32]; format(datestr,128,"~r~%02d ~w~~h~%02d %d", Day, Month, Year); format(timestr,32,"%02d~r~:~w~~h~%02d:~w~~h~%02d",tmphour,tmpminute,tmpsecond); TextDrawSetString(txtTimeDisp[0],timestr); TextDrawSetString(txtDateDisp,datestr); Vezi ca timer-ul sa faca update la functia SyncUp la 1 secunda.
  10. } if(PlayerInfo[i][pAdmin] >= 1) { new reports=0,cheaters=0,strr[128]; foreach(Player,id) { if(GetPVarInt(id, "Reported") == 1) { reports++; } if(GetPVarInt(id, "Reported") == 2) { cheaters++; } } if(reports > 0 || cheaters > 0) { PlayerTextDrawShow(i, ReportsTD); format(strr,sizeof(strr),"REPORTS: ~r~%d~w~ / CHEATERS: ~r~%d",reports,cheaters); PlayerTextDrawSetString(i, ReportsTD, strr); } else if(reports == 0 && cheaters == 0) { PlayerTextDrawHide(i, ReportsTD); } } else { PlayerTextDrawHide(i, ReportsTD); }
  11. Ai undeva o paranteza deschisa.
  12. Cum adica nu-ti arata nimic? Apasa tasta F5 sau butonul de Compile de sus. ( aratane niste poze/video )
  13. #1 MySQL Salutari! Pentru inceput, mysql este un sistem de gestionare a datelor cu ajutorul unei baza de date. O baza de data este o modalitate de a pastra informatiile intr-un mod structurat. Intr-o baza de date putem insera, extrage, modifica informatii. De-a lungul anilor diferiti scripteri ai comunitati sa-mp au creat/actualizat pluginul folosit de noi pentru conectarea server-ului la mysql. Ultima versiune de mysql este mysql r41-4 conceputa de catre maddinat0r. Link download: https://github.com/pBlueG/SA-MP-MySQL/releases . Cum instalam? Pentru a instala mysql, accesati linkul de mai sus si descarcati mysql-R41-4-win32.zip . Copiati mysql.dll in folderul plugin, a_mysql.inc includetil in libraria voastra pawno/include, iar libmariadb.dll si log-core.dll punetile in folderul cu server-ul dumneavoastra. Accesati server.cfg din folder-ul cu server-ul respectiv si adaugati la linia plugins ( daca nu aveti aceasta linie, o puneti creea dumneavoastra ) mysql.dll . plugins mysql.dll In gamemode-ul sau filterscript-ul dumneavoastra adaugati libraria mysql. #include <a_mysql> Cum conectam server-ul la o baza de date? In versiunea curenta de mysql r41-4 sunt doua metode pentru a creea conexiunea intre un server mysql si baza de date. Prima metoda ar fi cea cu mysql_connect. Ea este o functie a librariei mysql care ne permite conectarea la o baza de date. mysql_connect(const host[], const user[], const password[], const database[], MySQLOpt:option_id = MySQLOpt:0) const host[] - Acest parametru reprezinta gazda unde este gazduit server-ul mysql. const user[] - Acest parametru reprezinta numele de utilizator al contului a server-ului mysql pe care doriti sa va conectati. const password[] - Acest parametru reprezinta parola contului server-ului mysql pe care doriti sa va conectati. const database[] - Acest parametru reprezinta numele datei de baze la care doriti sa va conectati. MySQLOpt:option_id = MySQLOpt:0 - Acest parametru este unul optional. Se foloseste pentru a accesa diferite optiuni ale conexiuni. Pentru a creea anumite optiuni ale conectari la o baza de date ne folosim de functiile mysql_init_options si mysql_set_option . Functia mysql_init_options defineste o optiune a conectari. new MySQLOpt:optiune = mysql_init_options(); Functia mysql_set_option seteaza ce optiune sa acceseze. mysql_set_option(MySQLOpt:option_id, E_MYSQL_OPTION:type, {Float, _:...}) MySQLOpt:option_id - Acest parametru reprezinta id-ul optiuni de conectare. E_MYSQL_OPTION:type - Acest parametru reprezinta optiunea pe care sa o execute. {Float, _:...} - Acest parametru seteaza o valoare optiuni. (true/false) Un tabel cu toate optiunile se gaseste pe wikipedia http://wiki.sa-mp.com/wiki/MySQL/R40#Available_options . Aceste optiuni sunt optionale, eu personal nu le folosesc. A doua metoda ar fi cea cu mysql_connect_file. Ea este o functie care ne permite conectarea la baza de date, dar accesand un fisier .ini din folder-ul server-ului nostru. (acesta contine date despre conexiune si despre optiuni) mysql_connect_file(const file_name[] = "mysql.ini") Are un singur parametru care reprezinta fisierul care sa-l acceseze. Un exemplu de fisier mysql.ini: hostname = 127.0.0.1 username = root database = database password = paroladb // Daca nu aveti o parola, nu scrieti nimic in legatura de ea. autoreconnect = false port = 3306 Pentru a ne da seama ca server-ul s-a conectat la o baza de date ne vom folosi de crearea unui maner al conexiuni ( alias handle ) si de functia mysql_errno. mysql_errno(MySQL:handle = MYSQL_DEFAULT_HANDLE) Parametrul respectiv reprezinta manerul de conexiune al nostru. Functia mysql_close inchide conexiunea la server-ul mysql. mysql_close(MySQL:handle = MYSQL_DEFAULT_HANDLE) Acel parametru reprezinta numele manerului conexiuni noastre. Exemplu maner: new MySQL: aHandle; Pentru a creea un log al informatiilor ce vor fi inserate, extrase, modificate vom folosi functia mysql_log. Aceasta functie are diferite nivele. http://wiki.sa-mp.com/wiki/MySQL/R40#Log_levels Eu va recomand sa le folosit pe toate. mysql_log(ALL); Ce face mai exact? Iti arata erorile, avertizarile in legatura cu tot ce tine de mysql din script. #1 Exemplu de conectare: #include <a_samp> // libraria basic sa-mp #include <a_mysql> // includem libraria mysql pentru a avea acces la functiile ei new MySQL: aHandle; // cream manerul de conexiune a server-ului mysql la baza de date public OnGameModeInit() // acest callback este accesat cand aprindem server-ul ( samp-server.exe ) { aHandle = mysql_connect("localhost", "root", "", "database"); // functia accesata pentru conectare mysql_log(ALL); // sa ne afiseze erorile, avertizarile... if(mysql_errno(aHandle) != 0) // verificam daca conexiunea va avea loc { print("[MySQL]: Nu s-a putut conecta la baza de date."); } print("[MySQL]: Conectarea a reusit!"); return 1; } public OnGameModeExit() // acest callback este accesat cand inchidem server-ul { mysql_close(aHandle); // inchidem conexiunea la baza de date return 1; } #2 Exemplu de conectare: #include <a_samp> #include <a_mysql> new MySQL: aHandle; public OnGameModeInit() { aHandle = mysql_connect_file("mysql.ini"); mysql_log(ALL); if(mysql_errno(aHandle) != 0) { print("[MySQL]: Nu s-a putut conecta la baza de date."); } print("[MySQL]: Conectarea a reusit!"); return 1; } public OnGameModeExit() { mysql_close(aHandle); return 1; } Acum ca am conectat server-ul la baza de date, e timpul sa si o cream. Pentru conectarea pe localhost a unui server mysql la baza de date ne vom folosi de unul dintre programele urmatoare: XAMPP: https://www.apachefriends.org/ro/index.html WAMP: http://www.wampserver.com/en/ Instalam unul dintre programe, aprindem APACHE si MYSQL si accesam in browser-ul nostru localhost/phpmyadmin . https://imgur.com/a/WvjNMJt La database name introducem numele bazei de date, in cazul meu database si apasam Create. https://imgur.com/a/keeRBTv Cream primul tabel. In cazul meu Accounts unde as vrea sa am stocate datele tuturor jucatorilor ce intra pe server. https://imgur.com/a/N9zyf08 In acest tabel inseram diferite date pe care vreau sa le salvez. Ex.: ID fiecarui jucator, Numele fiecaruia, Parola lor, IP etc. etc. . De exemplu pentru stringuri voi folosi varchar, atentie mare nu puneti date exagerate. Gen pentru Numele jucatorului este destul si 24 de caractere sau de exemplu vrem sa cream o variabila Level care sa stocheze levelul unui jucator, nu e nevoie ca tipul datei sa fie un int, deoarece Levelul fiecarui jucator la mine pe server vreau sa fie maxim format din 2 cifre, ( exemplu level maxim 99 ) in cazul asta putem pune sa fie un tinyint deoarece facem economie de bytes. O sa se simta cand o sa fie mai multe randuri in baza de date. Tinyint pot fi date cuprinse intre 0-255 in cazul meu, deoarece nu merge si pe numere negative. Mai multe informatii legate de tipurile de date gasim aici: https://dev.mysql.com/doc/refman/8.0/en/integer-types.html de exemplu pentru numere intregi. UPDATE: Salutari! Aseara eram cam obosit, dar voi continua aici unele detalii despre bazele de date sa nu creez alte topicuri inutile. Pentru inceput, atunci cand adaugam un tip de data tinyint ( cum am dat exemplul ala mai sus ), pe acesta il putem declara ca find SIGNED sau UNSIGNED. Care este diferenta? De exemplu in cazul meu la o data de tip tinyint, atunci cand il declar SIGNED poatea avea valorii cuprinse intre -128 si 127, dar atunci cand il declar UNSIGNED poatea avea valori cuprinse intre 0 si 255. De unde stiu toate acestea? Daca ati citit bine mai sus v-am lasat un link de unde puteti sa va documentati in legaturi cu aceste valori. Mai pe romaneste atunci cand e UNSIGNED valorile incep de la 0, nu exista valori negative. Poza in care declar o data UNSIGNED: https://imgur.com/a/f8l2KlS . Ce este acel A_I? Acel A_I se numeste AUTO_INCREMENT. Acest A_I functioneaza cu orice tip de data intreaga. ( int ) La fiecare rand nou adaugat in baza de date, numarul asociat se va incrementa in baza de date. Atunci cand folosim aceasta operatie se va seta automat ca tipul asta de data este PRIMARY KEY adica este rolul primei coloane, reprezentand numarul de referinta pentru fiecare linie. Spre exemplu la mine acel "ID", acesta va primi cand adaug un rand nou in baza de date cate un numar diferit pentru fiecare rand. Gen am 1000 de randuri, ele vor fi numerotate in ordine crescatoare. ( 100, 101, 102, 103 ... ) Tot timpul Storage Engine va fi setat ca fiind InnoDB, este cel mai indicat pentru un server de sa-mp acest tip. In legatura cu informatii despre, in romana, motor de stocare gasiti pe internet. In legatura cu definirea valorilor direct din baza de date. Gen vrem sa cream un system de login/register care va salva datele jucatorilor intr-o baza de date. Atunci cand cream un system de genul, cand isi inregistreaza contul, trebuie sa-i inseram datele intr-un rand nou. Sa presupunem ca noi avem urmatoarele date: ID - sa se insereze automat numarul fiecarui rand; Name - care va reprezenta numele unui jucator; Password - care va reprezenta parola; Level - care va reprezenta nivelul jucatorului; Admin - care va reprezenta nivelul de administrator al jucatorilui; Experienta - care va reprezenta numar de puncte de experienta pe care le are jucatorul pentru a avansa in nivel. Atunci cand definim valorile direct din baza de date. Gen in cazul meu in script voi pune sa-i insereze numele si parola si voi evita sa insereze si valori pentru celelalte date deoarece le voi defini direct din baza de date. Un exemplu: mysql_format(aHandle, query, sizeof query, "INSERT INTO `Users`(`Name`,`Password`) VALUES('%s','%e')", GetName(playerid), inputtext); Linia care o am in script specifica inserari unui nou rand si poza cu datele setate default in baza de date: https://imgur.com/a/CzQFWbc . Gen la mine pe server cand se inregistreaza un jucator/un nou cont va avea Level 1, Admin 0 si va incepe cu 100 de puncte de experienta. De ce eu va indic sa faceti in felul asta? Pentru ca este mai usor si eviti unele neplaceri, deoarece atunci cand ai 100 de date, posibil sa te incurci in definirea valorilor datelor respective, gen cum am facut eu sau Massari in scriptul server-ului G-RolePlay: strcat( gQuery, "INSERT INTO `Users` " ) ; format( gQuery, sizeof gQuery, "%sVALUES( 0, '%s', '%s', 'No Mail', 'No Judet', '%s', 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)", gQuery, GetName( playerid ), Password, GetPlayerIP( playerid ) ); mysql_tquery( aHandle, gQuery, "", "" ) ; Si acum este un bug la conturi pe gamemode-ul respectiv din cauza la multitudinea de date definite din script adica acele zero-uri multe. Cam atat am avut de spus in legatura cu asta. Nu este cine stie ce acest tutorial, rog pe cei care au ceva de completat/modificat in legatura cu conexiunea sa o faca!
  14. @Zeca Presupun ca ai gm-ul burned. Adauga in pawno/include asta: https://www.solidfiles.com/v/GKz3jDBxZNjr2 si compileaza gm. EDIT: Acceseaza pawno.exe din folderul in care ai server-ul, poate tu incerci sa compilezi cu altul.
  15. Salut, pe host sau pe localhost?
  16. Nu ai definita variabila "toge". new toge[MAX_PLAYERS];
  17. Iti lipseste include-ul "systems" din libraria ta.
  18. andy47

    Problema SAMP

    Sa-ti zic cum e la mine. Apas F7 imi dispare chat-ul apoi trebuie sa scriu ceva in chat ca sa-mi apara inapoi, pot spama F7 non-stop ca nu apare , iar in legatura cu celelalte trebuie sa le scoti de la setari. OPTIONS -> DISPLAY OPTIONS sau cum scrie acolo. Succes!
  19. Salutari! Acele coarne sunt niste obiecte, mai exact id 19314. Idee ar sta in faptul ca trebuie sa creezi obiectul si sa-l atasezi pe masina. Foloseste functiile: http://wiki.sa-mp.com/wiki/CreateObject http://wiki.sa-mp.com/wiki/AttachObjectToVehicle Si pentru ca sa nu te chinui cu setarea coordonatelor foloseste un editor gen: http://forum.sa-mp.com/showthread.php?t=282883
  20. Ai nevoie si de cod css. Nu ma prea pricep, doar ti-am dat un sfat.
  21. Din ce vad acolo este folosita o bara dinamica pentru progres gen ca pe sa-mp cum e progressbar.inc . Cauta pe google ca sunt diverse tutoriale pentru asa ceva. php progress bar
  22. Pui la OnPlayerConnect: public OnPlayerConnect(playerid) { PlayAudioStreamForPlayer(playerid, "https://www.dl.dropboxusercontent.com/s/lxyq2qxobpidimj/Akcent%20-%20My%20Passion.mp3"); return 1; } Eu am incarcat pe dropbox la mine melodia aia. si la OnPlayerSpawn: public OnPlayerSpawn(playerid) { StopAudioStreamForPlayer(playerid); return 1; } Ori pui PlayAudioStreamForPlayer sa se acceseze atunci cand incepe tutorialul. Urmezi sirul actiunilor in fiserul tau .pwn ( Inregistrare, Logare, Varsta etc etc pana ajungi la inceperea tutorialului ).
×
×
  • 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. For more details you can also review our Terms of Use and Privacy Policy.