←  Pytania

AMXX.pl: Support AMX Mod X i SourceMod

»

Jak zrobić prawidłowe odrzucanie wroga po...

  • +
  • -
Ossal's Photo Ossal 31.05.2015

Potrzebuję stocka odrzucającego ofiarę przy strzale w zależności od:
- patrzenia atakującego - wróg odleci w tę samą stronę w którą patrzy attacker (na przykład VelocityByAim)
- obrażeń zadanych - im więcej dmg tym dalej odrzuci

- odległości miedzy graczami - im bliżej się znajdują tym dalej odrzuci

uwzględniając przy tym obecne velocity ofiary.
Kombinuję i nie mogę dojść do pożądanego efektu, nie wiem jakie liczby i działania powstawiać. 
Maiło by to wyglądać mniej więcej tak (reszta opisana w komentarzach:
 

#include <amxmodx>
#include <hamsandwich>
#include <engine>  //chyba będzie lepiej niż fakemeta

#define MOC_ODRZUTU X
#define MAX_DYSTANS X //nie koniecnie potrzebne (?), bo na przykład przy
// dzieleniu przez get_entity_distance przy bardzo durzych odległościach odrzut by dążył do zera

public plugin_init(){
	register_plugin("Odrzut", "1.0", "Nieznany na razie :D")
	RegisterHam(Ham_TakeDamage, "player", "fw_TakeDamage", 0) //1 - w momencie obrazeń, 0 - "przed" obrażeniami
}
public fw_TakeDamage(victim,ent,attacker,Float:damage,damage_type){
	if(!is_user_alive(attacker) || attacker!=ent || get_user_weapon(attacker)==CSW_KNIFE) return HAM_IGNORED
	//float((damage*MNOZNIK_ODRZUTU)/get_entity_distance(vid,aid))
	Odrzuc(victim,attacker,floatround(damage)) //lub bez floatround, ale z Float: w parametrach funkcji
	return HAM_IGNORED
}
stock Odrzuc(victim, attacker, damage){
	//funkcja wywoływana bardzo często, więc najlepiej będzie to zrobić na funkcjach statycznych (?) :)
	//nie wiem czy to istotne, ale chyba warto wziąć pod uwagę (choćby przy testowaniu)
	//że więcej niż 450dmg można zadać tylko z bardzo bliska
}

Da radę zrobić coś co będzie działało zawsze tak samo dla każdych liczb i przy okazji, żeby miało sens? Z góry dzięki za pomoc, pozdrawiam :)

Quote

  • +
  • -
SzymonAdom's Photo SzymonAdom 01.06.2015

na codzie jest 1/x na podrzucenie wroga na x wysokość

 

Może ci się przydać 

 

LINK

http://amxx.pl/topic...-klasa-lewiter/

Quote

  • +
  • -
Ossal's Photo Ossal 01.06.2015

Sory, ale plugin na odrzucenie niezależne od niczego to sobie sam napisałem, nie w tym rzecz ;) Potrzebuję takiego opisanego w 1 poście :D

Quote

  • +
  • -
Ossal's Photo Ossal 06.06.2015

@refresh, w 20 linii załączonego kodu, chodzi oczywiście o zmienne statyczne :D

Quote

  • +
  • -
Ossal's Photo Ossal 19.06.2015


plugin na odrzucenie niezależne od niczego to sobie sam napisałem, nie w tym rzecz Potrzebuję takiego opisanego w 1 poście


Kombinuję i nie mogę dojść do pożądanego efektu, nie wiem jakie liczby i działania powstawiać.


Niezrozumiale napisałem Radim? 
Quote