Jump to content

Uzzi25 Grenox

Membru
  • Posts

    69
  • Joined

  • Last visited

  • Days Won

    3

Uzzi25 Grenox last won the day on August 23 2025

Uzzi25 Grenox had the most liked content!

About Uzzi25 Grenox

  • Birthday 25.07.2000

Profile Information

  • Sex
    Masculin
  • Level of knowledge
    Experimentat

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

Uzzi25 Grenox's Achievements

Enthusiast

Enthusiast (6/14)

  • Dedicated Rare
  • Reacting Well Rare
  • First Post
  • Collaborator
  • Conversation Starter

Recent Badges

9

Reputation

  1. o sa fie ceva la final iti promit
  2. :)))) Imi doresc sa fac acest servar cat mai simplu , iti dai seama ca puteam sa il fac pe td cu seif etc dar il doresc simplu , dai o comanda si aia e nu incarcat
  3. @khain.dev ai dorit ceva poftim
  4. un scripter batran care isi doreste asta
  5. Sunt aici si sunt dispus sa facem asta
  6. Salut caut o echipa de scriptari
  7. 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
  8. 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
  9. 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ă.
  10. 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; }
  11. daca ai nevoie de mai multe detali dami pm
×
×
  • 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.