Jump to content

Stalker1

Membru
  • Content Count

    9
  • Joined

  • Last visited

  • Days Won

    1

Stalker1 last won the day on January 30

Stalker1 had the most liked content!

Community Reputation

1 Neutru

About Stalker1

  • Rank
    Începător

Profile Information

  • Sex
    Masculin
  • Name in game
    Denis
  • Level of knowledge
    Mediu

Recent Profile Visitors

428 profile views
  1. Ca sa poti coda la un nivel decent, iar prin decent ma refer sa faci ceva sa mearga si sa aiba sens, iti recomand sa urmezi niste tutoriale cu fundamentele programarii, sa inveti ce e o conditie, un loop, o variabila, structuri de date, etc., mai precis cauta ce se invata in clasele a 9-a si a 10-a la liceu, dar poti sa te descurci si cu ce inveti in a 9-a (de preferat ce se invata la un liceu de informatica intensiv). Dupa asta, joaca-te putin cu limbajele C sau C++, acomodeaza-te cu sintaxa si cu diferite functii predefinite in ele, ca mai apoi sa ai o cale mai usoara catre Pawn care e un derivat din C. Cum zice si Banditul, cale usoara nu e, programarea nu o inveti de azi pe maine si o sa dureze o perioada de cateva saptamani, poate chiar luni bune sa intelegi anumite concepte, asta daca nu vrei sa faci ceva de pomana si doar sa arunci niste liniute de cod copiate sperand ca merg. Un sfat, nu lua ca exemplu copierea mot-a-mot a tututor sistemelor publicate pe diferite site-uri, incearca sa faci tu singur cateva micute la inceput, de la a face un timer, la a crea un sistem precum racing cu masini create, etc. Daca stii engleza bine, iti recomand canalul "thenewboston", ai extrem de multe tutoriale fundamentale pentru programare si te vor ajuta sigurat, dar sa nu uiti ca nu se va intampla peste noapte sa stii sa "scriptezi". Sa ai spor!
  2. Rulezi pe linux sau windows serverul? De asemenea, arata-mi cum ai trecut in server.cfg linia de Plugins
  3. Pune logurile sa le vedem (server_log.txt)
  4. Nu ai pus ";" sau "," la finalul apelului INI_ParseFile(......) PS: Poti folosi ",", deoarece ai inchis executia instructiunilor cu ";" pe randul de mai jos;
  5. Stalker1

    Problema

    Acel error pe linia 20832 e din cauza liniei precedente (20831), deoarece ai uitat ";" la final dupa return.
  6. Nu iti inteleg motivul de suparare, nu am dat intregul cod si atata timp cat i-am gasit rezolvarea, nu vad motiv de oftica. Ti-am raspuns ca treaba cu ID-ul chiar era inutila si ca am sters-o, de ce tot insisti pe ea ? Iar la partea de parametrii pentru functie nu influenta cu nimic acel playerid deoarece se transmite prin referinta si apeleaza exact variabila data prin parametru. Imi pare rau ca tu cauti un "multumesc" fortat si nu poti sa accepti faptul ca nu era aceea problema, ba chiar nu afecta negativ cu nimic functia respectiva. Ca sa iti arat mai clar care era problema iti voi da unu din exemplele gresite: Inainte aveam Player[playerid][Money] , iar dupa modificare am Player[numeid][Money] , unde numeid reprezinta id-ul(id-ul din joc nu cel din baza de date) celui ce i-au fost efectuate modificari, asta era toata problema, deoarece avand playerid lua in calcul doar persoana ce utilizeaza comanda, pe cand numeid poate sa ia si persoana respectiva in cazul in care isi da singura bani,level,etc. sau o alta persoana. Am sa iti arat si cum am simplificat noua functie ca sa vezi ca nu am modificari la continut, doar am eliminat. Acest Player[numeid][Money] se afla inafara functiei ca sa fie clar. stock Database_Update(idjucator,adminnume[]) { new query[255],Float:pos[4],nume[128]; GetPlayerPos(idjucator, pos[0], pos[1], pos[2]); GetPlayerFacingAngle(idjucator, pos[3]); GetPlayerName(idjucator,nume,sizeof(nume)); if(mysql_errno() == 0) { mysql_format(mysql, query, sizeof(query), "UPDATE `accounts` SET `Admin`= %d, `VIP`= %d, `Level`= %d, `RP`= %d, `Money` = %d, `PosX` = %f, `PosY` = %f, `PosZ` = %f, `PosA` = %f WHERE `ID` = %d ", Player[idjucator][Admin], Player[idjucator][VIP], Player[idjucator][Level], Player[idjucator][RP], Player[idjucator][Money], pos[0], pos[1], pos[2], pos[3], Player[idjucator][ID]); mysql_query(mysql,query); // SendClientMessage(idjucator, -1, "A fost updatata baza de date"); } else { SendClientMessage(idjucator,-1 ,"Conectarea la baza de date nu a reusit"); return 1; } /*new mesaj[255]; format(mesaj, sizeof(mesaj), "%s : Admin = %i , VIP = %i, Level = %i, RP = %i, Money = %i, PosX = %f, PosY = %f, PosZ = %f, PosA = %f", nume, Player[idjucator][Admin], Player[idjucator][VIP], Player[idjucator][Level], Player[idjucator][RP], Player[idjucator][Money], pos[0], pos[1], pos[2], pos[3]); SendClientMessage(GetPlayerIdFromName(adminnume), -1, mesaj); SendClientMessage(idjucator, -1, mesaj);*/ return 1; } Totusi, ti-am vorbit pe un ton neutru, nu te-am tratat sub nici un fel fara respect, dar pe viitor evita asemenea injurii aduse asupra cuiva, daca stii ca nu sunt adevarate. Nu te cunosc si nu am de ce sa intru in polemica cu tine.
  7. Legat de partea cu preluatul ID-ului aveai dreptate, e inutila. Legat de greseala, nu era aia greseala, eu acel select il faceam ca sa extrag ID-ul pentru cel caruia ii schimbam anumite lucruri. Greseala era una din neatentia mea, cand am creat niste comenzi, nu am inlocuit playerid cu id-ul celui care trebuia, astfel mereu il lua pe cel care foloseste comanda. Am rezolvat, acum merge. Puteti inchide topicul.
  8. Salut, am creat o functie prin care sa updatez in baza de date mysql profilul unui jucator dupa ce acesta sufera modificari (ex: bani, level, etc.). Problema sta in felul urmator: daca imi dau mie bani,level, sau orice alt ceva si apeleaza functia de updatare, totul bine si frumos, dar daca eu ca admin fac acelasi lucru altui jucator, acestuia nu i se updateaza. Codul pentru functia respectiva: stock Database_Update(playerid,adminnume[]) { new query[255],Float:pos[4],nume[128]; GetPlayerPos(playerid, pos[0], pos[1], pos[2]); GetPlayerFacingAngle(playerid, pos[3]); GetPlayerName(playerid,nume,sizeof(nume)); if(mysql_errno() == 0) { new rows,fields,string[255]; mysql_format(mysql, string, sizeof(string), "SELECT * FROM `accounts` WHERE `Name` = '%s'", nume); mysql_query(mysql, string); cache_get_data(rows,fields); Player[playerid][ID] = cache_get_field_content_int(0, "ID"); new testare[255]; format(testare,sizeof(testare),"Jucatorul %s[%d] cu ID = %d a primit de la Adminul %s",nume,playerid,Player[playerid][ID],adminnume); SendClientMessage(playerid, -1, testare); mysql_format(mysql, query, sizeof(query), "UPDATE `accounts` SET `Admin`= %d, `VIP`= %d, `Level`= %d, `RP`= %d, `Money` = %d, `PosX` = %f, `PosY` = %f, `PosZ` = %f, `PosA` = %f WHERE `ID` = '%d' ", Player[playerid][Admin], Player[playerid][VIP], Player[playerid][Level], Player[playerid][RP], Player[playerid][Money], pos[0], pos[1], pos[2], pos[3], Player[playerid][ID]); mysql_tquery(mysql,query); SendClientMessage(playerid, -1, "A fost updatata baza de date"); } else { SendClientMessage(playerid,-1 ,"Conectarea la baza de date nu a reusit"); return 1; } // new mesaj[255]; /*format(mesaj, sizeof(mesaj), "%s : Admin = %i , VIP = %i, Level = %i, RP = %i, Money = %i, PosX = %f, PosY = %f, PosZ = %f, PosA = %f", nume, Player[playerid][Admin], Player[playerid][VIP], Player[playerid][Level], Player[playerid][RP], Player[playerid][Money], pos[0], pos[1], pos[2], pos[3]); SendClientMessage(playerid, -1, mesaj);*/ return 1; } cand apelez functia arata asa: Database_Update(numeid, numeadmin); numeid si numeadmin sunt corecte, deoarece am pus o afisare in acea functie si afiseaza ce trebuie (numeid e id-ul din joc de pe TAB al jucatorului caruia i se atribuie modificari, iar numeadmin e un string cu numele adminului ce a facut modificarea - asta e doar de forma) Folosesc MYSQL-R39-4 pentru windows. Acelei variabile mysql de apare la mysql_tquery si mysql_format i-am dat valoare in OnGameModeInit. mysql = mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_DATABASE, MYSQL_PASSWORD);
×
×
  • Create New...

Important Information

This site uses cookies. By continuing browsing, you agree to the use of this information. For more details, see Terms of Use and Privacy Policy.