←  Pytania

AMXX.pl: Support AMX Mod X i SourceMod

»

Problem z listą zadań

  • +
  • -
Andrzejek - zdjęcie Andrzejek 30.07.2013

Witam, mam pewien problem ponieważ chce zrobić że każda misja ma swój rozdział i numer i osobną wartość czyli 0 - misja nie wykonana, 1 - misja wykonana czyli np zrobię tak:

 

#define ROZDZIAL 4

 

new ilosc_misji_rozdzial[] = { 7, 8, 9, 10 }

new postepy_misja[33][ROZDZIAL][sizeof ilosc_misji_rozdzial];

 

A gdzieś tam w akceptacji dam np. tak:

 

postepy_misja[id][numer rozdział][numer misji] = wartosc;

 

Czyli jeżeli wybiorę np. rozdział 2 i wybiorę misje 5, a maksymalną wartość misji 8 czyli będzie wyglądać tak

 

postepy_misja[id][2][5] = wartosc 0 lub 1

 

Będzie okej sprawowało działanie całego systemu?

 

@Edit

 

Jednak nie działa wszystkim misjom ustawia wartość z tego rozdziału :( Ma ktoś jakiś pomysł?

Odpowiedz

GT Team - zdjęcie GT Team 30.07.2013

Tak się nie da, sprawdź to, nie testowałem, może podsunąłem Ci jakiś pomysł
/* Plugin generated by AMXX-Studio */

#include 
#include 

#define PLUGIN "New Plug-In"
#define VERSION "1.0"
#define AUTHOR "author"


#define MAX_ROZDZIALOW 	4 // max liczba rozdzialow
#define MAX_MISJI      	10 // najwieksza liczba misji we wszystkich rozdzialach
enum 
{
	MISJA_NIEWYKONANA = 0,
	MISJA_WYKONANA = 1,
	ROZDZIAL_PIERWSZY = 7,
	ROZDZIAL_DRUGI = 8,
	ROZDZIAL_TRZECI = 9,
	ROZDZIAL_CZWARTY = 10
}

enum
{
	
}
new liczba_misji_na_rozdzial[MAX_ROZDZIALOW] = 
{
	ROZDZIAL_PIERWSZY,
	ROZDZIAL_DRUGI,
	ROZDZIAL_TRZECI,
	ROZDZIAL_CZWARTY
}

new postep_misji[33][MAX_ROZDZIALOW][MAX_MISJI]

public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR)
	
	// Add your code here...
}

new roz_gracza =3
new id = 4
new mis_gracza = 10

public test()
{
	new roz_gracza = 3 // 3+1 = 4 | np. MAX_ROZDZIALOW jest 4, a tablica zaczyna od 0
	//czyli postep_misji[33][0 | 1 | 2 | 3 |] // co sumując jest 4
	new id = 14
	new mis_gracza = 10 // tak samo jak w rozdzialach
	postep_misji[id][roz_gracza][mis_gracza] = MISJA_NIEWYKONANA
	postep_misji[id][roz_gracza][mis_gracza] = MISJA_WYKONANA
}
public print()
{
	client_print(id, print_chat, "Twoje ID: %d | Twoj rozdzial misji: %d | Misja: %d | Status: %s",
	id, roz_gracza, mis_gracza, get_mission_status(id, roz_gracza, mis_gracza)?"Wykonana":"Niewykonana ")
}
public _:get_mission_status(id, roz, mis)
{
	return postep_misji[id][roz][mis]
}
Jak ucieło include, to tylko są te domyślne
Odpowiedz

  • +
  • -
Andrzejek - zdjęcie Andrzejek 30.07.2013

Tylko ty mi tu dałeś że każdy rozdział ma tyle samo misji ^^

Odpowiedz

GT Team - zdjęcie GT Team 30.07.2013

No inaczej się nie da chyba że
rozdzial_I[33][ilosc_misji_rozdzialu[0])
rozdzial_II[33][ilosc_misji_rozdzialu[1])
itd...
Lecz wtedy
ilosc_misji_rozdzialu
Musisz dać na const
Odpowiedz

  • +
  • -
Andrzejek - zdjęcie Andrzejek 30.07.2013

Poczekam jeszcze może ktoś da jeszcze jakaś propozycje :)

Odpowiedz

  • +
  • -
K!113r - zdjęcie K!113r 31.07.2013

Jeżeli z góry nie wiesz ile będzie misji (odczytywanie z pliku, natywy etc.) Użyj tablic dynamicznych.
Jeżeli wiesz ile będzie to problemu nie ma.
Odpowiedz

  • +
  • -
Andrzejek - zdjęcie Andrzejek 31.07.2013

Własnie nie wiem ile będzie misji, bo chciał bym szybko i sprawnie dodawać nowe misje bez żadnego kłopotu, jak mam zastosować tablice dynamiczne??

Odpowiedz

  • +
  • -
DarkGL - zdjęcie DarkGL 31.07.2013

Czytając tutorial ? http://amxx.pl/topic...miczne-tablice/

Odpowiedz