Skocz do zawartości
  • Dołącz do społeczności!

    👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Cod stary - Robimy nową klasę


Rekomendowane odpowiedzi

Opublikowano

Witam
W tym poradniku chciałbym pokazać wam jak zrobić nową klasę do cod moda starego.

Na początek musmy znaneźć ilość hp, nazwa , pancerz i szybkość biegu klasy:


enum { NONE = 0, Snajper, Komandos, Strzelec, Obronca, Medyk, Wsparcie, Saper, Demolitions, Rusher, Rambo, Oficer}; // tutaj dodajemy nazwę
new const zdrowie_klasy[] = { 0, 120, 140, 110, 120, 110, 100, 100, 110, 100, 130, 250};// tutaj dodajemy ilość hp dla klasy
new const Float:szybkosc_klasy[] = {0.0, 1.2, 1.35, 0.8, 0.8, 1.0, 1.0, 1.0, 1.0, 1.3 , 1.15, 2.0}; // tutaj ustawiamy szybkość danej klasy
new const pancerz_klasy[] = { 0, 100, 100, 100, 150, 100, 0, 100, 100, 0, 150, 0}; // tutaj ustawiamy ilość pancerza dla danej klasy
new const nazwy_klas[][] = {"Brak",
"Snajper",
"Komandos",
"Strzelec wyborowy",
"Obronca",
"Medyk",
"Wsparcie ogniowe",
"Saper",
"Demolitions",
"Rusher",
"Rambo (Klasa Premium)",
"Oficer" // nasza nazwa nowej klasy
};

new const opisy_klas[][] = {"Brak",
"Dostaje AWP, scout i deagle, 120hp bazowe, 1/3 szansy natychmiastowego zabicia noza, 110% biegu, 100 pancerza",
"Dostaje Deagle, 140hp bazowe, Natychmiastowe zabicie z noza (prawy przycisk myszy), 135% biegu, 100 pancerza",
"Dostaje AK i M4A1, 110hp bazowe, 80 % biegu, 100 pancerza",
"Dostaje M249 (Krowa), 120hp bazowe, 80% biegu, jest odporny na miny, ma wszystkie granaty, 150 pancerza",
"Dostaje UMP45, 110hp bazowe, posiada apteczke, 100 pancerza",
"Dostaje MP5, 100 hp bazowe, Ma dwie rakiety,ktore po trafieniu przeciwnika zadaja dużo obrazen",
"Dostaje P90, 100hp bazowe, 100 pancerza, Dostaje 3 miny, gdy ktos w nie wejdzie wybuchaja",
"Dostaje AUG, 110 hp bazowe, 100 pancerza, Ma wszystkie granaty, Dostaje dynamit, który zabiera sporo zycia wszystkim znajdującym się blisko niego",
"Dostaje szotgana M3, 100 hp bazowe, 130% biegu",
"Dostaje Famasa, 130 hp bazowe, 120% biegu, za kazde zabojstwo +20 hp oraz pelen magazynek, podwojny skok",
"Dostaje AK, 250 hp bazowe, 200% biegu, oraz pelen magazynek" // info o naszej nowej klasie co dostaje itp
};

Potem szukamy funkcji która odpowiedzialna jest za dodawanie bronie danej klasie.

switch(klasa_gracza[id])
{
case Snajper:
{
give_item(id, "weapon_awp");
give_item(id, "weapon_scout");
give_item(id, "weapon_deagle");
}
case Komandos:
{
give_item(id, "weapon_deagle");
}
case Strzelec:
{
give_item(id, "weapon_m4a1");
give_item(id, "weapon_ak47");
}
case Obronca:
{
give_item(id, "weapon_m249");
give_item(id, "weapon_hegrenade");
give_item(id, "weapon_flashbang");
give_item(id, "weapon_smokegrenade");
}
case Medyk:
{
give_item(id, "weapon_ump45");
ilosc_apteczek_gracza[id] = 2;
}
case Wsparcie:
{
give_item(id, "weapon_mp5navy");
ilosc_rakiet_gracza[id] = 2;
}
case Saper:
{
give_item(id, "weapon_p90");
ilosc_min_gracza[id] = 3;
}
case Demolitions:
{
give_item(id, "weapon_aug");
give_item(id, "weapon_hegrenade");
give_item(id, "weapon_flashbang");
give_item(id, "weapon_smokegrenade");
ilosc_dynamitow_gracza[id] = 1;
}
case Rusher:
{
give_item(id, "weapon_m3");
}
case Rambo:
{
give_item(id, "weapon_famas");
}
case Oficer://nazwa klasy
{
give_item(id, "weapon_ak47"); //jaką broń dostanie nasza klasa lub coś innego
}
}

