Sistem pljacke

Započeo DomacX3
9. Jun 2019. Zaključano
1,136
pregleda
8
postova
DomacX3
2
Street Runner
9. Jun 2019.
Problem(error/warning): Znaci napravio sam sistem pljackanja koji bi kada se ukuca /pljacka provjerio u kojem enterijeru je igrac. Provjerio bi listu enterijera preko petlje te bi se zapocela pljacka kada bi pronasao prvi ID. To je radilo savrseno, no jedan problem je bio to sto bi mogao robati neke enterijere koje ne bi smio (npr. CJ-eva kuca, policijska stanica, itd.). Zato sam odlucio napraviti jos jednu listu, a to su koordinate od svakog enterijera koji se moze robati. Napravio sam da kada se kuca /pljacka provjeri da li je igrac blizu tih koordinata, i ako je zapocne se pljacka. No, iz nekog razloga, server mi samo vrati "SERVER: Unknown command", a kada npr. probam robati kada nisam u enterijeru ili sam policajac itd komanda normalno vrati porukud da ne mogu robati. Postavio sam jedan thread na SAMP forumima, no tamo nitko nije dosao do rjesenja pa se nadam da ce mi tu netko pomoci (posto je skripta ipak na balkanskom pa ce vam biti lakse razumjeti 🙂 )
Deo skripte:

new EnterijerPljacka[]={17, 10, 18, 16, 4, 6, 1, 7, 3, 15, 14, 5, 11, 9, 2};
new Float:EnterijerLokacije[][] =
{
    {-25.884498,-185.868988,1003.546875},
    {6.091179,-29.271898,1003.549438},
    {-30.946699,-89.609596,1003.546875},
    {-25.132598,-139.066986,1003.546875},
    {-27.312299,-29.277599,1003.557250},
    {-26.691598,-55.714897,1003.546875},
    {286.148986,-40.644397,1001.515625},
    {286.800994,-82.547599,1001.515625},
    {296.919982,-108.071998,1001.515625},
    {314.820983,-141.431991,999.601562},
    {316.524993,-167.706985,999.593750},
    {833.269775,10.588416,1004.179687},
    {-103.559165,-24.225606,1000.718750},
    {-2240.468505,137.060440,1035.414062},
    {207.737991,-109.019996,1005.132812},
    {204.332992,-166.694992,1000.523437},
    {207.054992,-138.804992,1003.507812},
    {203.777999,-48.492397,1001.804687},
    {226.293991,-7.431529,1002.210937},
    {161.391006,-93.159156,1001.804687},
    {493.390991,-22.722799,1000.679687},
    {501.980987,-69.150199,998.757812},
    {-227.027999,1401.229980,27.765625},
    {457.304748,-88.428497,999.554687},
    {454.973937,-110.104995,1000.077209},
    {435.271331,-80.958938,999.554687},
    {681.557861,-455.680053,-25.609874},
    {375.962463,-65.816848,1001.507812},
    {369.579528,-4.487294,1001.858886},
    {373.825653,-117.270904,1001.499511},
    {381.169189,-188.803024,1000.632812},
    {1212.019897,-28.663099,1000.953125},
    {761.412963,1440.191650,1102.703125},
    {1204.809936,-11.586799,1000.921875},
    {-2640.762939,1406.682006,906.460937}
};

CMD:pljacka(playerid, params[])
{
new vijesti;
new ime;
GetPlayerName(playerid, ime, sizeof(ime));
print("Komanda je upisana...");

if(PlayerInfo == 1) return SCM(playerid, -1, "{ff0000}PLJACKA:{FFFFFF} Vi ste policajac! Ne mozete pljackati ducane!");
print("Provjereno: Da li je policajac?");
if(GetPlayerInterior(playerid) == 0) return SCM(playerid, -1, "{ff0000}PLJACKA: {FFFFFF}Morate biti u ducanu koji se moze pljackati!");
print("Provjereno: Da li je interior 0?");
if(CanRob == 0) return SCM(playerid, -1, "{ff0000}PLJACKA:{FFFFFF} Morate pricekati prije nego sto biste opet pljackali!");
print("Provjereno: Moze li igrac pljackati?");
for(new i = 0; i < sizeof(EnterijerLokacije); i++)
{
print("Petlja se pokrece...");
    if(IsPlayerInRangeOfPoint(playerid, 50.0, EnterijerLokacije, EnterijerLokacije, EnterijerLokacije))
    {
print("Zapocinje se pljacka nigeri!!!!! NAPOKON!");
if(GetPlayerWeapon(playerid) == 0) return SCM(playerid, -1, "{ff0000}PLJACKA:{FFFFFF} Morate imati oruzije u ruci za pljacku!");
SetTimerEx("PljackaVrijeme", 120000, false, "i", playerid);
PlayAudioStreamForPlayer(playerid, "https://www.iradeo.com/stream/157252.pls");
VrijemePljacke = 30;
CanRob = 0;
UsredPljacke = 1;
TimerPljacka = SetTimer("Pljackanje", 1000, true);
PlayerInfo += 4;
SetPlayerWantedLevel(playerid, PlayerInfo);
SCM(playerid, -1, "{ff0000}PLJACKA:{ffffff} Zapoceli ste pljacku! Pricekajte 30 sekundi...");
SCM(playerid, -1, "{ff0000}PLJACKA:{ffffff} Kamere su vas uhvatile, te je pljacka bila prijavljena policiji!");
SCM(playerid, -1, "{ff0000}PLJACKA:{ffffff} Vas wanted level je sada veci za {FF0000}4!");
format(vijesti, sizeof(vijesti), "{00a9ff}VIJESTI: {00bbff}%s je poceo/la pljackati ducan/kucu. Pljacka je prijavljena policiji!", ime);
SetPlayerShopName(playerid,"");
SendClientMessageToAll(-1, vijesti);
break;
}
else return SCM(playerid, -1, "{FF0000}PLJACKA: {FFFFFF}Ovaj biznis ne mozete pljackati!");
}

return 1;
}

