-
Posts
56 -
Joined
-
Last visited
-
Days Won
3
Content Type
Profiles
Forums
News
Documentation
Everything posted by Uzzi_25
-
@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?
Uzzi_25 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?
Uzzi_25 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
Uzzi_25 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?
Uzzi_25 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?
Uzzi_25 replied to cstef4n's question in Ajutor Scripting
foloseste ce a zis colegul mai sus -
t te pwp
-
hmmm.................Te pwp
-
Aici sunt
-
Bravo
- 1 reply
-
- 1
-
-
[GM]80,000 linii Mega Edit BigZone v0.1 (v0.2 100,000 linii)
Uzzi_25 replied to Kenssy's topic in Gamemode-uri
Asta e edit ? Deja sunteti penibili in plm -
Ii inteleg , oricum acest joc in un an moare pwp patroane
-
Salut dupa cateva saptamani am ajuns la vorba altora . Gamemode este un edit bottles . System New: Tiki Quest: Tiki Map: Level Bar: Etc.. : Sistem Private Room in clubul The Pig Pen. (Doar pentru cei cu cont premium) VIP (una dintre avantajele contului VIP)Paintball: Mapele sunt personalizate.Cei mai buni ucigasi sunt salvati in baza de date si apar pe peretele Paintball-ului. (Cand un record este depasit, peretele se actualizeaza automat) (Poza de test)Sistem BackPack. (Un backpack poate fi cumparat dintr-un magazin 24/7)Sistem de upgrade-uri pentru conturi. Se castiga 1 Upgrade Point la fiecare nivel avansat. (Fiecare upgrade aduce un beneficiu jucatorului) (/upgrade)Toate benzinariile din LS / LV sunt indestructibile. Job-uri / Skill-uriO parte din accesoriile din Clothes Shop / 24/7.ROB Bank/bandana [1-9] pentru toate mafiile. Download: [hide]http://www50.zippyshare.com/v/IxCdRv2t/file.html[/hide] VirusTotal Scan: [hide]https://www.virustotal.com/ro/file/5f93e6e90ee7527d0592c230d69a6433222a941a821a2e06d38455665432656f/analysis/1499638010/[/hide] Plugin Download: [hide]http://www6.zippyshare.com/v/TbuvGjvB/file.html[/hide] Baza De Date: [hide]http://www6.zippyshare.com/v/xfpd2kwB/file.html[/hide] Panel: [hide]http://www56.zippyshare.com/v/FxXBrZXV/file.html[/hide] VirusTotal: [hide]https://www.virustotal.com/ro/file/f9c275c8c5a6873daf1d5c06f400c5e1ac7f0d89d7681e323aeb4347109521d9/analysis/1499639054/[/hide]
