Balkan SA:MP

PAWN skriptanje, gamemodovi, filterskripte, include fajlovi, mape, pluginovi => Razgovor u vezi PAWN - skriptanja => Temu započeo: Radonja Ludi poslato Januar 19, 2025, 13:23:11 POSLE PODNE

Naslov: Pomoc-Pitanje oko safezona
Poruka od: Radonja Ludi poslato Januar 19, 2025, 13:23:11 POSLE PODNE
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:
Naslov: Odg: Pomoc-Pitanje oko safezona
Poruka od: markosimic poslato Januar 19, 2025, 14:34:01 POSLE PODNE
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.
Naslov: Odg: Pomoc-Pitanje oko safezona
Poruka od: Dragi poslato Januar 19, 2025, 14:35:25 POSLE PODNE
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;
}
Naslov: Odg: Pomoc-Pitanje oko safezona
Poruka od: Dragi poslato Januar 19, 2025, 14:37:51 POSLE PODNE
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.
Naslov: Odg: Pomoc-Pitanje oko safezona
Poruka od: markosimic poslato Januar 19, 2025, 14:40:02 POSLE PODNE
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)
Naslov: Odg: Pomoc-Pitanje oko safezona
Poruka od: Radonja Ludi poslato Januar 19, 2025, 17:20:00 POSLE PODNE
Hvala puno obojci <3 drago mi je sto ima neko ko pomaze nama pocetnicima udaricu sistem kasnije