Skocz do zawartości

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.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Lakrouss - zdjęcie

Lakrouss

Rejestracja: 04.04.2024
Aktualnie: Nieaktywny
Poza forum Ostatnio: 25.02.2025 21:05
-----

#262120 Awanse klas

Napisane przez Goliath w 23.06.2011 18:55

Nie dodałeś do natywu do codmod.inc.

Wersja dla tych, który mają wgrane frakcje DarkGL'a
1. Instalujemy frakcje, a następnie awanse według instrukcji z pierwszego posta.
2. Zmieniamy publici WybierzKlase, WybierzKlase_Handle i WybierzKlase_Frakcje na:
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], dana_klasa;
for(new i=1; i <= ilosc_klas; i++)
{
if(JestAwansem(i))
continue;
WczytajDane(id, i);
dana_klasa = i;

for(; ;)
{
if(awansuje_do[dana_klasa] && poziom_gracza[id] >= awanse[ZnajdzAwans(dana_klasa, awansuje_do[dana_klasa])][2])
{
dana_klasa = awansuje_do[dana_klasa];
WczytajDane(id, dana_klasa);
}
else break;
}
if(equali(data,frakcja_klas[dana_klasa]))
{
formatex(klasa, charsmax(klasa), "%s \yPoziom: %i", nazwy_klas[dana_klasa], poziom_gracza[id]);
num_to_str(dana_klasa, 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;
}

3. W zależności od tego, jakim sposobem instalowaliśmy frakcje, dokonujemy różnych zmian:
- gdy instalowaliśmy I sposobem:
Zmieniamy public ZarejestrujAwans na:
public ZarejestrujAwans(plugin, params)
{
if(params != 10)
return PLUGIN_CONTINUE;

if(++ilosc_klas > MAX_ILOSC_KLAS)
return -1;

pluginy_klas[ilosc_klas] = plugin;

new awans_z = get_param(1);
awansuje_do[awans_z] = ilosc_klas;
awansuje_z[ilosc_klas] = awans_z;
ilosc_awansow++;
awanse[ilosc_awansow][1] = ilosc_klas;
awanse[ilosc_awansow][0] = awans_z;
awanse[ilosc_awansow][2] = get_param(2);
get_string(3, nazwy_klas[ilosc_klas], MAX_WIELKOSC_NAZWY);
get_string(4, opisy_klas[ilosc_klas], MAX_WIELKOSC_OPISU);

bronie_klasy[ilosc_klas] = get_param(5);
zdrowie_klas[ilosc_klas] = get_param(6);
kondycja_klas[ilosc_klas] = get_param(7);
inteligencja_klas[ilosc_klas] = get_param(8);
wytrzymalosc_klas[ilosc_klas] = get_param(9);
get_string(10, frakcja_klas[ilosc_klas], MAX_WIELKOSC_FRAKCJA);

return ilosc_klas;
}

Zmieniamy natyw w pliku codmod.inc na:
native cod_register_advance(z_klasy, od_levela, const nazwa[], const opis[], bronie, punkty_zdrowia, punkty_kondycji, punkty_inteligencji, punkty_wytrzymalosci, const frakcja[]);

- gdy instalowaliśmy II sposobem:
Zmieniamy public ZarejestrujAwans na:
public ZarejestrujAwans(plugin, params)
{
if(params != 9)
return PLUGIN_CONTINUE;

if(++ilosc_klas > MAX_ILOSC_KLAS)
return -1;

pluginy_klas[ilosc_klas] = plugin;

new awans_z = get_param(1);
awansuje_do[awans_z] = ilosc_klas;
awansuje_z[ilosc_klas] = awans_z;
ilosc_awansow++;
awanse[ilosc_awansow][1] = ilosc_klas;
awanse[ilosc_awansow][0] = awans_z;
awanse[ilosc_awansow][2] = get_param(2);
get_string(3, nazwy_klas[ilosc_klas], MAX_WIELKOSC_NAZWY);
get_string(4, opisy_klas[ilosc_klas], MAX_WIELKOSC_OPISU);

bronie_klasy[ilosc_klas] = get_param(5);
zdrowie_klas[ilosc_klas] = get_param(6);
kondycja_klas[ilosc_klas] = get_param(7);
inteligencja_klas[ilosc_klas] = get_param(8);
wytrzymalosc_klas[ilosc_klas] = get_param(9);

if(equali(nazwy_klas[ilosc_klas], "Elitarny Snajper"))
frakcja_klas[ilosc_klas] = "Amerykanie";

return ilosc_klas;
}

Teraz przed return ilosc_klas, wypisujemy wszystkie klasy, które są zarejestrowane poprzez natyw cod_register_advance (czyli te klasy, które są awansami) w taki sposób:
	if(equali(nazwy_klas[ilosc_klas], "Nazwa klasy, do kt&#243;rej można awansować"))
frakcja_klas[ilosc_klas] = "Nazwa frakcji";

- jeśli instalowaliśmy sposobem Cypis'a, zmieniamy funkcję ZarejestrujAwans na:
public ZarejestrujAwans(plugin, params)
{
if(params != 9)
return PLUGIN_CONTINUE;

if(++ilosc_klas > MAX_ILOSC_KLAS)
return -1;

pluginy_klas[ilosc_klas] = plugin;

new awans_z = get_param(1);
awansuje_do[awans_z] = ilosc_klas;
awansuje_z[ilosc_klas] = awans_z;
ilosc_awansow++;
awanse[ilosc_awansow][1] = ilosc_klas;
awanse[ilosc_awansow][0] = awans_z;
awanse[ilosc_awansow][2] = get_param(2);
get_string(3, nazwy_klas[ilosc_klas], MAX_WIELKOSC_NAZWY);
get_string(4, opisy_klas[ilosc_klas], MAX_WIELKOSC_OPISU);

bronie_klasy[ilosc_klas] = get_param(5);
zdrowie_klas[ilosc_klas] = get_param(6);
kondycja_klas[ilosc_klas] = get_param(7);
inteligencja_klas[ilosc_klas] = get_param(8);
wytrzymalosc_klas[ilosc_klas] = get_param(9);
for(new i=0;i<klasid;i++){
if(equali(nazwy_klas[ilosc_klas],nazwa_klasy[i])){
frakcja_klas[ilosc_klas] = nazwa_frakcji[i];
}
}

return ilosc_klas;
}

A następnie wypisujemy wszystkie klasy, do których możemy awansować, do cod_frakcje.ini, jak wszystkie inne.
4. Kompilujemy plik QTM_CodMod.sma.

Zalecane jest, aby klasa, do której się awansuje, miała taką samą frakcję, jak ta, z której się awansuje. Od najnowszej wersji - nieaktualne Dołączona grafika. (Pragnę zaznaczyć, że jeśli frakcja składa się tylko z klas, które awansują, to ta frakcja będzie pusta i nie będzie można jej otworzyć, aż do momentu pierwszego awansu.)

Gotowce:
- I sposób:
Załączony plik  awanse_frakcje1.sma   42,81 KB  308 Ilość pobrań
  awanse_frakcje1.amxx
- II sposób:
Załączony plik  awanse_frakcje2.sma   42,88 KB  193 Ilość pobrań
  awanse_frakcje2.amxx
- sposób Cypisa:
Załączony plik  awanse_frakcjec.sma   44,14 KB  454 Ilość pobrań
  awanse_frakcjec.amxx
  • +
  • -
  • 10


#666841 Wymiana Perkami i Blokada

Napisane przez Eryk172 w 12.10.2014 21:26

Zamień cały public ZamienPerk(id) na to:
public ZamienPerk(id)
{
    new szText[128], szPerk[33];
    new menu = menu_create("Zamien sie perkiem", "ZamienPerk_Handle");
    new cb = menu_makecallback("OddajPerk_Callback");
    for(new i=0, n=0; i<=32; i++)
    {
        if(!is_user_connected(i))
            continue;
        oddaj_id[n++] = i;
        new nazwa_gracza[64];
        get_user_name(i, nazwa_gracza, 63);
        cod_get_perk_name(cod_get_user_perk(i), szPerk, 32);
        format(szText, 127, "%s \y[%s]", nazwa_gracza, szPerk);  
        menu_additem(menu, szText, "0", 0, cb);
    }
    menu_display(id, menu);
}

  • +
  • -
  • 3


#688089 [ROZWIĄZANE] Proszę o parę perków m.in. "Betonowe ciało"

Napisane przez LulzSec. w 13.02.2015 17:54

Sprawdzaj mistrzu.

 

 

Załączone pliki


  • +
  • -
  • 2


#778437 Dublowanie Flashbangów FB

Napisane przez ori w 06.04.2024 11:22

Witam, ma ktoś plugin albo mógłby zrobić jakiś aby flesze nie dublowały się i ginęły tak jak powinny? Mam taki problem że jak dostaniesz np 2 czy 3 FB to one zachowują się tak jakby ten czas działania się dublował i trzyma długo.  Przydało by się coś co skraca ten czas FB lub jakiś Fix. 


  • +
  • -
  • 1


#284192 Sprzedawanie perków

Napisane przez A może sma? w 17.08.2011 15:17

Dołączona grafika
Gdy wyrzucamy perk nic z tego nie mamy.
Mój plugin umożliwia ich sprzedaż <img src='http://img.amxx.pl/public/style_emoticons/default/cwaniak.gif' class='bbc_emoticon' alt=':]' />
Do wyboru mamy dwie opcje: sprzedaż za dolary bądź sprzedaż za monety: http://amxx.pl/topic/57303-system-monet/
Jak włączyć/wyłączyć monety? Bardzo prosto: w sma dopisać lub usunąć dwa ukośniki (//) przed #define MONETY i skompliować plik
Dla hejterów: nie ma cvaru do tego, gdyż po co tworzyć nowe zmienne skoro nie będą one używane?
Dołączona grafika
say /sell - sprzedaje perk
say /sprzedaj - sprzedaje perk
Dołączona grafika
cod_money_sellperk "3000" // dolary za sprzedaż
cod_coins_sellperk "3" // monety za sprzedaż
Dołączona grafika
Standardowa. Jeżeli nie korzystamy z monet to do plugins-codmod.ini, jeżeli tak to do plugins-codmod-systemmonet.ini
Dołączona grafika
Wersja dolarowa:
Załączony plik  cod_sellperk.sma   1,44 KB  1966 Ilość pobrań
  cod_sellperk.amxx

  • +
  • -
  • 22