←  Pytania

AMXX.pl: Support AMX Mod X i SourceMod

»

Łączenie dwóch zmiennych

adif11 - zdjęcie adif11 01.07.2013

Witam serdecznie nie wiedziałem gdzie napisać ponieważ kod jest z diablo moda a chce go podłączyć pod cod moda

 

Kod z diablo

len += formatex(staty[len], SIZE - len, "Masz <b>%d</b> punktow wytrzymalosci - daje to %0.1f%% redukcji obrazen<br>", wytrzymalosc_gracza[id], redukcja_obrazen_gracza[id]*100);

Kod z coda

format(wytrzymalosc, charsmax(wytrzymalosc), "\yWytrzymalosc: \r%i \y(Zmniejsza obrazenia)", PobierzWytrzymalosc(id, 1, 1, 1));

Chciałbym aby kod pokazywał ile redukuje obrażen sam kod z diablo działą w 50% lecz po dodaniu punktów trzeba wyłączać i włączać statystyki jeżeli jest sam kod od coda nie pokazuje ile jest zredukowane ponieważ jest tam inna zmienna a dokładniej %i a w diablo to jest %f i teraz rodzi się pytanie jak te zmienne połączyć ze sobą.

 

Próbowałem coś takiego lecz niestety nie działa

	format(wytrzymalosc, charsmax(wytrzymalosc), "\yWytrzymalosc: \r%i \y(Zmniejsza obrazenia o %0.1f%%)", PobierzWytrzymalosc(id, 1, 1, 1), wytrzymalosc_gracza[id], redukcja_obrazen_gracza[id]*100);

Proszę wybaczyć za błędy

Odpowiedz

  • +
  • -
DarkGL - zdjęcie DarkGL 01.07.2013

inna zmienna a dokładniej %i a w diablo to jest %f


to nie są zmienne tylko ciągi formatujące

zamiast format naprawdę użyj tego formatex

podaj kod jak jest liczona redukcja obrażeń w cod
Odpowiedz

adif11 - zdjęcie adif11 01.07.2013

Pytałem 2 doświadczonych userów z forum i napisali mi iż to są zmienne..

 

więc wybacz

redukcja_obrazen_gracza[id] = 0.7*(1.0-floatpower(1.1, -0.112311341*PobierzWytrzymalosc(id, 1, 1, 1)));

Można wiedzieć czy ta zmiana z format na formatex coś zmieni jeżeli tak to co?

 

I wystarczy że podmienie tylko ten "wyraz" i nic więcej nie trzeba zmieniać?


Użytkownik adif11 edytował ten post 01.07.2013 19:42
Odpowiedz

  • +
  • -
DarkGL - zdjęcie DarkGL 01.07.2013

formatex(wytrzymalosc, charsmax(wytrzymalosc), "\yWytrzymalosc: \r%i \y(Zmniejsza obrazenia o %0.1f%%)", PobierzWytrzymalosc(id, 1, 1, 1), redukcja_obrazen_gracza[id]*100.0);

Można wiedzieć czy ta zmiana z format na formatex coś zmieni jeżeli tak to co?

http://amxx.pl/dokum.../f1367/formatex

Odpowiedz

adif11 - zdjęcie adif11 01.07.2013

Dziekuje za odpowiedz , lecz probowalem tak i niestety podaje dziwne wyniki , czy rowniez nie pokazuje licz bo przecinku ale zapewne wystarczy dodac jedno 0?

Wybacz za brak Polskich znakow lecz pisze z telefonu
Odpowiedz

adif11 - zdjęcie adif11 02.07.2013

Refresh proszę o pomoc :<

powyższy kod pokazuje redukcje lecz niby dodaje , resetuje statyki czy też dodaje punkty w tą statystykę lecz nic się nie zmienia :<


Użytkownik adif11 edytował ten post 02.07.2013 23:04
Odpowiedz

adif11 - zdjęcie adif11 04.07.2013

Odświeżam!

powyższy kod pokazuje redukcje lecz niby dodaje , resetuje statyki czy też dodaje punkty w tą statystykę lecz nic się nie zmienia :<

Odpowiedz

GT Team - zdjęcie GT Team 04.07.2013

to
redukcja_obrazen_gracza[id]
masz we Float ?
new Float:redukcja_obrazen_gracza[33]
Odpowiedz

adif11 - zdjęcie adif11 04.07.2013

Jak widać

 

redukcja_obrazen_gracza[id] = 0.7*(1.0-floatpower(1.1, -0.112311341*PobierzWytrzymalosc(id, 1, 1, 1)));

 

chyba że to nie to :<

Odpowiedz

GT Team - zdjęcie GT Team 04.07.2013

Ta funkjca którą pokazałeś jest tylko w tym publicu, czy jest zmienną globalną ( tj. przed plug.init )
Odpowiedz

adif11 - zdjęcie adif11 04.07.2013

Mam to  w takiej formie

new Float:maksymalne_zdrowie_gracza[33],
     Float:szybkosc_gracza[33],
     Float:redukcja_obrazen_gracza[33];
Odpowiedz

GT Team - zdjęcie GT Team 04.07.2013

