-
Posts
63 -
Joined
-
Last visited
-
Days Won
3
Content Type
Profiles
Forums
News
Documentation
Everything posted by Uzzi25 .
-
o zis dupa
-
un scripter batran care isi doreste asta
-
Sunt aici si sunt dispus sa facem asta
-
Cine are nevoie de scripter
Uzzi25 . replied to Marian007's topic in Caut servicii / partener / etc.
Salut caut o echipa de scriptari -
Working ....
-
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
-
@sunkiete pwp
-
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ă.
-
Cum fac sa trimita o singura data mesajul jucatorului care intra in raza Aero LS?
Uzzi25 . replied to cstef4n's question in Ajutor Scripting
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; } -
De ce nu imi afiseaza meniul la Trans Fender?
Uzzi25 . replied to cstef4n's question in Ajutor Scripting
daca ai nevoie de mai multe detali dami pm -
warning 219: local variable "playerid" shadows a variable at a preceding level
Uzzi25 . replied to Kent8Skurt's question in Ajutor Scripting
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. -
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;
-
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
-
Felicitari @sunkie
-
poate am sa fac un remake la gamemode
-
De ce nu imi afiseaza meniul la Trans Fender?
Uzzi25 . replied to cstef4n's question in Ajutor Scripting
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 -
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; }
-
Cum fac sa trimita o singura data mesajul jucatorului care intra in raza Aero LS?
Uzzi25 . replied to cstef4n's question in Ajutor Scripting
foloseste ce a zis colegul mai sus -
t te pwp
-
hmmm.................Te pwp
