Pod tabelą z opisami przedmiotów (tymi zwykłymi) dodajemy :
new informacje_itemu[33][2];
new const nazwy_itemow[][] = {"Brak",
"Jakis Przedmiot"
}
new const opisy_itemow[][] = {"Zabij kogos aby dostac przedmiot",
"Jakas moc"
}
//=====================================================================================//
Należy się do tego jak mamy dodaną wytrzymałość przedmiotu
Szukamy :
new wytrzymalosc_itemu[33];
Dodajemy pod :
new wytrzymalosc_itemu2[33];
if(informacje_przedmiotu_gracza[id][0]) {
if(wytrzymalosc_itemu[id] > 0) {
wytrzymalosc_itemu[id]-=10;
}
if(wytrzymalosc_itemu[id] > 0) {
client_print(id, print_chat, "[COD:MW] Zniszczenia przedmiotu: %i/100.", wytrzymalosc_itemu[id]);
}
else {
client_print(id, print_chat, "[COD:MW] Przedmiot: %s, zostal calkowicie zniszczony.", nazwy_przedmiotow[informacje_przedmiotu_gracza[id][0]]);
UsunPrzedmiot(id);
}
}
I pod to dodajemy to :
if(informacje_itemu[id][0]) {
if(wytrzymalosc_itemu2[id] > 0) {
wytrzymalosc_itemu2[id]-=10;
}
if(wytrzymalosc_itemu2[id] > 0) {
client_print(id, print_chat, "[COD:MW] Zniszczenia przedmiotu: %i/100.", wytrzymalosc_itemu2[id]);
}
else {
client_print(id, print_chat, "[COD:MW] Przedmiot: %s, zostal calkowicie zniszczony.", nazwy_itemow[informacje_itemu[id][0]]);
UsunPrzedmiot2(id);
}
}
//=====================================================================================//
w public Death(id) szukamy :
if(!informacje_przedmiotu_gracza[attacker][0])
DajPrzedmiot(attacker, random_num(1, sizeof nazwy_przedmiotow-1));
I pod to dodajemy to :
if(!informacje_itemu[attacker][0])
DajPrzedmiot2(attacker, random_num(1, sizeof nazwy_itemow-1));
Następnie pod :
public WyrzucPrzedmiot(id)
{
if(informacje_przedmiotu_gracza[id][0])
{
client_print(id, print_chat, "Wyrzuciles %s.", nazwy_przedmiotow[informacje_przedmiotu_gracza[id][0]]);
UsunPrzedmiot(id);
}
else
client_print(id, print_chat, "Nie masz zadnego przedmiotu.", nazwy_przedmiotow[informacje_przedmiotu_gracza[id][0]]);
}
Dodajemy to :
public WyrzucPrzedmiot2(id)
{
if(informacje_itemu[id][0])
{
client_print(id, print_chat, "Wyrzuciles %s.", nazwy_itemow[informacje_itemu[id][0]]);
UsunPrzedmiot2(id);
}
else
client_print(id, print_chat, "Nie masz zadnego przedmiotu.", nazwy_itemow[informacje_itemu[id][0]]);
}
Szukamy public UsunPrzemdiot(id) i za nim dodajemy
public UsunPrzedmiot2(id)
{
informacje_itemu[id][1] = 0;
informacje_itemu[id][0] = 0;
wytrzymalosc_itemu2[id] = 0;
if(is_user_alive(id))
set_user_footsteps(id, 0);
set_rendering(id,kRenderFxGlowShell,0,0,0 ,kRenderTransAlpha, 255);
ZmienUbranie(id, 1);
}
W public client_connect(id) za UsunPrzedmiot(id); dodajemy :
UsunPrzedmiot2(id);
W public client_disconnect(id) za UsunPrzedmiot(id); dodajemy :
UsunPrzedmiot2(id);
Szukamy public DajPrzedmiot(id, przedmiot) i dodajemy za nim :
public DajPrzedmiot2(id, przedmiot)
{
UsunPrzedmiot2(id);
informacje_itemu[id][0] = przedmiot;
client_print(id, print_chat, "Zdobyles %s.", nazwy_itemow[informacje_itemu[id][0]]);
wytrzymalosc_itemu2[id] = 100;
switch(przedmiot)
{
case 1:
{
//w tym przypadku jeśli będą to notatki kapitana
informacje_itemu[id][1] = 3;
}
}
}
Szukamy public OpisPrzedmiotu(id) i dodajemy pod nim :
public OpisPrzedmiotu2(id)
{
new opis_przedmiotu[128];
new losowa_wartosc[3];
num_to_str(informacje_itemu[id][1], losowa_wartosc, 2);
format(opis_przedmiotu, 127, opisy_itemow[informacje_itemu[id][0]]);
replace_all(opis_przedmiotu, 127, "LW", losowa_wartosc);
client_print(id, print_chat, "Przedmiot: %s.", nazwy_itemow[informacje_itemu[id][0]]);
client_print(id, print_chat, "Opis: %s.", opis_przedmiotu);
}
Jeśli mamy dodaną do COD'a wytrzymałość to public PokażInformacje(id) podmieniamy na to :
public PokazInformacje(id)
{
id -= ZADANIE_POKAZ_INFORMACJE;
set_task(0.1, "PokazInformacje", id+ZADANIE_POKAZ_INFORMACJE);
if(!is_user_alive(id))
{
new target = entity_get_int(id, EV_INT_iuser2);
if(target == 0)
return PLUGIN_CONTINUE;
set_hudmessage(0, 255, 255, 0.02, 0.20, 0, 0.0, 0.3, 0.0, 0.0);
ShowSyncHudMsg(id, SyncHudObj, "[Klasa: %s]^n[Poziom: %i]^n[Doswiadczenie: %i / %i]^n[Przedmiot: %s] (%i%%)^n[Przedmiot2: %s] (%i%%)^n[HP: %i | AP: %i]", nazwy_klas[klasa_gracza[id]], poziom_gracza[id], doswiadczenie_gracza[id], doswiadczenie_poziomu[poziom_gracza[id]],nazwy_przedmiotow[informacje_przedmiotu_gracza[id][0]], wytrzymalosc_itemu[id],nazwy_itemow[informacje_itemu[id][0]], wytrzymalosc_itemu2[id], get_user_health(id), get_user_armor(id));
return PLUGIN_CONTINUE;
}
set_hudmessage(0, 255, 255, 0.02, 0.16, 0, 0.0, 0.3, 0.0, 0.0);
ShowSyncHudMsg(id, SyncHudObj, "[Klasa: %s]^n[Poziom: %i]^n[Doswiadczenie: %i / %i]^n[Przedmiot: %s] (%i%%)^n[Przedmiot2: %s] (%i%%)^n[HP: %i | AP: %i]", nazwy_klas[klasa_gracza[id]], poziom_gracza[id], doswiadczenie_gracza[id], doswiadczenie_poziomu[poziom_gracza[id]],nazwy_przedmiotow[informacje_przedmiotu_gracza[id][0]], wytrzymalosc_itemu[id],nazwy_itemow[informacje_itemu[id][0]], wytrzymalosc_itemu2[id], get_user_health(id), get_user_armor(id));
return PLUGIN_CONTINUE;
}
w public plugin_init() dodajemy
register_clcmd("say /item2", "OpisPrzedmiotu2");
register_clcmd("say /drop2", "WyrzucPrzedmiot2");
//================================================================//
Dodawanie nowego przedmiotu :
Aby dodać przedmiot np. dawanie AK47 na początku rundy robimy tak (tak samo jak dodawanie normalnego itemu tylko że w nowych tabelach):
W :
new const nazwy_itemow[][] dodajemy nazwę naszego przemdiotu
W :
new const opisy_itemow[][] dodajemy opis naszego przedmiotu
I teraz w public Odrodzenie(id)
Pod :
if(informacje_przedmiotu_gracza[id][0] == 13)
give_item(id, "weapon_awp");
Dodajemy :
if(informacje_itemu[id][0] == 1)
give_item(id, "weapon_ak47");
//================================================================//
Jeśli chcemy żeby opis i wyrzucanie wyświetlało nam się w 'menu' dodajemy na końcu SMA :
public SprawdzItem(id)
{
new menu = menu_create("Opis:", "SprawdzItem2");
menu_additem(menu, "\wOpis Przedmiotu nr 1", "1", 0);
menu_additem(menu, "\wOpis Przedmiotu nr 2", "2", 0);
menu_display(id, menu);
return PLUGIN_HANDLED;
}
public SprawdzItem2(id, menu, item)
{
if(item == MENU_EXIT)
{
menu_destroy(menu);
return PLUGIN_CONTINUE;
}
menu_display(id, menu);
switch(item)
{
case 0:
{
OpisPrzedmiotu(id);
}
case 1:
{
OpisPrzedmiotu2(id);
}
}
return PLUGIN_CONTINUE;
}
public WyrzucItem(id){
new mana1=menu_create("Wyrzuc:","WyrzucItem2");
menu_additem(menu, "\wWyrzuc Przedmiot nr 1");
menu_additem(menu, "\wWyrzuc Przedmiot nr 2");
menu_display(id, menu);
return PLUGIN_HANDLED;
}
public WyrzucItem2(id, menu, item){
if(item == MENU_EXIT)
{
menu_destroy(menu);
return PLUGIN_CONTINUE;
}
menu_display(id, menu);
switch(item){
case 0:
{
WyrzucPrzedmiot(id);
}
case 1:
{
WyrzucPrzedmiot2(id);
}
}
return PLUGIN_CONTINUE;
}
I w public plugin_init() zamieniamy :
To :
register_clcmd("say /item", "OpisPrzedmiotu");
Na to :
register_clcmd("say /item", "SprawdzItem");
I to :
register_clcmd("say /item", "WyrzucPrzedmiot");
Na to :
register_clcmd("say /drop", "WyrzucItem");
Jeśli coś nie będzie działało to pisać, bo mogłem coś przeoczyć.
Użytkownik kiver edytował ten post 30.06.2011 17:34