Jump to content

Uzzi25 .

Membru
  • Posts

    63
  • Joined

  • Last visited

  • Days Won

    3

Uzzi25 . last won the day on August 23 2025

Uzzi25 . had the most liked content!

About Uzzi25 .

  • 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 .'s Achievements

Enthusiast

Enthusiast (6/14)

  • Reacting Well Rare
  • First Post
  • Collaborator
  • Conversation Starter
  • Week One Done

Recent Badges

9

Reputation

  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. Working ....
  6. 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
  7. 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ă.
  8. 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; }
  9. daca ai nevoie de mai multe detali dami pm
  10. 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.
  11. 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;
×
×
  • 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.