Pitanje/savet*: Oko safe zona gde nemoze igrac da koristi oruzje kao na SA
Opis*: Kreiranje safezona gde igrac ne moze da izvadi oruzje kao na skil areni na kom principu bih mogao to da odradim?
Dodatne informacije:
Citat: Dragi poslato Januar 19, 2025, 14:06:52 POSLE PODNEhttps://www.open.mp/docs/scripting/callbacks/OnPlayerGiveDamage
https://petlja.org/sr-Latn-RS/biblioteka/r/lekcije/prirucnik-cpp/petlje-for
https://www.open.mp/docs/scripting/functions/TogglePlayerControllable
https://www.open.mp/docs/scripting/functions/SendClientMessage
https://www.open.mp/docs/scripting/functions/SetTimerEx
https://www.open.mp/docs/scripting/functions/SetPlayerHealth
https://www.open.mp/docs/scripting/functions/GetPlayerPos
Moras se prvo pobrinuto da ti se safezone negde cuvaju. INI, SQL, MySQL, kako god. Necu da zalazim u taj deo cuvanja/ucitavanja.
U callbacku kroz for petlju prodjes na sve zone,proveris da li je igrac koji je upucan unutar neke zone (pomocu eksterne funkcije tvoje, npr, koja prima parametre playerid i zoneid, a vraca 0 i 1 ili bool) ako jeste zabrani mu to, ako playerid jeste, setaj mu fullhp. nikakva preterana logika.
Prekomplikovano za ovaj tip sistema.
Kreiraj prostu zonu : https://www.open.mp/docs/scripting/functions/GangZoneCreate
Napravis varijablu i proveru ukoliko je igrac unutar te zone : IsPlayerInSafeZone (1 ako jeste i 0 ako nije)
Ako igrac udje u safezone mozes postaviti da ona blinka za igraca : https://www.open.mp/docs/scripting/functions/GangZoneFlashForPlayer
Kada je unutar safezone uzimas mu parametre :
https://www.open.mp/docs/scripting/functions/GetPlayerWeaponData
Cuvas data od igraca u varijablu tipa : PlayerGunSlotWeapon1 PlayerGunSlotAmmo1
https://www.open.mp/docs/scripting/functions/ResetPlayerWeapons
Postavis reset oruzija.
Nakon sto izadje iz zone vratis mu oruzija koriscenjem varijabli i funkcijom : https://www.open.mp/docs/scripting/functions/GivePlayerWeapon
Jos prostije za napraviti je ovako.
Uzmes kreiras zonu, ukoliko opali metak u igraca da mu se skine svo oruzije. Da vidis kad ce sledeci put opucati u safe zoni.
Mozes ga prosiriti sa cuvanjem.
Napravis varijablu koja dodaje +1 svaki put kada je u safezoni i kada dosegne 3 da ga jail (3x je pogodio nekoga u safezoni ukupno) i to cuvas, kada dosegne 3x dobije jail il nesto.
Ovaj sistem se moze uraditi u milion razlicitih nacina, prostih, komplikovanih.
Ako koristis OpenMP onda je jos lakse jer imaju dosta toga integrisanog u vezi toga gde ces samo zabraniti koriscenje oruzija. SA je na omp koliko sam upucen.
https://www.open.mp/docs/scripting/functions/AllowPlayerWeapons
Ako mene licno pitas, samo bih napravio zonu i postavio ukoliko opali metak da izgubi svo oruzije. Takodje kada udje u safezonu jedan SendClientMessage koji ce ga upozoriti da je usao u safezonu i da ce se to dogoditi, takodje kada izadje iz iste da je izasao, dodao blinkanje kada udje i zaustavio isto kada izadje.
Evo, ovo sam nasao iz Athlone:
//zastita za SAFE ZONE
new Float:php;
for(new Sz; Sz < MAX_SZONE; Sz++)
{
if(IsPlayerInSafeZone(issuerid, Sz))
{
//new Float:x, Float:y, Float:z;
//GetPlayerPos(issuerid, x, y, z);
//ac_SetPlayerPos(issuerid, x, y, z+5);
TogglePlayerControllable(issuerid, false);
SetTimerEx("SlobodnoSada", 3000, false, "i", issuerid);
SCM(issuerid, CRVENA, "Ne mozes napadati igrace u sigurnoj zoni!");
}
if(IsPlayerInSafeZone(playerid, Sz))
{
GetPlayerHealth(playerid,php);
Fusion_SetPlayerHealth(playerid,98.0);
}
}
Evo da ti ne bih objasnjavao, nasao sam ti kod na forumu, sto znaci da nisi trazio uopste...
public OnPlayerUpdate(playerid)
{
for(new Sz; Sz < MAX_SZ; Sz++)
{
if(IsPlayerInRangeOfPoint(playerid, SafeZoneInfo[Sz][szSize], SafeZoneInfo[Sz][szPosX], SafeZoneInfo[Sz][szPosY], SafeZoneInfo[Sz][szPosZ]))
{
SetPlayerArmedWeapon(playerid, 0);
TextDrawShowForPlayer(playerid, textdraw_0);
TextDrawShowForPlayer(playerid, textdraw_1);
break;
}
else if(!IsPlayerInRangeOfPoint(playerid, SafeZoneInfo[Sz][szSize], SafeZoneInfo[Sz][szPosX], SafeZoneInfo[Sz][szPosY], SafeZoneInfo[Sz][szPosZ]))
{
TextDrawHideForPlayer(playerid, textdraw_0);
TextDrawHideForPlayer(playerid, textdraw_1);
break;
}
}
return 1;
}
Citat: markosimic poslato Januar 19, 2025, 14:34:01 POSLE PODNEPrekomplikovano za ovaj tip sistema.
Kreiraj prostu zonu : https://www.open.mp/docs/scripting/functions/GangZoneCreate
Napravis varijablu i proveru ukoliko je igrac unutar te zone : IsPlayerInSafeZone (1 ako jeste i 0 ako nije)
Ako igrac udje u safezone mozes postaviti da ona blinka za igraca : https://www.open.mp/docs/scripting/functions/GangZoneFlashForPlayer
Kada je unutar safezone uzimas mu parametre :
https://www.open.mp/docs/scripting/functions/GetPlayerWeaponData
Cuvas data od igraca u varijablu tipa : PlayerGunSlotWeapon1 PlayerGunSlotAmmo1
https://www.open.mp/docs/scripting/functions/ResetPlayerWeapons
Postavis reset oruzija.
Nakon sto izadje iz zone vratis mu oruzija koriscenjem varijabli i funkcijom : https://www.open.mp/docs/scripting/functions/GivePlayerWeapon
Jos prostije za napraviti je ovako.
Uzmes kreiras zonu, ukoliko opali metak u igraca da mu se skine svo oruzije. Da vidis kad ce sledeci put opucati u safe zoni.
Mozes ga prosiriti sa cuvanjem.
Napravis varijablu koja dodaje +1 svaki put kada je u safezoni i kada dosegne 3 da ga jail (3x je pogodio nekoga u safezoni ukupno) i to cuvas, kada dosegne 3x dobije jail il nesto.
Ovaj sistem se moze uraditi u milion razlicitih nacina, prostih, komplikovanih.
Ako koristis OpenMP onda je jos lakse jer imaju dosta toga integrisanog u vezi toga gde ces samo zabraniti koriscenje oruzija. SA je na omp koliko sam upucen.
https://www.open.mp/docs/scripting/functions/AllowPlayerWeapons
Ako mene licno pitas, samo bih napravio zonu i postavio ukoliko opali metak da izgubi svo oruzije. Takodje kada udje u safezonu jedan SendClientMessage koji ce ga upozoriti da je usao u safezonu i da ce se to dogoditi, takodje kada izadje iz iste da je izasao, dodao blinkanje kada udje i zaustavio isto kada izadje.
Znam, setio sam se u momentu gde ima jos takav slican sistem. Da ne bih ga zbunio eto, samo sam prosledio kodove, mislim da mu je tako lakse.
Citat: Dragi poslato Januar 19, 2025, 14:37:51 POSLE PODNEZnam, setio sam se u momentu gde ima jos takav slican sistem. Da ne bih ga zbunio eto, samo sam prosledio kodove, mislim da mu je tako lakse.
Samo optimisticno 8)
Hvala puno obojci <3 drago mi je sto ima neko ko pomaze nama pocetnicima udaricu sistem kasnije