←  Pytania

AMXX.pl: Support AMX Mod X i SourceMod

»

Drop oraz Znajdowanie Itemu

Zablokowany

  • +
  • -
AmD - zdjęcie AmD 11.07.2010

Witam!


Chciał bym się spytać czy jest taka możliwość na wylosowanie itemu wynosiła 1/10?
Oraz Czy dało by się ze item znika sam po jakimś czasie? powiedzmy 1/15 zginięć.

Trochę item za łatwo się zdobywa a traci jeszcze gorzej więc trzeba to zmienić ;)


a bym jeszcze zapomniał na śmierć:

Zwiększyłem sobie Max Lvl i gdy ktoś osiąga jakąś Umiejętność na max, powiedzmy 250 i jak naciśnie jeszcze raz na wymaksowaną Umiejętność wyskakuje mu informacja że nie może już więcej dawać w daną umiejętność ale Punkt Skilla mu znika... da się to naprawić?

Pozdrawiam!

12 lipiec 2010 - 12:09:
@odśwież
Odpowiedz

  • +
  • -
ProMysterious - zdjęcie ProMysterious 12.07.2010

wytrzymalos przedmiotu to znaczy diablo_durability czy jakos tak jak ustawisz 0 w ogóle przedmiot nie zginie im wiecej tym szybciej stracisz item a z tym wylosowaniem nie ogarniam o co ci chodzi

[warn='MafiaDL']Nie pomogłeś, i nie proś znów o + bo dam ci 10 -[/warn]
Odpowiedz

  • +
  • -
Change - zdjęcie Change 12.07.2010

Nie pomogłeś bo chodzi o CoD moda :)
Odpowiedz

  • +
  • -
AmD - zdjęcie AmD 12.07.2010

no własnie, przepraszam że zapomniałem wspomnieć ale myślałem że to jest do domyślenia ponieważ Diablo ma Własne pod-forum...

więc piszę:

Tak Funkcja ma być dla CoD Mod
Odpowiedz

Gość_Aik_* 13.07.2010

co do tych pkt znajdź

public PrzydzielPunkty_Handler(id, menu, item)
i musisz powkładać punkty_gracza[id]--; do wszystkich case a na koniec usunąć to poza switchem np:

if(inteligencja_gracza[id]<104){
	inteligencja_gracza[id]++;
	punkty_gracza[id]--;
}

Co do znikania musiałbyś zrobić dodatkową zmienną do której zliczałbyś śmierci gracza od czasu zdobycia itemka i gdy ma 15 wywołać funkcję wyrzuć przedmiot.

Żeby na dany przedmiot była szansa 1/10, to po zabiciu pierw wywołaj jakąś funkcję w której będzie random_num(1,10); jeżeli wypadnie 1 to gracz dostaje ten item (funkcja DajPrzedmiot zdaje się), w przeciwnym wypadku jest wywoływana standardowa funkcja (czyli DajPrzedmiot(id, random_num(1, sizeof nazwy_przedmiotow-1));)
Użytkownik Aik edytował ten post 13.07.2010 19:11
Odpowiedz

  • +
  • -
AmD - zdjęcie AmD 13.07.2010

mam tak:


case 0:
{
if(inteligencja_gracza[id]<500)
inteligencja_gracza[id]+=2;
else
client_print(id, print_chat, "[COD:MW] Maxymalny poziom inteligencji osiagniety");

}
Tak miałem od początku...

co do Itemu chodzi ci o:


public losuj_item()
{
if (random_num(0,100)<10) return 1
else return 0
}
??
Odpowiedz

Gość_Aik_* 14.07.2010


case 0:
{
if(inteligencja_gracza[id]<500){
inteligencja_gracza[id]+=2;
punkty_gracza[id]-=2;
}
else
client_print(id, print_chat, "[COD:MW] Maxymalny poziom inteligencji osiagniety");

}


ehh no to właśnie masz tu dodać(w pozostałych statystykach też masz dodać), a poza switch'em, usunąć (żeby Ci nie odejmowało 2 razy).


public losuj_item()
{
if (random_num(0,100)<10) return 1
else return 0
}

może być
to teraz użyj tego w funkcji
public Death()


if(!informacje_przedmiotu_gracza[attacker][0])
DajPrzedmiot(attacker, random_num(1, sizeof nazwy_przedmiotow-1));

w tej linijce są losowane itemki, więc tu musisz dać warunek, równie dobrze mógłbyś to zrobić bez tworzenia dodatkowej funkcji np:
if(!informacje_przedmiotu_gracza[attacker][0])
if (random_num(1,100)<=10) tutaj dajesz ten przedmiot
else DajPrzedmiot(attacker, random_num(1, sizeof nazwy_przedmiotow-2));

Oczywiście ten przedmiot musi być ostatni na liście przedmiotów.
Użytkownik Aik edytował ten post 14.07.2010 09:09
Odpowiedz

  • +
  • -
AmD - zdjęcie AmD 14.07.2010

nie czaje :/ zrobiłem tak

#endif
if(!informacje_przedmiotu_gracza[attacker][0])
if (random_num(1,100)<=10) //tutaj dajesz ten przedmiot
else DajPrzedmiot(attacker, random_num(1, sizeof nazwy_przedmiotow-2));

co miałem tam dopisać? :)

kolejna sprawa jak dałem tak:


case 0:
{
if(inteligencja_gracza[id]<1000)
inteligencja_gracza[id]+=2;
punkty_gracza[id]-=2;
else
client_print(id, print_chat, "[COD:MW] Maxymalny poziom inteligencji osiagniety");

}
to nie da się kompilować...


Welcome to the AMX Mod X 1.8.1-300 Compiler.
Copyright (c) 1997-2006 ITB CompuPhase, AMX Mod X Team

Error: Invalid expression, assumed zero on line 1757 // tu jest else
Warning: Loose indentation on line 1758 //Client print
Error: Invalid expression, assumed zero on line 1766 // else
Warning: Loose indentation on line 1767 // Client Print 
Error: Invalid expression, assumed zero on line 1774 // i tak dalej to samo
Warning: Loose indentation on line 1775
Error: Invalid expression, assumed zero on line 1783
Warning: Loose indentation on line 1784

4 Errors.
Could not locate output file C:\Documents and Settings\Root\Pulpit\QTM_CodMod2.amx (compile failed).
Odpowiedz

  • +
  • -
kyku - zdjęcie kyku 14.07.2010

używaj klamry..
case 0:
{
if(inteligencja_gracza[id]<1000){
inteligencja_gracza[id]+=2;
punkty_gracza[id]-=2;
} else
client_print(id, print_chat, "[COD:MW] Maxymalny poziom inteligencji osiagniety");

}
Odpowiedz

  • +
  • -
AmD - zdjęcie AmD 14.07.2010

dobra to działa :) a co z itemami ? :)

15 lipiec 2010 - 12:45:
@ref
Odpowiedz
Zablokowany