Jump to content

Punct.

Membru
  • Posts

    488
  • Joined

  • Last visited

  • Days Won

    1

Everything posted by Punct.

  1. Warning-urile alea sunt de la .inc Verifica acel include si aranjeaza scriptul cum trebuie. Adica, sa nu fie un rand mai la dreapta, unul mai la stanga. Fiecare cum trebuie! Cum sa nu fie: if(...) { //linie1 //linie2 //linie3 } Cum sa fie: if(...) { //linie1 //linie2 //linie3 }
  2. ​http://forum.sa-mp.com/showthread.php?t=486060
  3. Daca te grabesti cu problema, poti face sa-ti spawneze si tir si remorca, sa te puna in tir si apoi sa-ti ataseze remorca. Si apoi sa-ti apara dialogul ala Daca nu te grabsesti, asteapta sa-ti raspunda cineva care stie.. eu nu am idee cum verifici cand ti-ai atasat un trailer.
  4. Poate te ajuta OnTrailerUpdate ? Explica-ne cum ai pana acum tot sistemul de trucker.
  5. Totusi, la email se vede urat. Poate daca micsorezi dimensiunea fontului, si faci casuta aia putin mai lunga, poate ar ajuta. Din simplul motiv ca am vazut cateva astfel de login/register-uri, pot spune ca se mai poate lucra la design.
  6. Hmm.. o sa incerc si ideea asta, dar vreun sfat cum diferentiez masinile? Adica, cand le am in gamemode sunt, de exemplu, politiev[1] = ... politiev[2] = ... .
  7. if(PlayerInfo[i][pHeadValue] > 0 && GotHit[i] == 0 && PlayerInfo[i][pMember] = 8) // sterge acel " ; " de la sfarsitul liniei cu if
  8. Ah..am inteles ce zici. Variabila masinitotal se modifica cand se incarca masinile pe server, deci mereu retine numarul maxim de masini. Daca mai adaug acel PlayerInfo[playerid][pCar] ajunge la id-ul unui vehicul care nu exista. Daca mai iau o variabila masinigamemode si o initializez cu numarul vehiculelor din gamemode, cand folosesc /masinilemele, ar trebui sa functioneze, nu? Adica, masinigamemode are valoarea 329, si nu se mai modifica. Daca masina mea are ID:5 in baza de date, cand folosesc comanda, ar trebui sa-mi dea informatiile despre masina 329+5, care exista pentru ca s-a incarcat in LCars, corect?
  9. ​da, dar memoreaza id-ul masinilor personale. gen: prima masina personala are ID:1, a doua masina personala are ID:2.. etc
  10. deasupa la cele cu [MAX_HOUSES]; adauga #define MAX_HOUSES 200 Pentru cea cu PlayerInfo, probabil ai copiat scriptul din alta parte. Probabil ai alt nume la acele variabile. Cauta PlayerData, sau vezi la alta comanda ce nume se foloseste.
  11. Salut. Recent am inceput sa-mi reverific niste sisteme, si am depistat o problema la masinile personale. Nu am idee cum sa explic problema, asa ca o sa ma exprim altfel. Sistemul este facut dupa tutorialul lui Maurice de cand a aparut pe YouTube. L-am facut, am adaugat ceva comenzi(pentru ca in videoclip nu erau), dar intampin unele probleme. Am definit o variabila masinitotal in care am memorat numarul de masini din gamemode: new masinitotal = 328; Atunci cand secumpara o masina personala, se adauga in dealersip, iar masinitotal creste(masinitotal ++;). In functia OnGameModeInit, am adaugat intai masinile normale(job-uri, factiuni, eventuri, civil), apoi am apelat functia LCars care incarca masinile din baza de date. In aceasta functie, cand se creaza o masina din baza de date, creste si maisnitotal(masinitotal++;). Pana aici, mie cel putin, mi se pare totul OK. Problema intervine ca, atunci cand dau /stats, imi arata un numar total aiurea la textul cu id-ul masinii(ar trebuie sa scrie Masina: Da[329], dar scrie Masina: Da[657]). Asa arata linia in care mi se formeaza textul: format(st, sizeof(st), "Da[%d]", PlayerInfo[targetid][pCar]+masinitotal); In concluzie, masinile nu se incarca cum vreau eu. Vreo solitie ca, dupa ce se adauga masinile din gamemode sa se incarce si cele din baza de date in continuare? Ar mai trebui sa precizez, ca masinile in baza de date incep cu numerotarea de la 1. Ar fi o solutie sa incep sa le numerotez de la masinitotal?
  12. ​Am uitat sa editez si aici.. am adaugat un GetPlayerName. Rog un moderator TC
  13. Aha, si regulamentul cine-l respecta? Vezi daca s-au incarcat plugin'urile, foloseste crashdetect vezi daca afli ceva..
  14. Rezolvat. Am pus auto_increment, si la INSERT INTO `_players` am sters partea cu ID-ul
  15. Problema intalnita (descriere): Am o baza de date, si am descoperit o problema. Nu se creaza conturile, deci nu se pot inregistra si conecta jucatorii pe server. Precizez ca nici in baza de date nu se adauga contul! Ero(area / rile) / warning-(ul / urile): - Liniile de cod / sursa / script-ul(obligatoriu): public OnAccountCheck(playerid) { new rows, fields; cache_get_data(rows, fields, mysql); if(rows != 0) //if there is row { new temp[128]; cache_get_field_content(0, "Password", temp), format(PlayerInfo[playerid][pPassword], 128, temp); PlayerInfo[playerid][pID] = cache_get_row_int(0, 0); //now let's load player's ID into PlayerInfo[playerid][ID] so we can use it later ShowPlayerDialog(playerid, D_Login, DIALOG_STYLE_INPUT, "Login", "Inainte de a putea juca pe server trebuie sa te loghezi.\n Introdu parola contului tau.", "Login", "Kick"); } else ShowPlayerDialog(playerid, D_Register, DIALOG_STYLE_INPUT, "Register", "Alege o parola si introdu-o in casuta de mai jos.", "Register", "Kick"); return 1; } public OnAccountLoad(playerid) { new rows, fields; cache_get_data(rows, fields, mysql); if(rows != 0) //if there is row { PlayerInfo[playerid][pLevel] = cache_get_row_int(0, 4); PlayerInfo[playerid][pCash] = cache_get_row_int(0, 5); PlayerInfo[playerid][pAdmin] = cache_get_row_int(0, 6); } else { ShowPlayerDialog(playerid, D_Login, DIALOG_STYLE_INPUT, "Login", "Inainte de a putea juca pe server trebuie sa te loghezi.\n Introdu parola contului tau.", "Login", "Kick"); SCM(playerid, c_alb, "-1"); } return 1; } public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) { switch(dialogid) { case D_Login: { if(!response) return Kick(playerid); if(strlen(inputtext) > 2) { mysql_format(mysql, query, sizeof(query), "SELECT * FROM `_players` WHERE `Username` = '%e' AND `Password` = '%e'", Name[playerid], inputtext); mysql_tquery(mysql, query, "OnAccountLoad", "i", playerid); } else ShowPlayerDialog(playerid, D_Login, DIALOG_STYLE_INPUT, "Login", "Parola trebuie sa contina minim 3 caractere", "Login", "Kick"); } case D_Register: { if(!response) return Kick(playerid); format(query, sizeof(query), "SELECT COUNT( * ) FROM `_players`"); resultq = mysql_query(mysql, query); PlayerInfo[playerid][pID] = cache_get_row_count() + 1; cache_delete(resultq); if(strlen(inputtext) < 3) return ShowPlayerDialog(playerid, D_Register, DIALOG_STYLE_INPUT, "Register", "Parola trebuie sa contina cel putin 3 caractere.", "Register", "Kick"); mysql_format(mysql, query, sizeof(query), "INSERT INTO `_players`(`ID`, `Username`, `Password`, `IP`) VALUES ('%d', '%e', '%s', '%s')", PlayerInfo[playerid][pID], Name[playerid], inputtext, IP[playerid]); resultq = mysql_query(mysql, query); cache_delete(resultq); } Imagini / Video (optional): https://youtu.be/zmz5UBTVhfYAti incercat sa rezolvati singur?: Da, e a nu stiu cata oara cand se intampla asta. O rezolv, si dupa ce timp iar apare problema.. fara ca eu sa modific ceva la sistemul login/register.
  16. Verifica daca primesti ceva erori in consola cand folosesti comenzile..
  17. Poate postezi si o comandat care face figuri.
  18. Incearca sa te folosesti de [url=https://wiki.sa-mp.com/wiki/OnVehicleDamageStatusUpdate]OnVehicleDameStatusUpdate
  19. ​Este 123 in script. Am copiat 1203 pentru ca am tot incercat sa schimb id-ul checkpoint-urilor, ma gandeam ca o fi folosite in alta parte, dar nu.
  20. Problema intalnita (descriere): Am incercat sa fac un nou job, folosind cateva checkpoint-uri, dar nu functioneaza cum trebuie. Bun. Cum ar trebui sa functioneze job-ul: Pas1: te urci in masina, scrii /job si iti apare un checkpoint(119) Pas2: cand intri in checkpoint, ti se pun doua obiecte pe masina si iti apare un alt checkpoint(120) random Pas3: cand intri in checkpoint 120, dispare un obiect, apare altul si iti da iar un checkpoint(122) random Pas4: cand intri in checkpoint 122, dispare celalalt obiect, se pune altul si iti da alt checkpoint(123) Pas5: cand intri in checkpoint(123) primesti banii, obiectele dispar, la fel si checkpoint-ul si se termina job-ul Cum functioneaza job-ul acum: - te urci in masina, scri /job si iti apare un checkpoint(119) - cand intri in checkpoint(119), se intampla ce ar trebui sa se intample la Pas2, Pas3, Pas4, Pas5 toate odata(adica iti da laditele, se schimb pe rand, primesti banii, dispar si termini job-ul) Ero(area / rile) / warning-(ul / urile): -Liniile de cod / sursa / script-ul(obligatoriu): Comanda /job: Imagini / Video (optional):Ati incercat sa rezolvati singur?: if(PlayerInfo[playerid][pJob] == 9)//"/job9"// Pomicultor { if(IsPlayerInAnyVehicle(playerid) && GetPlayerState(playerid) == PLAYER_STATE_DRIVER) { if(IsPomicultorVeh(newcar)) { if(Mere[playerid] == 0) { //StepPomicultor[playerid] = 1; CP[playerid] = 119; SetPlayerCheckpoint(playerid, 2899.0000, 1932.2500, 10.84, 2.5); SCM(playerid, c_alb, "Mergi sa iei laditele pentru a colecta mere."); } } else SCM(playerid, c_alb, "Nu esti intr-o masina de la job pomicultor."); } else SCM(playerid, c_alb, "Nu esti soferul unei masini."); } Cand intri in checkpoint-uri: if(CP[playerid] == 119) { if(PlayerInfo[playerid][pJob] == 9) { if(IsPlayerInAnyVehicle(playerid) && GetPlayerState(playerid) == PLAYER_STATE_DRIVER) { if(IsPomicultorVeh(vehicleid)) { if(Mere[playerid] == 0) { //if(StepPomicultor[playerid] == 1) //{ //StepPomicultor[playerid] = 2; cutie_pomicultor[playerid][0] = CreateObject(19639, 0, 0, -1000, 0, 0, 0, 100); AttachObjectToVehicle(cutie_pomicultor[playerid][0], GetPlayerVehicleID(playerid), -0.449999,-1.500000,0.400000,0.000000,0.000000,0.000000); cutie_pomicultor[playerid][1] = CreateObject(19639, 0, 0, -1000, 0, 0, 0, 100); AttachObjectToVehicle(cutie_pomicultor[playerid][1], GetPlayerVehicleID(playerid), 0.375000,-1.500000,0.400000,0.000000,0.000000,0.000000); DisablePlayerCheckpoint(playerid); CP[playerid] = 0; new nr = random(6); CP[playerid] = 120; SetPlayerCheckpoint(playerid, Copac[nr][0], Copac[nr][1], Copac[nr][2], 2.5); SCM(playerid, c_alb, "Ai luat doua cutii goale. Acum mergi in livata pentru a colecta merele."); //} else SCM(playerid, c_alb, "Error!"); } else SCM(playerid, c_alb, "Ai deja mere culese."); } else SCM(playerid, c_alb, "Nu esti intr-un vehicul pentru pomicultori."); } else SCM(playerid, c_alb, "Nu esti soferul unei maisini."); } else SCM(playerid, c_alb, "Nu esti pomicultor."); } if(CP[playerid] == 120) { if(PlayerInfo[playerid][pJob] == 9) { if(IsPlayerInAnyVehicle(playerid) && GetPlayerState(playerid) == PLAYER_STATE_DRIVER) { if(IsPomicultorVeh(vehicleid)) { Mere[playerid]++; //printf("Mere: %d", Mere[playerid]); //printf("StepPomicultor: %d", StepPomicultor[playerid]); DestroyObject(cutie_pomicultor[playerid][0]); cutie_pomicultor[playerid][0] = CreateObject(19637, 0, 0, -1000, 0, 0, 0, 100); AttachObjectToVehicle(cutie_pomicultor[playerid][0], GetPlayerVehicleID(playerid), -0.449999, -1.500000, 0.400000, 0.000000,0.000000,0.000000); DisablePlayerCheckpoint(playerid); CP[playerid] = 0; new nr = random(6); CP[playerid] = 122; SetPlayerCheckpoint(playerid, Copac[nr][0], Copac[nr][1], Copac[nr][2], 2.5); SCM(playerid, c_alb, "Ai strans o ladita cu mere. Mai ai de cules una inainte de a vinde merele."); //StepPomicultor[playerid] = 3; } else SCM(playerid, c_alb, "Nu esti intr-un vehicul pentru pomicultori."); } else SCM(playerid, c_alb, "Nu esti soferul unei maisini."); } else SCM(playerid, c_alb, "Nu esti pomicultor."); } if(CP[playerid] == 122) { if(PlayerInfo[playerid][pJob] == 9) { if(IsPlayerInAnyVehicle(playerid) && GetPlayerState(playerid) == PLAYER_STATE_DRIVER) { if(IsPomicultorVeh(vehicleid)) { if(Mere[playerid] == 1) { DisablePlayerCheckpoint(playerid); Mere[playerid]++; DestroyObject(cutie_pomicultor[playerid][1]); cutie_pomicultor[playerid][1] = CreateObject(19636, 0, 0, -1000, 0, 0, 0, 100); AttachObjectToVehicle(cutie_pomicultor[playerid][1], GetPlayerVehicleID(playerid), 0.374999, -1.500000, 0.400000, 0.000000,0.000000,0.000000); CP[playerid] = 0; //new nr = random(6); CP[playerid] = 123; SetPlayerCheckpoint(playerid, 2810.5000, 2020.2000, 10.580, 2.5); SCM(playerid, c_alb, "Ai strans doua laditi cu mere. Acum le poti vinde."); //StepPomicultor[playerid] = 4; } else SCM(playerid, c_alb, "Nu ai o ladita cu mere.."); } else SCM(playerid, c_alb, "Nu esti intr-un vehicul pentru pomicultori."); } else SCM(playerid, c_alb, "Nu esti soferul unei maisini."); } else SCM(playerid, c_alb, "Nu esti pomicultor."); } if(CP[playerid] == 123) { if(PlayerInfo[playerid][pJob] == 9) { if(IsPlayerInAnyVehicle(playerid) && GetPlayerState(playerid) == PLAYER_STATE_DRIVER) { if(IsPomicultorVeh(vehicleid)) { if(Mere[playerid] == 0) { SCM(playerid, c_alb, "Nu ai vreo ladita de mere."); DisablePlayerCheckpoint(playerid); CP[playerid] = 0; } else if(Mere[playerid] == 1) { SCM(playerid, c_alb, "Ai prea putine mere."); DisablePlayerCheckpoint(playerid); Mere[playerid] = 0; CP[playerid] = 0; } else if(Mere[playerid] == 2) { DisablePlayerCheckpoint(playerid); new castig = 6500 + random(1000); format(string, sizeof(string), "Felicitari! Ai vandut merele pentru %d$.", castig); PlayerInfo[playerid][pCash] += castig; UpdateMoney(playerid); SCM(playerid, c_alb, string); CP[playerid] = 0; Mere[playerid] = 0; DestroyObject(cutie_pomicultor[playerid][0]); DestroyObject(cutie_pomicultor[playerid][1]); } else SCM(playerid, c_alb, "S-a produs o eroare"); //StepPomicultor[playerid] = 0; } else SCM(playerid, c_alb, "Nu esti intr-un vehicul pentru pomicultori."); } else SCM(playerid, c_alb, "Nu esti soferul unei maisini."); } else SCM(playerid, c_alb, "Nu esti pomicultor."); }
  21. In poza 5 se vad niste bombe. Am crezut ca sunt obiecte. http://gta-sa-mp.de/forum/index.php?page=Objects&objPage=category&objID=40 gasesti aici bombe(obiect)
  22. Hmm, cred ca putei aseza mai frumos bomba aia cand o plantezi.. in rest arata bine. Felicitari!
  23. pawno.exe Am un pus #pragma dynamic 500000, si nu mai apar, dar vreau sa stiu si ce e asta si de la ce provine.
  24. Care-i treaba cu erorile din consola cu Head overflow? De la ce apar si cum se poate evita aparita lor? [debug] Run time error 8: "Heap underflow" [debug] Heap pointer (HEA) is 0x0, heap bottom (HLW) is 0x85B390 [debug] AMX backtrace: [debug] Run time error 8: "Heap underflow" [debug] Heap pointer (HEA) is 0x0, heap bottom (HLW) is 0x85B390 [debug] AMX backtrace: Am citit cate ceva pe .com, dar nu ma descurc prea bine la enleza si nu am inteles mare lucru.
  25. ​Mda, cred ca o sa pun in comentarii cate o parte din cod pana nu primesc erorile si poate reusesc sa aflu care e problema. Am pus tot ce era in OnGameModeInit, si nu mai aveam erorile )
×
×
  • 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.