Daj public, w tym PrzydzielStatystki ( tam gdzie jest to menu ) O ile dobrze rozumiem, odswieza po mapie ?
Odpowiedz

  • +
  • -
DarkGL - zdjęcie DarkGL 05.07.2013

Podstawowe pytanie gdzie używasz tego tekstu który formatujesz w pierwszym poście ( odświeżasz kanał wyświetlania ) ?

Wyliczasz nowa redukcje obrażeń po modyfikacji ilości punktów wytrzymałości ?

Odpowiedz

  • +
  • -
BlackPerfum - zdjęcie BlackPerfum 06.07.2013

Zależy jakiego masz cod moda (nie chodzi mi o podział na nowy i stary)

Są różne redukcje.

 

1.) Redukcji obrażeń  nie da się przedstawić w %. Ponieważ w cod modzie ilość redukowanych obrażeń nie zależy od samych obrażeń.

Jeśli ktoś nie rozumie tego co napisałem to wytłumaczę to tak. Nieważne ile ktoś ci zada obrażeń a i tak zostanie od nich odjęte ( wytrzymałość * 0.08755 )

Możesz zrobić coś takiego:

formatex(wytrzymalosc, charsmax(wytrzymalosc), "\yWytrzymalosc: \r%i \y(Zmniejsza obrazenia o %0.1f)", PobierzWytrzymalosc(id, 1, 1, 1), (PobierzWytrzymalosc(id, 1, 1, 1) * 0.08755 ));

2.) Tą już się da przedstawić w %. Redukcja jest podobna jak w diablo gdyż różni sie jedynie siłą działania.

formatex(wytrzymalosc, charsmax(wytrzymalosc), "\yWytrzymalosc: \r%i \y(Zmniejsza obrazenia o %0.1f%%)", PobierzWytrzymalosc(id, 1, 1, 1), (47.3057*(1.0-floatpower( 2.7182, -0.06798*float(PobierzWytrzymalosc(id, 1, 1, 1)))) ));

Sprawdź jaką ty masz z podanych tych dwóch(tylko takie znam). Jeżeli masz inną najlepiej podaj całe .sma to pomogę.


Użytkownik BlackPerfum edytował ten post 06.07.2013 03:30
Odpowiedz

adif11 - zdjęcie adif11 11.07.2013

public PrzydzielPunkty(id)
{
	new szybkosc[60];
	new inteligencja[65];
	new zdrowie[60];
	new wytrzymalosc[60];
	new kondycja[60];
	new tytul[25];
	
	if(co_ile[szybkosc_rozdania[id]] == -1)
	format(szybkosc, charsmax(szybkosc), "\yIle dodawac: \rwszystko \y(Ile pkt dodac do statow)");
	else format(szybkosc, charsmax(szybkosc), "\yIle dodawac: \r%d \y(Ile pkt dodac do statow)", co_ile[szybkosc_rozdania[id]]);
	
	format(inteligencja, charsmax(inteligencja), "\yInteligencja: \r%i \y(Zwieksza sile perkow i umiejetnosci)", PobierzInteligencje(id, 1, 1, 1));
	format(zdrowie, charsmax(zdrowie), "\yZdrowie: \r%i \y(Masz o \r%i \yzdrowia wiecej)", PobierzZdrowie(id, 1, 1, 1), zdrowie_gracza[id]*1);
	format(wytrzymalosc, charsmax(wytrzymalosc), "\yWytrzymalosc: \r%i \y(Zmniejsza obrazenia o %0.01f%%)", PobierzWytrzymalosc(id, 1, 1, 1), redukcja_obrazen_gracza[id]*100.0);
	format(kondycja, charsmax(kondycja), "\ySzybkosc : \r%i \y(Jestes o \r%i%% \yszybszy)", PobierzKondycje(id, 1, 1, 1), kondycja_gracza[id]);
	
	format(tytul, charsmax(tytul), "\yWolne punkty \r(%i)", punkty_gracza[id]);
	new menu = menu_create(tytul, "PrzydzielPunkty_Handler");
	menu_additem(menu, szybkosc);
	menu_addblank(menu, 0);
	menu_additem(menu, inteligencja);
	menu_additem(menu, zdrowie);
	menu_additem(menu, wytrzymalosc);
	menu_additem(menu, kondycja);
	menu_setprop(menu, MPROP_EXIT, 0);
	menu_display(id, menu);
}

Proszę o pomoc :<

Odpowiedz

GT Team - zdjęcie GT Team 11.07.2013

daj handler (PrzydzielPunkty_Handler) i zamiast format daj formatex
Odpowiedz

adif11 - zdjęcie adif11 11.07.2013

zrobiłem tak

formatex(wytrzymalosc, charsmax(wytrzymalosc), "\yWytrzymalosc: \r%i \y(Zmniejsza obrazenia o %0.1f%%)",   PobierzWytrzymalosc(id, 1, 1, 1), (10*0.7*(1.0-floatpower( 1.1, -0.112311341*float(PobierzWytrzymalosc(id, 1, 1, 1)))) ));

i jak na razie pokazuje 1.8% 3.7% więc dobrze :)

Odpowiedz