[ROZWIĄZANE] Pytanie o tablice
Andrzejek
11.08.2013
Witam, zrobiłem sobie taką tablce:
new Przedzial_Pierwszy[][] = { {"Brak", "Brak Misji", 0, 0}, {"Tytul", "Opis misj", 250, 15}, {"Tytul", "Opis misj", 250, 15}, {"Tytul", "Opis misj", 250, 15}, {"Tytul", "Opis misj", 250, 15} }
0 = Tytuł misji
1 = Opis misji
2 = Nagroda
3 = Np. ile kogo mamy razy zabić
I gdy robię tak: Przedzial_Pierwszy[numer misji][0] to jest okej ale gdy dam np. tak: Przedzial_Pierwszy[numer misji][1] lub 2, 3, no to ustawia też Tytuł misji
I chciał bym zapytać czy ja poprawienie zrobiłem tą tablice? Może ma inaczej wyglądać?
sebul
11.08.2013
W taki sposób nie możesz mieszać, jak już, to trzeba zrobić tak
powinno działać.
enum eData {
ETytul[64],
EOpis[128],
ENagroda,
EIle
}
new Przedzial_Pierwszy[][eData] = {
{"Brak", "Brak Misji", 0, 0},
{"Tytul", "Opis misj", 250, 15},
{"Tytul", "Opis misj", 250, 15},
{"Tytul", "Opis misj", 250, 15},
{"Tytul", "Opis misj", 250, 15}
}
powinno działać.
K!113r
11.08.2013
any: i trzy wymiary też by chyba połknęło lecz ręki nie dam, gdyż nie mam gdzie sprawdzić.
Przypomniałem sobie, ja podobną tablice tylko miałem float zamiast string, kod podany wyżej będzie do tego celu lepszy.
Użytkownik K!113r edytował ten post 11.08.2013 14:44
Przypomniałem sobie, ja podobną tablice tylko miałem float zamiast string, kod podany wyżej będzie do tego celu lepszy.
Użytkownik K!113r edytował ten post 11.08.2013 14:44
Andrzejek
11.08.2013
Dobra sebul działa, tylko jeszcze mam jeden problem
public Damage(id) { new attacker = get_user_attacker(id); new damage = read_data(2); if(!is_user_alive(attacker) || !is_user_connected(attacker) || id == attacker) return PLUGIN_CONTINUE; if(misja_gracza[attacker][1][5] == 2) { wartosc_postep[attacker][1][5] += damage; SprawdzMisje(attacker, 1, 5); } return PLUGIN_CONTINUE; } public SprawdzMisje(id, rozdzial, misja) { if(misja_gracza[id][rozdzial][misja] == 2 && wartosc_postep[id][rozdzial][misja] == Rozdzial_Pierwszy[misja][eWartosc1]) { misja_gracza[id][rozdzial][misja] = 1; ResetMisji(id, rozdzial, misja); return PLUGIN_CONTINUE } return PLUGIN_CONTINUE }
Wszystkie misje typu zabij tylu graczy działa okej, ale tutaj sprawdzenie nie działa poprawnie np. mam zadać 20000 obrażeń graczom i gdy już osiągne ten postęp to nie sprawdza tylko idzie dalej i dalej
sebul
11.08.2013
A weź pomyśl logicznie ;]Dobra sebul działa, tylko jeszcze mam jeden problem
public Damage(id) { new attacker = get_user_attacker(id); new damage = read_data(2); if(!is_user_alive(attacker) || !is_user_connected(attacker) || id == attacker) return PLUGIN_CONTINUE; if(misja_gracza[attacker][1][5] == 2) { wartosc_postep[attacker][1][5] += damage; SprawdzMisje(attacker, 1, 5); } return PLUGIN_CONTINUE; } public SprawdzMisje(id, rozdzial, misja) { if(misja_gracza[id][rozdzial][misja] == 2 && wartosc_postep[id][rozdzial][misja] == Rozdzial_Pierwszy[misja][eWartosc1]) { misja_gracza[id][rozdzial][misja] = 1; ResetMisji(id, rozdzial, misja); return PLUGIN_CONTINUE } return PLUGIN_CONTINUE }
Wszystkie misje typu zabij tylu graczy działa okej, ale tutaj sprawdzenie nie działa poprawnie np. mam zadać 20000 obrażeń graczom i gdy już osiągne ten postęp to nie sprawdza tylko idzie dalej i dalej
Zabijając kogoś, za jednym razem dodaje się tylko jeden frag do ogólnej liczby, więc warunek z == kiedyś się spełni na pewno, ale zadając jakieś obrażenia, doda się po prostu jakaś liczba, np. 5, czy 10. Więcej chyba już pisać nie muszę.
sebul
11.08.2013
Chodzi tutaj o sprawdzanie czy misja zakończona, a nie to w jaki sposób jest coś dodawane, a dokładniej chodzi o ten warunek
a jeszcze dokładniej o to
if(misja_gracza[id][rozdzial][misja] == 2 && wartosc_postep[id][rozdzial][misja] == Rozdzial_Pierwszy[misja][eWartosc1])
a jeszcze dokładniej o to
wartosc_postep[id][rozdzial][misja] == Rozdzial_Pierwszy[misja][eWartosc1]
sebul
11.08.2013
Wiadomość wygenerowana automatycznie
Ten temat został zamknięty przez moderatora.
Powód: Pomoc udzielona
Jeśli się z tym nie zgadzasz, raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.
Z pozdrowieniami,
Zespół AMXX.PL
Ten temat został zamknięty przez moderatora.
Powód: Pomoc udzielona
Jeśli się z tym nie zgadzasz, raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.
Z pozdrowieniami,
Zespół AMXX.PL