Frakcje na Cod Modzie
Mateos 05.04.2013
Mam jakiś problem ... Zadnych errorów nie ma ani nic. Wgrywam frakcje i jest tylko frakcja "Zwykla".
Zapodaje QTM_CodMod.sma oraz cod_frakcje.ini
Attached Files
Guzik
05.04.2013
Mateos 05.04.2013
No chyba ,że chcesz silnik bez żadnych dodatków od frakcji.Tak to trzeba by było dawać od nowa all.
Attached Files
Edited by mateusztb, 05.04.2013 17:27.
Guzik
05.04.2013
Spróbuj tego na silniku bez żadnych frakcji:
1.Edytujemy plik QTM_CodMod.sma
W zmiennych globalnych dodajemy:
#define MAX_WIELKOSC_FRAKCJA 64
new frakcja_klas[MAX_ILOSC_KLAS+1][MAX_WIELKOSC_FRAKCJA+1];
new nazwa_klasy[MAX_ILOSC_KLAS+1][64];
new nazwa_frakcji[MAX_ILOSC_KLAS+1][64];
new klasid;
Szukamy funkcji public plugin_init() i dodajemy na końcu jego:
loadfile()
Czyli tak powinno wyglądać:
public plugin_init()
{
//kod
loadfile()
}
Szukamy funkcji public plugin_init() i dodajemy za nią:
public loadfile()
{
new file[256];
get_configsdir(file,charsmax(file));
formatex(file, charsmax(file), "%s/cod_frakcje.ini", file);
if(!file_exists(file))
return;
new row[128], trash, size=file_size(file,1);
for(new i=0;i<size;i++)
{
read_file(file, i, row, charsmax(row), trash);
if((contain(row,";")!=0) && strlen(row) && klasid<MAX_ILOSC_KLAS+1)
{
replace(row, charsmax(row), "[klasa]", "");
split(row, nazwa_klasy[klasid], charsmax(nazwa_klasy[]),
nazwa_frakcji[klasid], charsmax(nazwa_frakcji[]), "[frakcja]");
klasid++;
}
}
}
Szukamy funkcji ZarejestrujKlase i po
wytrzymalosc_klas[ilosc_klas] = get_param(7);
dodajemy
for(new i=0;i<klasid;i++){
if(equali(nazwy_klas[ilosc_klas],nazwa_klasy[i])){
frakcja_klas[ilosc_klas] = nazwa_frakcji[i];
}
}
Szukamy funkcji WybierzKlase usuwamy ją ,
szukamy funkcji WybierzKlase_Handle usuwamy ją zamiast nich wklejamy
Z tego co mi wiadomo to poradnik by Cypis.public WybierzKlase(id)
{
new menu = menu_create("Wybierz klase:", "WybierzKlase_Frakcje");
for(new i=1; i <= ilosc_klas; i++)
{
if(!equal(frakcja_klas[i],"") && !is_in_previous(frakcja_klas[i],i)){
menu_additem(menu,frakcja_klas[i],frakcja_klas[i])
}
}
menu_setprop(menu, MPROP_EXITNAME, "Wyjdz");
menu_setprop(menu, MPROP_BACKNAME, "Poprzednia strona");
menu_setprop(menu, MPROP_NEXTNAME, "Nastepna strona");
menu_display(id, menu);
}
public WybierzKlase_Frakcje(id, menu, item)
{
if(item == MENU_EXIT){
menu_destroy(menu);
return PLUGIN_CONTINUE;
}
new data[65], iName[64]
new acces, callback
menu_item_getinfo(menu, item, acces, data,64, iName, 63, callback)
new menu2 = menu_create("Wybierz klase:", "WybierzKlase_Handle");
new klasa[50],szTmp[5];
for(new i=1; i <= ilosc_klas; i++)
{
if(equali(data,frakcja_klas[i])){
WczytajDane(id, i);
format(klasa, charsmax(klasa), "%s \yPoziom: %i",
nazwy_klas[i], poziom_gracza[id]);
num_to_str(i,szTmp,charsmax(szTmp));
menu_additem(menu2, klasa, szTmp);
}
}
WczytajDane(id, klasa_gracza[id]);
menu_setprop(menu2, MPROP_EXITNAME, "Wyjdz");
menu_setprop(menu2, MPROP_BACKNAME, "Poprzednia strona");
menu_setprop(menu2, MPROP_NEXTNAME, "Nastepna strona");
menu_display(id, menu2);
client_cmd(id, "spk QTM_CodMod/select");
menu_destroy(menu);
return PLUGIN_CONTINUE;
}
public WybierzKlase_Handle(id, menu, item)
{
client_cmd(id, "spk QTM_CodMod/select");
if(item == MENU_EXIT)
{
menu_destroy(menu);
return PLUGIN_CONTINUE;
}
new data[65], iName[64]
new acces, callback
menu_item_getinfo(menu, item, acces, data,64, iName, 63, callback)
item = str_to_num(data);
if(item == klasa_gracza[id] && !nowa_klasa_gracza[id])
return PLUGIN_CONTINUE;
nowa_klasa_gracza[id] = item;
if(klasa_gracza[id])
client_print(id, print_chat, "[COD:MW] Klasa zostanie zmieniona w nastepnej rundzie.");
else
{
UstawNowaKlase(id);
DajBronie(id);
ZastosujAtrybuty(id);
}
return PLUGIN_CONTINUE;
}
public bool:is_in_previous(frakcja[],from){
for(new i = from - 1;i>=1;i--){
if(equali(frakcja_klas[i],frakcja)){
return true;
}
}
return false;
}
dasiek
05.04.2013
Ten temat został przeniesiony z forum
AMX Mod X > Problemy z pluginami
do
Mody > Call of Duty Mod > Problemy
Mateos 06.04.2013
for(new i=0;i<klasid;i++){
if(equali(nazwy_klas[ilosc_klas],nazwa_klasy[i])){
frakcja_klas[ilosc_klas] = nazwa_frakcji[i];
}
}
I tutaj gdzie jest nazwa_klasy to mam dać np. Terrorysta ,a tam jest jest nazwa_frakcji to VIP ?
Edited by mateusztb, 06.04.2013 09:11.
Mateos 06.04.2013
Robie wszystko wg. nich i nic nie działa.
Attached Files
Edited by mateusztb, 06.04.2013 10:44.