Skripta koju koristim: UP
Detaljan opis problema: Ne znam kako da napravim da neki igrac moze imati samo 9 oruzija kod sebe i da kad dajem da sama skripta prodje kroz slotove i izbroji ako nema oruzije na npr. slot 5 da da tu, i kad dajem preko komande /givegun ako ima vec popunjeno 8 slotova da adminu izbaci poruku " Taj igrac vec ima popunjene slotove oruzija."
Dio skripte: //
Neke slike/video za lakse dobivanje pomoci(neobavezno): //
Da li zelis da sprema ta oruziaj kad igrac ode off ili ne?
Ako zelis da se cuvaju oruzja uradis u PI enumu varijable, a ako ne zelis da se cuvaju, uradis preko PLAYER varijable.
Konto sam da uradim preko player varijable da ih ima samo dok je na serveru, i planiro sam da uradim komandu /weapons pomocu tdova Slot1, slot2, slot3, slot4, slot5, slot6, slot7, slot8, slot9 i kad ima na nekom slotu oruzije da se izmijeni settextdrawstring (nez kako se zove tacno) u ime oruzija i kad klikne na taj textdraw da mu bude to oruzije u ruci
Citat: NewOne poslato Mart 12, 2016, 19:35:27 POSLE PODNE
Konto sam da uradim preko player varijable da ih ima samo dok je na serveru, i planiro sam da uradim komandu /weapons pomocu tdova Slot1, slot2, slot3, slot4, slot5, slot6, slot7, slot8, slot9 i kad ima na nekom slotu oruzije da se izmijeni settextdrawstring (nez kako se zove tacno) u ime oruzija i kad klikne na taj textdraw da mu bude to oruzije u ruci
Pa eto onda sam si sebi dao odgovor, ne znam zasto si postao temu xD? Treba li ti jos nesto?
Citat: MEDO poslato Mart 12, 2016, 19:47:42 POSLE PODNE
Citat: NewOne poslato Mart 12, 2016, 19:35:27 POSLE PODNE
Konto sam da uradim preko player varijable da ih ima samo dok je na serveru, i planiro sam da uradim komandu /weapons pomocu tdova Slot1, slot2, slot3, slot4, slot5, slot6, slot7, slot8, slot9 i kad ima na nekom slotu oruzije da se izmijeni settextdrawstring (nez kako se zove tacno) u ime oruzija i kad klikne na taj textdraw da mu bude to oruzije u ruci
Pa eto onda sam si sebi dao odgovor, ne znam zasto si postao temu xD? Treba li ti jos nesto?
Pa ne znam kako uradit ovu definiciju i da broji koji je prazan slot i kad klikne na td da mu da sa tog slota oruzije u ruke :'(
za slotove ako ces preko varijabli onda napravis
[pawn]new Slot1[MAX_PLAYERS];
new Slot2[MAX_PLAYERS];[/pawn]
I tako koliko ti treba
I kasnije kada dajes igracu neko orizije popunjavas slot [pawn]Slot1[playerid] = 1; [/pawn]
E sad mozes i da stavljas ID oruzija npr ovako:
[pawn]new gunid;
gunid = GetPlayerWeapon(playerid);
Slot1[playerid] = gunid;[/pawn]
E sad to za provere mozes naprimer ovako nesto
Stavis Tajmer za Proveru gore u GmInit
[pawn]SetTimer("ProveraOruzija", 1000, true);[/pawn]
Pa onda napravis funkciju
[pawn]forward ProveraOruzija(playerid);
public ProveraOruzija(playerid);
{
if(Slot1[playerid] > 0 || Slot2[playerid] > 0 // I tako dalje)
{
//E sad mozes naprimer da stavis da ako ima popunjene sve slotove da mu je nemoguce dati oruzije pomocu neke varijable
//Naprimer
PopunioSlotove[playerid] = 1; //Samo je jos definisi gore
//I sad u proveru kada klikne TD samo stavis da ako ima ovu varijablu ne moze da uzme
//Primer
if(PopunioSlotove[playerid] = 1) return SendClientMessage(playerid, Boja, "Poruka");
}
}[/pawn]
E sad to da klikne Td radis pomocu ove funkcije
https://wiki.sa-mp.com/wiki/OnPlayerClickPlayerTextDraw
Hvala pokusat cu s ovim, ako zapne gdje pisem ovde nemojte zakljucavat temu
Nemoj korsitit timer, koristi OnPlayerUpdate jer ne radis neke velike operacije
Citat: MEDO poslato Mart 12, 2016, 21:19:06 POSLE PODNE
Nemoj korsitit timer, koristi OnPlayerUpdate jer ne radis neke velike operacije
Nisam jos stigao kuci pa nisam testao, nego jel postoji neka funkcija koja daje oruzije u ruke a da nije GivePlayerWeapon?
ne zasto ce ti to :D?
Citat: MEDO poslato Mart 12, 2016, 22:27:31 POSLE PODNE
ne zasto ce ti to :D?
Pa kad klikne na td da mu samo premjesti oruzije na neki slot da mu ne daje svaki put iznova
Pa nzm zasto ti to treba al dobro.
Mozes naprimer da definises sve varijable unapred sa ID-jevima oruzija.
[pawn]Slot1[playerid] = 31;//Znaci 31 je unapred definisana varijabla oruzija[/pawn]
I tako za svako slot.
A kada on klikne i dajes mu onda ako zelis da menjas onda samo premestas id iz jednog u drugo oruzije.
Primer:
[pawn]new broj;
Slot1[playerid] = broj;//SPremamo ID slota 1. u Neku lokalnu varijablu
Slot1[playerid] = Slot2[playerid];//Izjednacujem (postavljam)Varijabli Slot1 u Slot2
Slot2[playerid] = broj;//Slot 2 stavljam da bude ID od lokalne varijable (broj) koja ima ID od Slota 1
[/pawn]
Tako nesto mozes da radis ali mozda ima i laksi nacin (mozda i nema)
Ali ovo ti i nije bas dobro.Bolje radi kao sto sam ti gore vec naveo.Jer ovo ti i nije potrebno...
Citat: LAVendeta poslato Mart 13, 2016, 10:26:34 PRE PODNE
Primer:
[pawn]new broj;
Slot1[playerid] = broj;//SPremamo ID slota 1. u Neku lokalnu varijablu
Slot1[playerid] = Slot2[playerid];//Izjednacujem (postavljam)Varijabli Slot1 u Slot2
Slot2[playerid] = broj;//Slot 2 stavljam da bude ID od lokalne varijable (broj) koja ima ID od Slota 1
[/pawn]
Auf brate sta si ovde napricao
new broj = Slot1[playerid]; //SPremamo ID slota 1. u Neku lokalnu varijablu
Slot2[playerid] = broj; //Slot 2 stavljam da bude ID od lokalne varijable (broj) koja ima ID od Slota 1
Slot1[playerid] = 0; //Slot1 nije u upotrebi :)
U cemu je problem?
[pawn]/kupi oruzje command
dodas komandu sa cmd ili strcmd // ovoa moras dodati pod komandom i radi ce
if(PlayerInfo[playerid][pGun1] >= 1) // slot 1//kad tie je vec slot 1 zauzet ides na slot 2
{
//kupili ste gun// koliko ti je prazan slot 1
}
if(PlayerInfo[playerid][pGun1] >= 1) // slot 2
{
//kupili ste gun// koliko ti je prazan slot 2
}
if(PlayerInfo[playerid][pGun2] >= 1) // slot 3
{
//kupili ste gun// koliko ti je prazan slot 3
}
if(PlayerInfo[playerid][pGun3] >= 1) // slot 4
{
//kupili ste gun// koliko ti je prazan slot 4
}
else
{
//ispunio si vec 3 slotova
}[/pawn]
Sve detaljno imas objasnjeno, tema ide pod lock.
Sve detaljno imas objasnjeno, tema ide pod lock.