Skocz do zawartości

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.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Zdjęcie

Itemy-Podzial


  • Zamknięty Temat jest zamknięty
4 odpowiedzi w tym temacie

#1 KariiO

    Super Hero

  • Power User

Reputacja: 396
Wszechpomocny

  • Postów:1 133
  • GG:
  • Imię:Korneliusz
  • Lokalizacja:Cieszyn
Offline

Napisano 15.10.2010 12:59

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 :D.
  • +
  • -
  • 0

#2 Screeaam...

    ; ooo

  • Zbanowany

Reputacja: 154
Profesjonalista

  • Postów:1 012
  • Lokalizacja:Sosnowiec
Offline

Napisano 15.10.2010 13:32

2.

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 ZiuTeK

    Wszechwiedzący

  • Użytkownik

Reputacja: 135
Zaawansowany

  • Postów:507
  • Lokalizacja:inąd
Offline

Napisano 15.10.2010 20:46

1
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

  • +
  • -
  • 1

#4 KariiO

    Super Hero

  • Autor tematu
  • Power User

Reputacja: 396
Wszechpomocny

  • Postów:1 133
  • GG:
  • Imię:Korneliusz
  • Lokalizacja:Cieszyn
Offline

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:
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 ?
  • +
  • -
  • 0

#5 ZiuTeK

    Wszechwiedzący

  • Użytkownik

Reputacja: 135
Zaawansowany

  • Postów:507
  • Lokalizacja:inąd
Offline

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.

Użytkownik ZiuTeK edytował ten post 17.10.2010 02:05

  • +
  • -
  • 0




Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych