Mogł by mi tutaj ktos wstawic w [code=auto:0] spilery jak przerobic silnik zeby byly frakcje z pliku cod_frakcje.ini post Cypisa' bo nie mogę otworzyć tych rąbanych spjlerow w zadnym poscie a chce przerobic sobie silnik
http://amxx.pl/topic...kcji-2-sposoby/
Pozdrawiam i dziękuję
Witamy w Nieoficjalnym polskim support'cie AMX Mod X
Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
|
Guest Message by DevFuse
2 odpowiedzi w tym temacie
#1
Napisano 15.03.2013 17:06
#2
Napisano 15.03.2013 20:48
Czy na tym forum udzieli mi ktos jeszcze odpowiedzi ??
#3
Napisano 15.03.2013 21:00
Sposób 1:
1.Edytujemy plik codmod.inc W pliku codmod.inc znajdujemy linijkę native cod_register_class(const nazwa[], const opis[], bronie, punkty_zdrowia, punkty_kondycji, punkty_inteligencji, punkty_wytrzymalosci); zamieniamy ją na native cod_register_class(const nazwa[], const opis[], bronie, punkty_zdrowia, punkty_kondycji, punkty_inteligencji, punkty_wytrzymalosci,const frakcja[]); 2.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] Szukamy funkcji ZarejestrujKlase i podmieniamy ją na to ponizej public ZarejestrujKlase(plugin, params) { if(params != 8) return PLUGIN_CONTINUE; if(++ilosc_klas > MAX_ILOSC_KLAS) return -1; pluginy_klas[ilosc_klas] = plugin; get_string(1, nazwy_klas[ilosc_klas], MAX_WIELKOSC_NAZWY); get_string(2, opisy_klas[ilosc_klas], MAX_WIELKOSC_OPISU); bronie_klasy[ilosc_klas] = get_param(3); zdrowie_klas[ilosc_klas] = get_param(4); kondycja_klas[ilosc_klas] = get_param(5); inteligencja_klas[ilosc_klas] = get_param(6); wytrzymalosc_klas[ilosc_klas] = get_param(7); get_string(8, frakcja_klas[ilosc_klas], MAX_WIELKOSC_FRAKCJA); return ilosc_klas; } Szukamy funkcji WybierzKlase usuwamy ją , szukamy funkcji WybierzKlase_Handle usuwamy ją zamiast nich wklejamy Spoiler 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; } 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; } dobrze teraz jak ustawiamy klasom frakcje ano szukamy w sma klas (posłuże się komandosem) cod_register_class u mnie wygląda to tak cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc); a frakcje dodamy prosto cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc,"Amerykanie"); od teraz komandos jest w frakcji amerykanie kompilujemy i wrzucamy zmieniony plug napisałem że jest to czasochłonna metoda ponieważ trzeba edytować każda klase z osobną ale jak kto lubiSposób 2:
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] Szukamy funkcji ZarejestrujKlase pokaże jak dodać frakcje jednej klasie z resztą postąpicie tak samo po wytrzymalosc_klas[ilosc_klas] = get_param(7); dodajemy if(equali(nazwy_klas[ilosc_klas],"Komandos")){ frakcja_klas[ilosc_klas] = "Amerykanie"; } czyli Spoiler z innymi klasami postępujecie tak samo Szukamy funkcji WybierzKlase usuwamy ją , szukamy funkcji WybierzKlase_Handle usuwamy ją zamiast nich wklejamy Spoiler 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; } 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; }
Również z jednym lub większą ilością słów kluczowych: cod nowy
CoD Nowy
perk zwiększający wytrzymałość pekuNapisany przez Rafii , 05.03.2024 cod nowy |
|
|
|||
|
CoD Nowy
Modele KlasyNapisany przez Puni07 , 11.02.2024 cod nowy |
|
|
||
CoD Nowy
Problem z dywizjąNapisany przez Puni07 , 08.02.2024 cod nowy |
|
|
|||
CoD Nowy
Misjedodac exp Napisany przez Anonimowy09 , 08.01.2024 cod nowy |
|
|
|||
CoD Nowy
Broń z cso do klasy postaciNapisany przez Voltia , 12.02.2023 cod nowy |
|
|
Użytkownicy przeglądający ten temat: 0
0 użytkowników, 0 gości, 0 anonimowych