Debug iz server_log(ukoliko je u pitanju crashanje servera - crashdetect log): [ code ]Ne crasha mi sever.[ /code ]
Slika/video ingame problema(obavezno ako je ingame problem): Sumnjam da je potrebno. Udjem u enterijer i kada kucam /pljacka pise mi "SERVER: Unknown command" . Takodjer, u konzoli mi zadnje vrati "Petlja se pokrece..." kao sto se vidi u 'print' funkciji.
TerzaScripting
5
Underboss
9. Jun 2019.
Ne možeš da koristiš else return kod petlji ako barem hoćeš da se izvrše ..
Nema potrebe za toliki range oko provere igračeve pozicije.
Upravo sam testirao kod i radi savršeno kod mene .

IsPlayerNearRobLocation(playerid)
{
    for(new p = 0; p < sizeof(EnterijerLokacije); p++)
    {
        if(IsPlayerInRangeOfPoint(playerid, 30.0, EnterijerLokacije, EnterijerLokacije, EnterijerLokacije)) return 1;
    }
    return 0;
}

if(!IsPlayerNearRobLocation(playerid))
    return SendClientMessage(playerid, -1, "Ovaj biznis se ne mozes opljackati ili niste na odgovarajucoj lokaciji !");

DomacX3
2
Street Runner
9. Jun 2019.
Terzic wrote on June 9, 2019, 7:56 pm:
Ne možeš da koristiš else return kod petlji ako barem hoćeš da se izvrše ..
Nema potrebe za toliki range oko provere igračeve pozicije.
Upravo sam testirao kod i radi savršeno kod mene .

IsPlayerNearRobLocation(playerid)
{
    for(new p = 0; p < sizeof(EnterijerLokacije); p++)
    {
        if(IsPlayerInRangeOfPoint(playerid, 30.0, EnterijerLokacije, EnterijerLokacije, EnterijerLokacije)) return 1;
    }
    return 0;
}

if(!IsPlayerNearRobLocation(playerid))
    return SendClientMessage(playerid, -1, "Ovaj biznis se ne mozes opljackati ili niste na odgovarajucoj lokaciji !");



Brt hvala ti puno na odgovoru, ali ako nije problem mozes li mi objasniti kakva je to funkcija "IsPlayerNearRobLocation". Sutra kad dodjem doma cu isprobati skriptu. 🙂
TerzaScripting
5
Underboss
9. Jun 2019.
DomacX3 wrote on June 9, 2019, 9:07 pm:
Brt hvala ti puno na odgovoru, ali ako nije problem mozes li mi objasniti kakva je to funkcija "IsPlayerNearRobLocation". Sutra kad dodjem doma cu isprobati skriptu. 🙂

Mozes i bez nje ali ako koristis negde jos bilo bi pozeljno. Ona ti jednostavno proverava da li je igrac na toj poziciji ili ne ..
DomacX3
2
Street Runner
9. Jun 2019.
Terzic wrote on June 9, 2019, 9:19 pm:
Mozes i bez nje ali ako koristis negde jos bilo bi pozeljno. Ona ti jednostavno proverava da li je igrac na toj poziciji ili ne ..


Aa znaci  tu funkciju mogu staviti ovako npr.

stock IsPlayerNearRobLocation(playerid)
{
//blablabla
}


I onda ga tako koristiti? Ako da, onda se slazem da bi to bilo vrlo korisno 🙂 Budem to sutra isprobao pa ti kazem kako radi. Jos jednom hvala!
TerzaScripting
5
Underboss
9. Jun 2019.
DomacX3 wrote on June 9, 2019, 9:23 pm:
Aa znaci  tu funkciju mogu staviti ovako npr.

stock IsPlayerNearRobLocation(playerid)
{
//blablabla
}


I onda ga tako koristiti? Ako da, onda se slazem da bi to bilo vrlo korisno 🙂 Budem to sutra isprobao pa ti kazem kako radi. Jos jednom hvala!

Da, to koristi ako pozivas vise puta. I procitaj razliku izmedju stocka i plain funkcija
DomacX3
2
Street Runner
9. Jun 2019.
Terzic wrote on June 9, 2019, 9:29 pm:
Da, to koristi ako pozivas vise puta. I procitaj razliku izmedju stocka i plain funkcija


U redu, puno ti hvala! 🙂
DomacX3
2
Street Runner
10. Jun 2019.
Terzic wrote on June 9, 2019, 7:56 pm:
Ne možeš da koristiš else return kod petlji ako barem hoćeš da se izvrše ..
Nema potrebe za toliki range oko provere igračeve pozicije.
Upravo sam testirao kod i radi savršeno kod mene .

IsPlayerNearRobLocation(playerid)
{
    for(new p = 0; p < sizeof(EnterijerLokacije); p++)
    {
        if(IsPlayerInRangeOfPoint(playerid, 30.0, EnterijerLokacije, EnterijerLokacije, EnterijerLokacije)) return 1;
    }
    return 0;
}

if(!IsPlayerNearRobLocation(playerid))
    return SendClientMessage(playerid, -1, "Ovaj biznis se ne mozes opljackati ili niste na odgovarajucoj lokaciji !");



BRATE HVALA TI PUNO RADI BEZ PROBLEMA!!!!! 😄 😄 Ne znas koliko sam zahvalan s ovim sam se mucio nekoliko dana! 😄

Morate biti prijavljeni da biste odgovorili na ovu temu.

Prijava

© 2026 SmartShark. All rights reserved.

Powered by Momentum|v2026.3.001 Alpha