Witam czy dało by się zrobić coś takiego(jak tak prosił bym o wyjaśnienia):
1.Chciał bym zrobić 7 kategorii:
-Amulet
-Zbroja
-Buty
-Hełm
-Nogawice
-Tarcza
-Broń
I np. przy kupieniu itemka losowała by np. jakiś item z tych kategorii.
Ogólnie można mieć 7 itemów z każdego przedziału.
2.Jak zrobić taki mały kod co dawał by Ninji 1/5 szans na okradnięcie kogoś z 250 złota do 1000...
3.Jak zrobić coś w stylu banku.Po prostu dajesz item chcesz zmienić klasę , zmieniasz i wyciągasz go z banku .
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.
|
Guest Message by DevFuse
Itemy-Podzial
Temat rozp. KariiO, 15.10.2010 12:59
4 odpowiedzi w tym temacie
#1
Napisano 15.10.2010 12:59
#2
Napisano 15.10.2010 13:32
2.
W:
Za przed ostatnią klamrą dodajesz:
W menu wyboru klas po Ninja: (ew. RoundStart() , lub ResetHUD(?))
Powinno śmigać. Pisane na forum.
Co do 1.
Zmienna o rozmiarze tablicy 7, potem powinna być pętla, która będzie układać itemy po kolei i funkcja na przydzielenie danych itemow.
new c_theif[33];
W:
public add_theif_bonus(id,attacker_id)
Za przed ostatnią klamrą dodajesz:
if (c_theif[attacker_id] > 0)
{
new roll2 = random_num(1,5) // Zmieniasz szanse, teraz 1/5
if (roll2 == 1)
{
if (cs_get_user_money(id) > c_theif[attacker_id])
{
cs_set_user_money(id,cs_get_user_money(id)-c_theif[attacker_id])
if (cs_get_user_money(attacker_id) + c_theif[attacker_id] <= 16000)
{
cs_set_user_money(attacker_id,cs_get_user_money(attacker_id)+c_theif[attacker_id])
}
}
else
{
new allthatsleft = cs_get_user_money(id)
cs_set_user_money(id,0)
if (cs_get_user_money(attacker_id) + allthatsleft <= 16000)
{
cs_set_user_money(attacker_id,cs_get_user_money(attacker_id) + allthatsleft)
}
}
}
}
W menu wyboru klas po Ninja: (ew. RoundStart() , lub ResetHUD(?))
c_theif[id] = (250,1000)
Powinno śmigać. Pisane na forum.
Co do 1.
Zmienna o rozmiarze tablicy 7, potem powinna być pętla, która będzie układać itemy po kolei i funkcja na przydzielenie danych itemow.
Użytkownik Screeaam... edytował ten post 15.10.2010 13:34
#3
Napisano 15.10.2010 20:46
1
Do tego przydaloby sie menu dropowania i albo musialbys za jednym /dropem wywalic wszystkie itemy z kazdej grupy
albo tworzyc osobno /drop1 /drop2 itd i tam tworzyc moce ktore maja byc usuwane
Poniewaz nie rozumiem tego podzialu i nie wiem jakie itemy chcesz tam umieszczac, to wydropienie byloby bardzo ciezkie do zrealizowania. Jesli powiedzmy w butach i powiedzmy nogawicach mialbys ta sama wartosc jak np player_b_vampire to wydropilbys ja i z tego i z tego. Nie wiem tez jak realizowalbys takie rzeczy jak np
w jednym itemie masz player_b_money(ktore dodaje iles pieniedzy na start, dostajesz to samo w drugim itemie i ta wartosc jest zamieniana, jeslibys chcial to sumowac to musialbys wstawic odpowiednie warunki
Musialbys usunac wyswietlanie itemu na dole w dolnym rogu bo 5 itemow sie tam nie zmiesci.
Pozmieniac wszystkie warunki w ktorych jest player_item_id
Tak duzo roboty, a efekt koncowy to bedzie raczej porazka.
Moze ktos zaproponuje inne rozwiazanie i wtedy inaczej na to spojrze.
3.
new player_b_bank[33] = 0
new player_b_bankdurability[33]= 0
zarejestrowac komende w plugin_init
register_clcmd("say /bank","bank")
player_b_bank[id]=0
player_b_bankdurability[id]=0
Nie testowalem.
public award_item(id, itemnum) { if (player_item_id1[id]!= 0 && player_item_id2[id]!= 0 && player_item_id3[id]!= 0 )// tyle ile chcesz podzialow return PLUGIN_HANDLED set_hudmessage(220, 115, 70, -1.0, 0.40, 0, 3.0, 4.0, 0.2, 0.3, 5) new rodzaj_itemu= random_num(1,x) // x to ile tych grup sobie stworzysz switch(rodzaj_itemu) case 1: { if (player_item_id1[id]>0 award_item(id,0) // jesli juz ma item z tej grupy to losuje od nowa else { new rannum1=random_num(1,x) /// ilosc itemow w pierwszej grupie switch(rannum1) { case 1: { player_item_name[id] = "Bronze Amplifier" player_item_id[id] = rannum player_b_damage[id] = random_num(1,3) show_hudmessage(id, "Znalazles przedmiot: %s :: dodaje obrazenia +%i",player_item_name[id],player_b_damage[id]) } . . . }To jest tylko pokazany sposob w jaki rozwiazac samo losowanie ale na twoim miejscu nawet nie bralbym sie za taka przerobke.
Do tego przydaloby sie menu dropowania i albo musialbys za jednym /dropem wywalic wszystkie itemy z kazdej grupy
albo tworzyc osobno /drop1 /drop2 itd i tam tworzyc moce ktore maja byc usuwane
Poniewaz nie rozumiem tego podzialu i nie wiem jakie itemy chcesz tam umieszczac, to wydropienie byloby bardzo ciezkie do zrealizowania. Jesli powiedzmy w butach i powiedzmy nogawicach mialbys ta sama wartosc jak np player_b_vampire to wydropilbys ja i z tego i z tego. Nie wiem tez jak realizowalbys takie rzeczy jak np
w jednym itemie masz player_b_money(ktore dodaje iles pieniedzy na start, dostajesz to samo w drugim itemie i ta wartosc jest zamieniana, jeslibys chcial to sumowac to musialbys wstawic odpowiednie warunki
Musialbys usunac wyswietlanie itemu na dole w dolnym rogu bo 5 itemow sie tam nie zmiesci.
Pozmieniac wszystkie warunki w ktorych jest player_item_id
Tak duzo roboty, a efekt koncowy to bedzie raczej porazka.
Moze ktos zaproponuje inne rozwiazanie i wtedy inaczej na to spojrze.
3.
new player_b_bank[33] = 0
new player_b_bankdurability[33]= 0
zarejestrowac komende w plugin_init
register_clcmd("say /bank","bank")
public bank(id) { if (player_item_id[id]>0) { player_b_bank[id]=player_item_id[id] player_b_bankdurability[id]=item_durability[id] dropitem(id) } else { player_item_id[id]=player_b_bank[id] item_durability[id]=player_b_bankdurability[id] player_b_bank[id]=0 player_b_bankdurability[id]=0 } }w public client_disconnect musialbys wyzerowac jeszcze raz
player_b_bank[id]=0
player_b_bankdurability[id]=0
Nie testowalem.
Użytkownik ZiuTeK edytował ten post 15.10.2010 21:07
#4
Napisano 16.10.2010 00:28
No wiadomo np. do zbroi redukcja i odbijanie się...Coś w tym stylu.
Jednej mocy do dwóch kategorii na pewno nie bd. używał ;-)
Dodano 16 październik 2010 - 18:31:
Czyli award item miało by wyglądać tak:
Ale czy tak to ma wyglądać ? Jeżeli tak to jak drop ?
Jednej mocy do dwóch kategorii na pewno nie bd. używał ;-)
Dodano 16 październik 2010 - 18:31:
Czyli award item miało by wyglądać tak:
public award_item(id, itemnum) { if (player_item_id1[id]!= 0 && player_item_id2[id]!= 0 && player_item_id3[id]!= 0 && player_item_id4[id]!= 0 && player_item_id5[id]!= 0 && player_item_id6[id]!= 0 && player_item_id7[id]!= 0 )// tyle ile chcesz podzialow return PLUGIN_HANDLED set_hudmessage(220, 115, 70, -1.0, 0.40, 0, 3.0, 4.0, 0.2, 0.3, 5) new rodzaj_itemu= random_num(1,7) // x to ile tych grup sobie stworzysz switch(rodzaj_itemu) case 1: { if (player_item_id1[id]>0 award_item(id,0) // jesli juz ma item z tej grupy to losuje od nowa else { new rannum1=random_num(1,2) /// ilosc itemow w pierwszej grupie switch(rannum1) { case 1: { player_item_name[id] = "Bronze Amplifier" player_item_id[id] = rannum player_b_damage[id] = random_num(1,3) show_hudmessage(id, "Znalazles przedmiot: %s :: dodaje obrazenia +%i",player_item_name[id],player_b_damage[id]) } case 2: { player_item_name[id] = "abcde fghis" player_item_id[id] = rannum player_b_damage[id] = random_num(1,3) show_hudmessage(id, "Znalazles przedmiot: %s :: dodaje obrazenia +%i",player_item_name[id],player_b_damage[id]) } } if (player_item_id2[id]>0 award_item(id,0) // jesli juz ma item z tej grupy to losuje od nowa else { new rannum2=random_num(1,2) /// ilosc itemow w pierwszej grupie switch(rannum2) { case 1: { player_item_name[id] = "Buty sdsd" player_item_id[id] = rannum player_b_szybkosc[id] = random_num(10,30) show_hudmessage(id, "Znalazles przedmiot: %s :: dodaje obrazenia +%i",player_item_name[id],player_b_damage[id]) } case 2: { player_item_name[id] = "Buty sdsdaaa" player_item_id[id] = rannum player_b_szybkosc[id] = random_num(10,30) show_hudmessage(id, "Znalazles przedmiot: %s :: dodaje obrazenia +%i",player_item_name[id],player_b_damage[id]) } } if (player_item_id3[id]>0 award_item(id,0) // jesli juz ma item z tej grupy to losuje od nowa else { new rannum3=random_num(1,2) /// ilosc itemow w pierwszej grupie switch(rannum3) { case 1: { player_item_name[id] = "zbroja sxsd" player_item_id[id] = rannum player_b_redirect[id] = random_num(1,3) show_hudmessage(id, "Znalazles przedmiot: %s :: dodaje obrazenia +%i",player_item_name[id],player_b_damage[id]) } case 2: { player_item_name[id] = "zbroja sxsdaaa" player_item_id[id] = rannum player_b_redirect[id] = random_num(1,3) show_hudmessage(id, "Znalazles przedmiot: %s :: dodaje obrazenia +%i",player_item_name[id],player_b_damage[id]) } } if (player_item_id4[id]>0 award_item(id,0) // jesli juz ma item z tej grupy to losuje od nowa else { new rannum4=random_num(1,2) /// ilosc itemow w pierwszej grupie switch(rannum4) { case 1: { player_item_name[id] = "nogawice Ampssss" player_item_id[id] = rannum player_b_theif[id] = random_num(1,3) show_hudmessage(id, "Znalazles przedmiot: %s :: dodaje obrazenia +%i",player_item_name[id],player_b_damage[id]) } case 2: { player_item_name[id] = ""nogawice Ampssss" player_item_id[id] = rannum player_b_theif[id] = random_num(1,3) show_hudmessage(id, "Znalazles przedmiot: %s :: dodaje obrazenia +%i",player_item_name[id],player_b_damage[id]) } } if (player_item_id5[id]>0 award_item(id,0) // jesli juz ma item z tej grupy to losuje od nowa else { new rannum5=random_num(1,2) /// ilosc itemow w pierwszej grupie switch(rannum5) { case 1: { player_item_name[id] = "Bronze bron" player_item_id[id] = rannum player_b_blind[id] = random_num(1,3) show_hudmessage(id, "Znalazles przedmiot: %s :: dodaje obrazenia +%i",player_item_name[id],player_b_damage[id]) } case 2: { player_item_name[id] = "Bronze bron" player_item_id[id] = rannum player_b_blind[id] = random_num(1,3) show_hudmessage(id, "Znalazles przedmiot: %s :: dodaje obrazenia +%i",player_item_name[id],player_b_damage[id]) } }No jeszcze pozostałe 2 kategorie...
Ale czy tak to ma wyglądać ? Jeżeli tak to jak drop ?
#5
Napisano 17.10.2010 02:03
Do tego musialbys dac albo jeden pojedynczy drop albo wiecej roboty ale wiecej dropow
zarejestrowac komendy w plugin_init na podobnej zasadzie jak /drop
czyli
/drop1 czy tam /dropnogawice
i public dropnogawice(id)
dropujesz(zerujesz) tylko te wartosci z pierwszej grupy czyli player_b_damage
w /drop2 tylko te z drugiej i tak dalej i tak talej.
zarejestrowac komendy w plugin_init na podobnej zasadzie jak /drop
czyli
/drop1 czy tam /dropnogawice
i public dropnogawice(id)
dropujesz(zerujesz) tylko te wartosci z pierwszej grupy czyli player_b_damage
w /drop2 tylko te z drugiej i tak dalej i tak talej.
Użytkownik ZiuTeK edytował ten post 17.10.2010 02:05
Użytkownicy przeglądający ten temat: 0
0 użytkowników, 0 gości, 0 anonimowych