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

Przerobienie pluginu, wykrycie głowy.


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

#1 GoldeN

    Wszechmogący

  • Zbanowany

Reputacja: 69
Pomocny

  • Postów:676
  • Imię:Kamil
  • Lokalizacja:DG
Offline

Napisano 09.01.2011 22:00

Witajcie. Za pomocą tego:

RegisterHam(Ham_TakeDamage, "player", "TakeDamage");


lub w Diablo "Damage(id)"

kiedy bijemy w głowę?

Oraz proszę o przerobienie tego pluginu i dorzucenie do niego, ze błyskawicy nie można użyć, jeżeli graczy dzieli zbyt duży dystans.

#include <amxmodx>
#include <amxmisc>
#include <engine>
#include <hamsandwich>

#define PLUGIN "Blyskawica"
#define VERSION "1.0"
#define AUTHOR "R3X"

new const gszSound[] = "ambience/thunder_clap.wav";

new g_iMaxPlayers;

public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)

register_clcmd("blysk", "cmdBlyskawica");

g_iMaxPlayers = get_maxplayers();
}

public cmdBlyskawica(id){
new ofiara, body;
get_user_aiming(id, ofiara, body);

if(is_user_alive(ofiara)){
puscBlyskawice(id, ofiara, 100.0, 0.5);
}
return PLUGIN_HANDLED;
}
new sprite;

public plugin_precache(){
sprite = precache_model("sprites/lgtning.spr");
precache_sound(gszSound);
}

/**
* from war3ft/effects.inl
*/
stock Create_TE_BEAMENTS(startEntity, endEntity, iSprite, startFrame, frameRate, life, width, noise, red, green, blue, alpha, speed){

message_begin( MSG_BROADCAST, SVC_TEMPENTITY )
write_byte( TE_BEAMENTS )
write_short( startEntity ) // start entity
write_short( endEntity ) // end entity
write_short( iSprite ) // model
write_byte( startFrame ) // starting frame
write_byte( frameRate ) // frame rate
write_byte( life ) // life
write_byte( width ) // line width
write_byte( noise ) // noise amplitude
write_byte( red ) // red
write_byte( green ) // green
write_byte( blue ) // blue
write_byte( alpha ) // brightness
write_byte( speed ) // scroll speed
message_end()
}

puscBlyskawice(id, ofiara, Float:fObrazenia = 100.0, Float:fCzas = 1.0){
//Obrazenia
new ent = create_entity("info_target");
entity_set_string(ent, EV_SZ_classname, "blyskawica");
ExecuteHamB(Ham_TakeDamage, ofiara, ent, id, fObrazenia, DMG_SHOCK);

//Piorun
Create_TE_BEAMENTS(id, ofiara, sprite, 0, 10, floatround(fCzas*10), 150, 5, 200, 200, 200, 200, 10);

//Dzwiek
emit_sound(id, CHAN_WEAPON, gszSound, VOL_NORM, ATTN_NORM, 0, PITCH_NORM);

new i;
while((i = findClosestPlayer(id, 100.0)))
{
ExecuteHamB(Ham_TakeDamage, ofiara, ent, id, fObrazenia, DMG_SHOCK);

//Piorun
Create_TE_BEAMENTS(ofiara, i, sprite, 0, 10, floatround(fCzas*10), 150, 5, 200, 200, 200, 200, 10);

//Dzwiek
emit_sound(i, CHAN_WEAPON, gszSound, VOL_NORM, ATTN_NORM, 0, PITCH_NORM);
}

remove_entity(ent);
}

findClosestPlayer(id, Float:dist)
{
new bestPlayer, Float:bestDist = dist, Float:fDist;

for(new i = 1; i <= g_iMaxPlayers; i++)
{
if(!is_user_alive(i))
continue;

if(get_user_team(id) == get_user_team(i))
continue;

if((fDist = entity_range(id, i)) > bestDist)
continue;

bestPlayer = i;
bestDist = fDist;
}

return bestPlayer;
}


#2 sebul

    Godlike

  • Przyjaciel

Reputacja: 2 035
Godlike

  • Postów:5 411
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:Ostrołęka
Offline

Napisano 09.01.2011 22:29

Co do dystansu, to znajdź
if(is_user_alive(ofiara)){

i zamień na
if(is_user_alive(ofiara) && get_user_team(id) != get_user_team(ofiara) && entity_range(id, ofiara) < dystans) {

zamiast "dystans" wpisz swoją odległość, myślę, że coś ok. 600, będzie dobrze, ale ogólnie nawet do 1000 możesz dać.
Dałem przy okazji, żeby nie dało się swojego z teamu atakować, ale jeśli nie chcesz tego to usuń " && get_user_team(id) != get_user_team(ofiara)".
  • +
  • -
  • 1

Posiadam TBM (inaczej PTB), które działa dużo lepiej niż zwykłe PTB, nawet na modach z lvlami. Zainteresowany? Proszę bardzo


#3 GoldeN

    Wszechmogący

  • Autor tematu
  • Zbanowany

Reputacja: 69
Pomocny

  • Postów:676
  • Imię:Kamil
  • Lokalizacja:DG
Offline

Napisano 09.01.2011 22:56

Bardzo dziękuję, jutro sprawdzę czy działa. Czekam na pierwsze pytanie!




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

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