
Witam dzis do zaprezentowania mam swoj dosc stary kod lecz, ktory z powodzeniem zaszczepil sie na moim dawnym serwerze codmod.
Dywizje co to jest ?
To nie jest party,misje czy jakis quest.
Gracz dolaczajac do jednej z 6 dywizji(zaleznych od lvl) dostaje dodatkowy exp wtedy gdy partner z naszej dywizji zabije przeciwnika i odwrotnie.
Kazdy z danej dywizji jezeli jest zywy oczywiscie dostaje dodatkowy exp za zabicie.

Pod:
new bool:freezetime = true;
Dodajemy:
new const nazwy_dywizji[][] = {"Brak",
"Dywizja I", //1
"Dywizja II", //2
"Dywizja III", //3
"Dywizja IV", //4
"Dywizja V", //5
"Dywizja VI"
};
new const lvl_dywizji[] = {0,
5,
15,
30,
50,
65,
85
};
new dywizja_gracza[33];
Dalej w plugin_init() dodajemy:
register_clcmd("say /dywizja", "MenuDywizja");
Nastepnie szukamy public SmiercGraczaPost(id, attacker, shouldgib)
I w tej klamrze
if(get_user_team(id) != get_user_team(attacker) && klasa_gracza[attacker])
{
na koncu dodajemy:
new dywizja_doswiadczenie;
for(new i=1;i<33;i++)
{
if(!is_user_alive(i))
continue;
if(attacker == i)
continue;
if(get_user_team(attacker) != get_user_team(i))
continue;
if(dywizja_gracza[attacker] == dywizja_gracza[i])
{
if(dywizja_gracza[attacker] == 1) dywizja_doswiadczenie = 10;
if(dywizja_gracza[attacker] == 2) dywizja_doswiadczenie = 30;
if(dywizja_gracza[attacker] == 3) dywizja_doswiadczenie = 70;
if(dywizja_gracza[attacker] == 4) dywizja_doswiadczenie = 150;
if(dywizja_gracza[attacker] == 5) dywizja_doswiadczenie = 350;
if(dywizja_gracza[attacker] == 6) dywizja_doswiadczenie = 800;
//set_hudmessage(255, 212, 0, -1.0, 0.63, 1, 6.0, 4.0);
//ShowSyncHudMsg(i, SyncHudObj4, "Dywizja +%i Expa", dywizja_doswiadczenie);
//client_print(i,print_chat,"Dywizja +%i Expa", dywizja_doswiadczenie);
// Powyzej znajduje sie kod na wyswietlenie informacji pierwsze 2 to hud a 3 linijka info na czacie poprzez usuniecie // odblokujemy wysylanie informacji o expie dywizji.
doswiadczenie_gracza[i] += dywizja_doswiadczenie;
}
else
{
//set_hudmessage(255, 212, 0, -1.0, 0.63, 1, 6.0, 4.0);
//ShowSyncHudMsg(attacker, SyncHudObj4, "Zaden gracz nie dolaczyl do Dywizji");
//client_print(attacker,print_chat,"Zaden gracz nie dolaczyl do Dywizji");
// To samo co wyzej. Odblokowac wedlug uznania
}
}
@up
Gdy odblokujemy wysylanie wiadomosci w hud nalezy dodac kolejny kanal hud.
Szukamy public UsunUmiejetnosci(id) i na koncu dodajemy:
dywizja_gracza[id] = 0;
Pod koniec szukamy public PokazInformacje(id) i zamieniamy caly public na ten.
public PokazInformacje(id)
{
id -= ZADANIE_POKAZ_INFORMACJE;
if(!is_user_connected(id))
{
remove_task(id+ZADANIE_POKAZ_INFORMACJE);
return PLUGIN_CONTINUE;
}
if(!is_user_alive(id))
{
new target = pev(id, pev_iuser2);
if(!target)
return PLUGIN_CONTINUE;
set_hudmessage(255, 255, 255, 0.6, -1.0, 0, 0.0, 0.3, 0.0, 0.0, 2);
ShowSyncHudMsg(id, SyncHudObj, "Klasa: %s^nDywizja: %s^nDoswiadczenie: %i / %i^nPoziom: %i^nPerk: %s", nazwy_klas[klasa_gracza[target]], nazwy_dywizji[dywizja_gracza[target]],doswiadczenie_gracza[target], PobierzDoswiadczeniePoziomu(poziom_gracza[target]), poziom_gracza[target], nazwy_perkow[perk_gracza[target]]);
return PLUGIN_CONTINUE;
}
set_hudmessage(188, 176, 44, 0.02, 0.23, 0, 0.0, 0.3, 0.0, 0.0);
ShowSyncHudMsg(id, SyncHudObj, "[ Klasa: %s ]^n[ Dywizja: %s ]^n[ Doswiadczenie: %i / %i ]^n[ Poziom: %i ]^n[ Perk: %s ]", nazwy_klas[klasa_gracza[id]], nazwy_dywizji[dywizja_gracza[id]], doswiadczenie_gracza[id], PobierzDoswiadczeniePoziomu(poziom_gracza[id]), poziom_gracza[id], nazwy_perkow[perk_gracza[id]]);
return PLUGIN_CONTINUE;
}
Wyzej wersja jest dla zielonych.Jezeli ktos sie zna na pisaniu to wie co dodac i co zmienic jezeli nie chce podmieniac calego publica.
I na samym koncu moda dodajemy to.
public MenuDywizja(id)
{
new menu=menu_create("Dywzija","Dywzija_handler");
for(new i=1; i<sizeof nazwy_dywizji; i++)
menu_additem(menu, nazwy_dywizji[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 Dywzija_handler(id, menu, item)
{
if(item == MENU_EXIT)
{
menu_destroy(menu);
return PLUGIN_CONTINUE;
}
switch(item)
{
case 0:
{
if(poziom_gracza[id] < 5)
client_print(id,print_chat,"%s dostepna od %i Poziomu",nazwy_dywizji[item+1],lvl_dywizji[item+1]);
else
{
client_print(id,print_chat,"Dolaczyles do %s",nazwy_dywizji[item+1]);
dywizja_gracza[id] = 1
}
}
case 1:
{
if(poziom_gracza[id] < 15)
client_print(id,print_chat,"%s dostepna od %i Poziomu",nazwy_dywizji[item+1],lvl_dywizji[item+1]);
else
{
client_print(id,print_chat,"Dolaczyles do %s",nazwy_dywizji[item+1]);
dywizja_gracza[id] = 2
}
}
case 2:
{
if(poziom_gracza[id] < 30)
client_print(id,print_chat,"%s dostepna od %i Poziomu",nazwy_dywizji[item+1],lvl_dywizji[item+1]);
else
{
client_print(id,print_chat,"Dolaczyles do %s",nazwy_dywizji[item+1]);
dywizja_gracza[id] = 3
}
}
case 3:
{
if(poziom_gracza[id] < 50)
client_print(id,print_chat,"%s dostepna od %i Poziomu",nazwy_dywizji[item+1],lvl_dywizji[item+1]);
else
{
client_print(id,print_chat,"Dolaczyles do %s",nazwy_dywizji[item+1]);
dywizja_gracza[id] = 4
}
}
case 4:
{
if(poziom_gracza[id] < 65)
client_print(id,print_chat,"%s dostepna od %i Poziomu",nazwy_dywizji[item+1],lvl_dywizji[item+1]);
else
{
client_print(id,print_chat,"Dolaczyles do %s",nazwy_dywizji[item+1]);
dywizja_gracza[id] = 5
}
}
case 5:
{
if(poziom_gracza[id] < 85)
client_print(id,print_chat,"%s dostepna od %i Poziomu",nazwy_dywizji[item+1],lvl_dywizji[item+1]);
else
{
client_print(id,print_chat,"Dolaczyles do %s",nazwy_dywizji[item+1]);
dywizja_gracza[id] = 6
}
}
}
return PLUGIN_CONTINUE;
}
W razie jakis problemow badz ulepszenia,dodania,zmienienia cos w kodzie proszę pisac gdyz ten kod wycinal ze swojego codmoda.
ps. Poradnik zostal napisany przeze mnie na odpracowania warna ![]()


Dodatki SourceMod



Temat jest zamknięty




QTM_CodMod.amxx