I to tyle.

Robimy klasę premium!


Szukamy w pluginie

public WybierzKlase_Handle(id, menu, item)
{
client_cmd(id, "spk QTM_CodMod/select");

if(item == MENU_EXIT)
{
menu_destroy(menu);
return PLUGIN_CONTINUE;
}

item++;

if(item == klasa_gracza[id])
return PLUGIN_CONTINUE;

if(item == Rambo && !(get_user_flags(id) & ADMIN_LEVEL_H))
{
client_print(id, print_chat, "[COD:MW] Nie masz uprawnien aby kozystac z klasy premium.");
WybierzKlase(id);
return PLUGIN_CONTINUE;
}

if(klasa_gracza[id])
{
nowa_klasa_gracza[id] = item;
client_print(id, print_chat, "[COD:MW] Klasa zostanie zmieniona w nastepnej rundzie.");
}
else
{
klasa_gracza[id] = item;
WczytajDane(id, klasa_gracza[id]);
Odrodzenie(id);
}
return PLUGIN_CONTINUE;
}

i pod

if(item == Rambo && !(get_user_flags(id) & ADMIN_LEVEL_H))
{
client_print(id, print_chat, "[COD:MW] Nie masz uprawnien aby kozystac z klasy premium.");
WybierzKlase(id);
return PLUGIN_CONTINUE;
}

dodajemy naszą klase premium
if(item == XX && !(get_user_flags(id) & ADMIN_LEVEL_H)) // w miejsce XX wpisz nazwe twojej klasy
{
client_print(id, print_chat, "[COD:MW] Nie masz uprawnien aby kozystac z klasy premium.");
WybierzKlase(id);
return PLUGIN_CONTINUE;
}


Jak zrobić Klasie 1/X z danej broni?


W
public TakeDamage()
Szukamy
if(informacje_przedmiotu_gracza[this][0] == 26 && random_num(1, informacje_przedmiotu_gracza[this][1]) == 1)
{
SetHamParamEntity(3, this);
SetHamParamEntity(1, idattacker);
}
Pod tym dodajemy
if(weapon == XX) // w miejsce XX wpisz nazwe broni np. CSW_M4A1
{
if((klasa_gracza[idattacker] == YY && random(XX) == 1)) // W miejsce XX wpisz liczbę np 5 czyli bd 1/5 z danej broni
// YY - nazwa twojej klasy
damage = float(health);
}

 

Zwinne palce - funkcja ta daje klasie natychmiastowe przeładowanie.

 

 

szukamy

public CmdStart(id, uc_handle)

Na samym początku pod:

new flags = get_entity_flags(id);

Dodajemy:

new clip, ammo, weapon = get_user_weapon(id, clip, ammo);

Pod tym
if(informacje_przedmiotu_gracza[id][0] == 28 && button & IN_JUMP && button & IN_DUCK && flags & FL_ONGROUND && get_gametime() > informacje_przedmiotu_gracza[id][1]+4.0)
{
informacje_przedmiotu_gracza[id][1] = floatround(get_gametime());
new Float:velocity[3];
VelocityByAim(id, 700, velocity);
velocity[2] = random_float(265.0,285.0);
entity_set_vector(id, EV_VEC_velocity, velocity);
}

dodajemy to

if(klasa_gracza[id][0] == XX) // tu nazwa klasy
{
if(maxClip[weapon] == -1 || !ammo)
return FMRES_IGNORED;

if((button & IN_RELOAD && !(oldbutton & IN_RELOAD) && !(button & IN_ATTACK)) || !clip)
{
cs_set_user_bpammo(id, weapon, ammo-(maxClip[weapon]-clip));
new new_ammo = (maxClip[weapon] > ammo)? clip+ammo: maxClip[weapon]
set_user_clip(id, new_ammo);
}
}

 

 

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...