Jump to content

Uzzi25 .

Membru
  • Posts

    63
  • Joined

  • Last visited

  • Days Won

    3

Everything posted by Uzzi25 .

  1. Uzzi25 .

    New Project

    un scripter batran care isi doreste asta
  2. Uzzi25 .

    New Project

    Sunt aici si sunt dispus sa facem asta
  3. Salut caut o echipa de scriptari
  4. Cei 2 nu au un gta curat asa cum ai tu nevoie incearca cu un alt gta care sa fie clear fara nici un fel de mod
  5. Salut sunt Uzzi25 si doresc sa va spun ca prin aceasta comunitatea am trait copilaria de la primul tepar care nu mi a dat un sv de samp pe un cod reincarcabil vodafone Asa am zis ce ma eu nu pot si uite ca azi am resuit sa fac un nume online prin ajutor si restul sa resune pana in 2026 app din 2014 pwp
  6. Da, aici problema este foarte clară. Nu comanda /setbonus este problema, ci SetBonusActiv = 0 este pus în interiorul foreach. Practic, faci asta: foreach(Player, i) { ... PlayerInfo[i][pCashMoney] += MoneyAll; ... SetBonusActiv = 0; } La primul player găsit în foreach, bonusul este acordat, apoi: SetBonusActiv = 0; și pentru următorii jucători condiția: if(SetBonusActiv == 1) devine falsă. Soluția Mută resetarea bonusului după foreach, nu în interiorul lui. function BonusForAll() { new string[129]; if(SetBonusActiv == 1 && GetPlayersOnline() >= PlayersOnlineForBonus) { format(string, sizeof(string), "The server has reached %d players online and you have received: $%s, %d respect points, %d premium points.", PlayersOnlineForBonus, FormatNumber(MoneyAll), RespectPointsForAll, PremiumPointsForAll ); foreach(Player, i) { if(IsPlayerConnected(i) && IsPlayerLogged[i] == 1) { SCM(i, COLOR_YELLOW, string); PlayerInfo[i][pCashMoney] += MoneyAll; UpdateVar(i, "CashMoney", PlayerInfo[i][pCashMoney]); ResetPlayerMoney(i); GivePlayerMoney(i, PlayerInfo[i][pCashMoney]); PlayerInfo[i][pRespectPoints] += RespectPointsForAll; UpdateVar(i, "RespectPoints", PlayerInfo[i][pRespectPoints]); PlayerInfo[i][pPremiumPoints] += PremiumPointsForAll; UpdateVar(i, "PremiumPoints", PlayerInfo[i][pPremiumPoints]); } } // Resetam bonusul DUPA ce l-am dat tuturor SetBonusActiv = 0; MoneyAll = 0; PremiumPointsForAll = 0; RespectPointsForAll = 0; PlayersOnlineForBonus = 0; } return 1; } Am schimbat și == în >= Tu aveai: if(GetPlayersOnline() == PlayersOnlineForBonus) Eu recomand: if(GetPlayersOnline() >= PlayersOnlineForBonus) De exemplu ai setat: /setbonus 100000 10 5 50 La 50 de jucători → bonusul se acordă. Dar dacă timerul verifică la 1 secundă și serverul ajunge, de exemplu, de la 49 la 51 de jucători între două verificări, cu == 50 bonusul nu se mai acordă niciodată.
  7. Problema este că timerul tău rulează o dată pe secundă, iar cât timp playerul rămâne în raza de 150.0, condiția rămâne adevărată și MessageAeroLS(i) este apelat în fiecare secundă. IsPlayerInRangeOfPoint doar verifică dacă playerul este în raza respectivă; nu ține minte dacă a intrat deja. Tu ai deja ZonaAeroLS[i], deci trebuie să o folosești ca flag. Varianta corectă function EsteInZonaAeroLS() { foreach(Player, i) { if(IsPlayerConnected(i) && IsPlayerLogged[i] == 1) { if(IsPlayerInRangeOfPoint(i, 150.0, 1950.2032, -2366.4846, 13.5469)) { // Playerul tocmai a intrat în zonă if(ZonaAeroLS[i] == 0) { ZonaAeroLS[i] = 1; MessageAeroLS(i); } } else { // Playerul a ieșit din zonă ZonaAeroLS[i] = 0; } } } return 1; } Cum funcționează Când playerul este în afara zonei: ZonaAeroLS[i] = 0; Când intră în raza de 150: if(ZonaAeroLS[i] == 0) este adevărat, deci: ZonaAeroLS[i] = 1; MessageAeroLS(i); Mesajul se trimite o singură dată. Apoi timerul verifică din nou după o secundă, dar: ZonaAeroLS[i] == 1 deci MessageAeroLS(i) nu mai este executat. Când playerul iese din raza de 150, se face: ZonaAeroLS[i] = 0; iar când intră din nou, primește din nou mesajul. Foarte important Trebuie să ai array-ul definit undeva global, de exemplu: new ZonaAeroLS[MAX_PLAYERS]; Și recomand să îl resetezi când playerul se conectează: public OnPlayerConnect(playerid) { ZonaAeroLS[playerid] = 0; return 1; } și eventual la disconnect: public OnPlayerDisconnect(playerid, reason) { ZonaAeroLS[playerid] = 0; return 1; }
  8. daca ai nevoie de mai multe detali dami pm
  9. Salut! Problema este clară: ai declarat playerid local în două blocuri unde există deja un playerid într-un nivel exterior. Warning-ul 219: local variable "playerid" shadows a variable at a preceding level nu este, de obicei, o eroare care oprește compilarea, ci un warning de variabilă „ascunsă”. 1. Warning-ul de la linia 12542 Ai: { new string[256], playerid; Dar în funcția/blocul în care se află codul există deja un playerid mai sus. Mai jos îl folosești: if(limitabanuri[playerid] > 0) și: PlayerInfo[playerid][pAdmin] = 0; Deci nu trebuie să declari încă un playerid. Schimbă: new string[256],playerid; în: new string[256]; Asta ar trebui să elimine warning-ul de la 12542. 2. Warning-ul de la linia 12965 Aici ai: new query[300],playerid,giverid,actionid,actiontime,complaint,reason[64],stringg[256],playername[30],givername[30],var100[300],dm,reason2[64]; Din nou, playerid există deja într-un nivel superior. Ai două variante. Varianta recomandată Dacă playerid exterior nu este folosit în această funcție pentru altceva, poți redenumi variabila locală: new query[300], panelPlayerID, giverid, actionid, actiontime, complaint, reason[64], stringg[256], playername[30], givername[30], var100[300], dm, reason2[64]; Și schimbi: playerid = cache_get_field_content_int(i, "playerid"); în: panelPlayerID = cache_get_field_content_int(i, "playerid"); Dacă mai jos în cod ai: playerid care se referă la ID-ul din panelactions, trebuie să le schimbi și pe acelea în: panelPlayerID Important În primul cod ai chiar: foreach(Player,i) și: foreach(Player,k) Acele variabile (i, k) sunt diferite și nu reprezintă problema. Problema este strict: new ..., playerid; într-un loc unde Pawn are deja un playerid definit mai sus. Modificările minime Linia 12542: new string[256]; în loc de: new string[256],playerid; Linia 12965: redenumește playerid local în ceva precum: panelPlayerID pentru că aici reprezintă ID-ul playerului citit din tabela panelactions.
  10. case 8: { // Verificam daca exista un apel medical activ pentru acest player if (MedicCall[idz] != idz) return SCM(playerid, COLOR_WHITE, "Acest player nu a solicitat ambulanta."); // Verificam daca playerul este medic if (PlayerInfo[playerid][pMember] != return SCM(playerid, COLOR_WHITE, "Nu esti medic!"); // Verificam daca medicul are deja un apel acceptat if (MedicCallTime[playerid] > 0) return SCM(playerid, COLOR_WHITE, "Ai acceptat deja un apel medical!"); // Verificam daca medicul se afla intr-o ambulanta if (!IsAnAmbulance(GetPlayerVehicleID(playerid))) return SCM(playerid, COLOR_WHITE, "Nu esti intr-o ambulanta!"); // Anuntam factiunea ca apelul a fost acceptat new string[256]; format( string, sizeof(string), "* [Paramedic Dispatch]: Paramedicul %s (%d) a acceptat comanda lui %s (%d)! *", GetName(playerid), playerid, GetName(idz), idz ); SendFactionMessage(8, COLOR_LIGHTBLUE, string); // Anuntam playerul care a solicitat ambulanta format( string, sizeof(string), "Medicul %s vine catre tine. Te rugam sa astepti ambulanta.", GetName(playerid) ); SCM(idz, COLOR_YELLOW, string); // Pornim cautarea playerului TimerFind[playerid] = SetTimerEx( "FindPlayer", 1000, true, "ii", playerid, idz ); // Setam checkpoint-ul pentru medic CP[playerid] = 4; // Salvam playerul catre care se indreapta medicul targetfind[playerid] = idz; // Marcam ca medicul are un apel activ UsedFind[playerid] = 1; MedicCallTime[playerid] = 1; // Apelul a fost preluat MedicCall[idz] = -1;
  11. This map features a tropical/jungle island with an old, abandoned fort on it. There is also a small pier with a half-sunken ship nearby. 323 objects total. Pastebin: https://pastebin.com/UNBgjiAB
  12. Felicitari @sunkie
  13. nu mai am
  14. poate am sa fac un remake la gamemode
  15. In seamna ca in zona respectiva nu ai setat un Pay'n'Spray cu coordonade din gm sau nu folosesti in zona respectiva urmatoarele OnPlayerEnterVehicle OnPlayerStateChange OnPlayerUpdate SetVehicleParamsEx
  16. Salutare! Problema e aici: CarClan[idz][vSpawned] = 0; DestroyVehicle(CarClan[idz][vSpawned]); Întâi setezi vSpawned la 0, iar apoi încerci să distrugi vehiculul 0. Practic, pierzi ID-ul vehiculului înainte să apelezi DestroyVehicle(). Trebuie să salvezi ID-ul sau să apelezi DestroyVehicle() înainte să-l setezi la 0. De exemplu: CMD:removevehicleclan(playerid, params[]) { new clanid; if(sscanf(params, "i", clanid)) return SCM(playerid, COLOR_SERVER, "Syntax: {FFFFFF}/removevehicleclan [clanid]"); for(new idz = 0; idz < MAX_CARS; idz++) { if(CarClan[idz][vClanID] == clanid) { if(CarClan[idz][vSpawned] != 0) { DestroyVehicle(CarClan[idz][vSpawned]); CarClan[idz][vSpawned] = 0; } CarClan[idz][vClanID] = 0; } } new string[128]; mysql_format(SQL, string, sizeof(string), "DELETE FROM clan_vehicles WHERE ClanID=%d", clanid ); mysql_tquery(SQL, string, "", ""); return 1; }
  17. hmmm.................Te pwp
×
×
  • 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.