Pomoc-Pitanje oko safezona

Započeo Radonja Ludi, Januar 19, 2025, 13:23:11 POSLE PODNE

prethodna tema - sledeća tema

0 članova i 2 gostiju pregledaju ovu temu.

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.
Poslednja Izmena: Januar 19, 2025, 14:36:01 POSLE PODNE od markosimic
HTML / CSS / Javascript / Inspect : Entry Masterclass.
ReactJS / Tailwind CSS / PWA / Axios / SCSS / Redux, ViteJS : Entry Masterclass.
C / C++ / C# / C-objective - kroz Pawn Lang : Entry Masterclass
Grupisano Pravljenje Objekata : Filterscript.


Sta je to web development?
To je nesto ono kao, kako bih to rekao, izgubis volju za zivotom i zelis da se ubijes, ali to je okej.
Onda jednostavno shvatis da si bio glup i resis problem, das sam sebi lajk,
skuvas NES 3u1 i pripremis se za sledeci projekat.

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)
HTML / CSS / Javascript / Inspect : Entry Masterclass.
ReactJS / Tailwind CSS / PWA / Axios / SCSS / Redux, ViteJS : Entry Masterclass.
C / C++ / C# / C-objective - kroz Pawn Lang : Entry Masterclass
Grupisano Pravljenje Objekata : Filterscript.


Sta je to web development?
To je nesto ono kao, kako bih to rekao, izgubis volju za zivotom i zelis da se ubijes, ali to je okej.
Onda jednostavno shvatis da si bio glup i resis problem, das sam sebi lajk,
skuvas NES 3u1 i pripremis se za sledeci projekat.

Hvala puno obojci <3 drago mi je sto ima neko ko pomaze nama pocetnicima udaricu sistem kasnije