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

[ROZWIĄZANE] Licznik zabić przez skoczenie na głowę.


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

#21 Kłusownik

    Banned

  • Autor tematu
  • Zbanowany

Reputacja: 6
Nowy

  • Postów:97
  • Imię:zenek
  • Lokalizacja:Polska
Offline

Napisano 25.06.2012 18:43

nadal nie działa... :(

Użytkownik Kłusownik edytował ten post 25.06.2012 18:48


#22 Gość_21977_*

  • Gość

Reputacja: 0

Offline

Napisano 25.06.2012 18:51

Dopisz.
I sprawdź, czy działa natyw z HeadSplash.

edit. Np. w funkcji n_HeadSplash() na końcu dodaj wyświetlanie wiadomości, czy dodania logów, żeby się upewnić, że natyw działa.

#23 Kłusownik

    Banned

  • Autor tematu
  • Zbanowany

Reputacja: 6
Nowy

  • Postów:97
  • Imię:zenek
  • Lokalizacja:Polska
Offline

Napisano 25.06.2012 19:09

np.: ??
public plugin_natives(){
register_library("HeadSplash");
register_native("HeadSplash", "n_HeadSplash(test)");
}


Logui:
L 06/25/2012 - 20:06:06: Start of error session.
L 06/25/2012 - 20:06:06: Info (map "de_dust2") (file "addons/amxmodx/logs/error_20120625.log")
L 06/25/2012 - 20:06:06: Function "n_HeadSplash(test)" was not found
L 06/25/2012 - 20:06:06: [AMXX] Run time error 19 (plugin "bf2rank.amxx") - debug not enabled!
L 06/25/2012 - 20:06:06: [AMXX] To enable debug mode, add "debug" after the plugin name in plugins.ini (without quotes).
L 06/25/2012 - 20:06:06: [AMXX] Run time error -1 (plugin "bf2rank.amxx") - debug not enabled!
L 06/25/2012 - 20:06:10: Function is not present (function "set_gravity") (plugin "bf2rank.amxx")
L 06/25/2012 - 20:06:10: [AMXX] Displaying debug trace (plugin "bf2rank.amxx")
L 06/25/2012 - 20:06:10: [AMXX] Run time error 10: native error (native "set_task")
L 06/25/2012 - 20:06:10: [AMXX] [0] events.inl::LogEvent_Round_Start (line 186)

#24 Gość_21977_*

  • Gość

Reputacja: 0

Offline

Napisano 25.06.2012 19:16

register_native("HeadSplash", "n_HeadSplash(test)");
nie, no tak być nie może.

W funkcji n_HeadSplash() dodaj na końcu
client_print(0, print_center, "TEST");

i napisz, czy Ci się wyświetla słowo "TEST" na środku ekranu w momencie zabicia wroga skokiem na głowę.

Popraw też inne błędy oraz dodaj debugowanie pluginu.

public plugin_natives(){
register_native("badge_use", "_badge_use")
register_library("HeadSplash");
register_native("HeadSplash", "n_HeadSplash");
}

public n_HeadSplash(plugin, params){
new id = get_param(1);
++headsplashes[id];
++Rheadsplashes[id];
++totalkills[id];
save_badges(id);
DisplayHUD(id);
client_print(0, print_center, "TEST");
}


#25 Kłusownik

    Banned

  • Autor tematu
  • Zbanowany

Reputacja: 6
Nowy

  • Postów:97
  • Imię:zenek
  • Lokalizacja:Polska
Offline

Napisano 25.06.2012 19:17

Czyli tak:


public n_HeadSplash(plugin, params){
new id = get_param(1);
++headsplashes[id];
++Rheadsplashes[id];
++totalkills[id];
save_badges(id);
DisplayHUD(id);
client_print(0, print_center, "TEST");
}

#26 Gość_21977_*

  • Gość

Reputacja: 0

Offline

Napisano 25.06.2012 19:19

tak

#27 Kłusownik

    Banned

  • Autor tematu
  • Zbanowany

Reputacja: 6
Nowy

  • Postów:97
  • Imię:zenek
  • Lokalizacja:Polska
Offline

Napisano 25.06.2012 19:20

nie pojawiło się nic. a dałem debug.



L 06/25/2012 - 20:17:38: Start of error session.
L 06/25/2012 - 20:17:38: Info (map "de_dust2") (file "addons/amxmodx/logs/error_20120625.log")
L 06/25/2012 - 20:17:38: [AMXX] Language key "VM_ANNOUCE" not found for language "pl", check "Voices_Management.amxx"

Użytkownik Kłusownik edytował ten post 25.06.2012 19:21


#28 Gość_21977_*

  • Gość

Reputacja: 0

Offline

Napisano 25.06.2012 19:23

Korzystasz w ogóle z wersji HeadSplasha z natywem, który napisałem w pierwszym poście?

btw. Debug pokaże dokładniej przyczynę pojawiania się błędów w logach, nic więcej.

#29 Kłusownik

    Banned

  • Autor tematu
  • Zbanowany

Reputacja: 6
Nowy

  • Postów:97
  • Imię:zenek
  • Lokalizacja:Polska
Offline

Napisano 25.06.2012 19:38

tak wgrałem ten head_splash.sma z twojego posta... moze dałeś mi zły?

A skompiluj ty mi te pliki i daj amxx..

Użytkownik Kłusownik edytował ten post 25.06.2012 19:40


#30 Gość_21977_*

  • Gość

Reputacja: 0

Offline

Napisano 25.06.2012 19:41

Faktycznie.. :facepalm2:

Przesyłam Ci kod SMA HeadSplash z natywem:
#include <amxmodx>
#include <fakemeta>
#include <cstrike>
#include <HeadSplash>

#define PLUGIN_VERSION "1.4"

// JUMPING
#define MINIMUM_FALL_SPEED 0
#define MAXIMUM_DAMAGE_FROM_JUMP 10000.0

//STANDING
#define DAMAGE 50.0
#define DELAY 0.1

new amx_headsplash;
new Float:falling_speed[33];
new Float:damage_after[33][33];
new sprite_blood;
new sprite_bloodspray;

public plugin_init()
{
register_plugin("Head Splash", PLUGIN_VERSION, "potatis_invalido"); // Register the plugin.
amx_headsplash = register_cvar("amx_headsplash", "1"); // Register the on/off cvar.
register_forward(FM_Touch, "forward_touch"); // Register the "touch" forward.
register_forward(FM_PlayerPreThink, "forward_PlayerPreThink"); // TY Alka!
}

public plugin_precache()
{
sprite_blood = precache_model("sprites/blood.spr");
sprite_bloodspray = precache_model("sprites/bloodspray.spr");
}

public forward_touch(toucher, touched) // This function is called every time a player touches another player.
{
// NOTE: The toucher is the player standing/falling on top of the other (touched) player's head.
if(!is_user_alive(toucher) || !is_user_alive(touched)) // The touching players can't be dead.
return;

if(!get_pcvar_num(amx_headsplash)) // If the plugin is disabled, stop messing with things.
return;

if(falling_speed[touched]) // Check if the touched player is falling. If he/she is, don't continue.
return;

if(get_user_team(toucher) == get_user_team(touched) && !get_cvar_num("mp_friendlyfire")) // If the touchers are in the same team and friendly fire is off, don't continue.
return;

new touched_origin[3], toucher_origin[3];
get_user_origin(touched, touched_origin); // Get the origins of the players so it's possible to check if the toucher is standing on the touched's head.
get_user_origin(toucher, toucher_origin);

new Float:toucher_minsize[3], Float:touched_minsize[3];
pev(toucher,pev_mins,toucher_minsize);
pev(touched,pev_mins,touched_minsize); // If touche*_minsize is equal to -18.0, touche* is crouching.

if(touched_minsize[2] != -18.0) // If the touched player IS NOT crouching, check if the toucher is on his/her head.
{
if(!(toucher_origin[2] == touched_origin[2]+72 && toucher_minsize[2] != -18.0) && !(toucher_origin[2] == touched_origin[2]+54 && toucher_minsize[2] == -18.0))
{
return;
}
}
else // If the touched player is crouching, check if the toucher is on his/her head
{
if(!(toucher_origin[2] == touched_origin[2]+68 && toucher_minsize[2] != -18.0) && !(toucher_origin[2] == touched_origin[2]+50 && toucher_minsize[2] == -18.0))
{
return;
}
}

if(falling_speed[toucher] >= MINIMUM_FALL_SPEED) // If the toucher is falling in the required speed or faster, then landing on top of the touched's head, do some damage to the touched. MUHAHAHAHAHA!!!
{
new Float:damage = ((falling_speed[toucher] - MINIMUM_FALL_SPEED + 30) * (falling_speed[toucher] - MINIMUM_FALL_SPEED + 30)) / 1300;
if(damage > MAXIMUM_DAMAGE_FROM_JUMP) // Make shure that the touched player don't take too much damage.
damage = MAXIMUM_DAMAGE_FROM_JUMP;
damage_player(touched, toucher, damage); // Damage or kill the touched player.
damage_after[toucher][touched] = 0.0; // Reset.
}
if(is_user_alive(touched) && damage_after[toucher][touched] <= get_gametime()) // This makes shure that you won't get damaged every frame you have some one on your head. It also makes shure that players won't get damaged faster on fast servers than laggy servers.
{
damage_after[toucher][touched] = get_gametime() + DELAY;
damage_player(touched, toucher, DAMAGE); // Damage or kill the touched player.
}
}

public forward_PlayerPreThink(id) // This is called every time before a player "thinks". A player thinks many times per second.
{
//falling_speed[id] = entity_get_float(id, EV_FL_flFallVelocity); // Store the falling speed of the soon to be "thinking" player.
pev(id, pev_flFallVelocity, falling_speed[id])
}

public damage_player(pwned, pwnzor, Float:damage) // Damages or kills a player. Home made HAX
{
new health = get_user_health(pwned);
if(get_user_team(pwned) == get_user_team(pwnzor)) // If both players are in the same team, reduce the damage.
damage /= 1.4;
new CsArmorType:armortype;
cs_get_user_armor(pwned, armortype);
if(armortype == CS_ARMOR_VESTHELM)
damage *= 0.7;
if(health > damage)
{
new pwned_origin[3];
get_user_origin(pwned, pwned_origin);
message_begin(MSG_BROADCAST, SVC_TEMPENTITY); // BLOOOOOOOOOOOD!!
write_byte(TE_BLOODSPRITE);
write_coord(pwned_origin[0]+8);
write_coord(pwned_origin[1]);
write_coord(pwned_origin[2]+26);
write_short(sprite_bloodspray);
write_short(sprite_blood);
write_byte(248);
write_byte(4);
message_end();

new ent = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "trigger_hurt"));
if(!ent)
return;
new value[16];
float_to_str(damage * 2, value, sizeof value - 1);
set_kvd(0, KV_ClassName, "trigger_hurt");
set_kvd(0, KV_KeyName, "dmg");
set_kvd(0, KV_Value, value);
set_kvd(0, KV_fHandled, 0);
dllfunc(DLLFunc_KeyValue, ent, 0);
num_to_str(DMG_GENERIC, value, sizeof value - 1);
set_kvd(0, KV_ClassName, "trigger_hurt");
set_kvd(0, KV_KeyName, "damagetype");
set_kvd(0, KV_Value, value);
set_kvd(0, KV_fHandled, 0);
dllfunc(DLLFunc_KeyValue, ent, 0);
set_kvd(0, KV_ClassName, "trigger_hurt");
set_kvd(0, KV_KeyName, "origin");
set_kvd(0, KV_Value, "8192 8192 8192");
set_kvd(0, KV_fHandled, 0);
dllfunc(DLLFunc_KeyValue, ent, 0);
dllfunc(DLLFunc_Spawn, ent);
set_pev(ent, pev_classname, "head_splash");
dllfunc(DLLFunc_Touch, ent, pwned);
engfunc(EngFunc_RemoveEntity, ent);
}
else
{
new pwned_origin[3];
get_user_origin(pwned, pwned_origin);
message_begin(MSG_BROADCAST, SVC_TEMPENTITY); // BLOOOOOOOOOOOD!!
write_byte(TE_BLOODSPRITE);
write_coord(pwned_origin[0]+8);
write_coord(pwned_origin[1]);
write_coord(pwned_origin[2]+26);
write_short(sprite_bloodspray);
write_short(sprite_blood);
write_byte(248);
write_byte(12);
message_end();

set_pev(pwned, pev_frags, float(get_user_frags(pwned) + 1));
user_silentkill(pwned);
make_deathmsg(pwnzor, pwned, 1, "his/her feet :)");
if(get_user_team(pwnzor) != get_user_team(pwned)) // If it was a team kill, the pwnzor's money should get reduced instead of increased.
{
set_pev(pwnzor, pev_frags, float(get_user_frags(pwnzor) + 1));
cs_set_user_money(pwnzor, cs_get_user_money(pwnzor) + 300);
}
else
{
set_pev(pwnzor, pev_frags, float(get_user_frags(pwnzor) - 1));
cs_set_user_money(pwnzor, cs_get_user_money(pwnzor) - 300);
}
HeadSplash(pwnzor);

message_begin(MSG_ALL, get_user_msgid("ScoreInfo")); // Fixes the scoreboard.
write_byte(pwnzor);
write_short(get_user_frags(pwnzor));
write_short(cs_get_user_deaths(pwnzor));
write_short(0);
write_short(get_user_team(pwnzor));
message_end();

message_begin(MSG_ALL, get_user_msgid("ScoreInfo"));
write_byte(pwned);
write_short(get_user_frags(pwned));
write_short(cs_get_user_deaths(pwned));
write_short(0);
write_short(get_user_team(pwned));
message_end();
set_pev(pwned, pev_frags, float(get_user_frags(pwned) - 1));
}
}


#31 Kłusownik

    Banned

  • Autor tematu
  • Zbanowany

Reputacja: 6
Nowy

  • Postów:97
  • Imię:zenek
  • Lokalizacja:Polska
Offline

Napisano 25.06.2012 19:48

Na pewno?
nadal nie działa oraz nie ma nic w logach

#32 Gość_21977_*

  • Gość

Reputacja: 0

Offline

Napisano 25.06.2012 19:50

Zamiast pliku dałem kod, bo nie wiem czemu, ale za każdym razem wysyła się stara wersja pliku.

#33 Kłusownik

    Banned

  • Autor tematu
  • Zbanowany

Reputacja: 6
Nowy

  • Postów:97
  • Imię:zenek
  • Lokalizacja:Polska
Offline

Napisano 25.06.2012 20:39

No i działa :D teraz tylko sprawdze czy da rady wbic odznake

Nie działa jeszce tylko wbijanie odznaki z tego właśnie skakania po głowie:
Kod: http://wklej.org/id/779734/

pomoże ktoś?

Trzeba ustawić chyba z jakiej broni ma być zabijane, ale jak to ustawić skoro to nie zabija się z broni?

#34 Gość_21977_*

  • Gość

Reputacja: 0

Offline

Napisano 25.06.2012 20:57

Po tym
kills=headsplashes[id];
dodaj
client_print(0, print_chat, "Headsplashes: %d", kills);
i napisz, jaka wartość jest wyświetlana

#35 Kłusownik

    Banned

  • Autor tematu
  • Zbanowany

Reputacja: 6
Nowy

  • Postów:97
  • Imię:zenek
  • Lokalizacja:Polska
Offline

Napisano 25.06.2012 21:35

Żadna się nie wyświetla... Gdzie niby ona by miała się wyświetlać? Hud czysty, say czysty, logi czyste.

nic sie nie wyświetla...

ale kiedy ma się wyświetlac podczas zabijania czy kiedy? bo podczas zabijania nic nie ma.

#36 Gość_21977_*

  • Gość

Reputacja: 0

Offline

Napisano 25.06.2012 21:38

@up: Przy nowej rundzie na sayu.

BTW. Przed
if ( roundkills[0] )
dodaj polecenie
roundkills[0]+=Rheadsplashes[id];


#37 Kłusownik

    Banned

  • Autor tematu
  • Zbanowany

Reputacja: 6
Nowy

  • Postów:97
  • Imię:zenek
  • Lokalizacja:Polska
Offline

Napisano 25.06.2012 21:47

na koniec rundy:
wyświetla aktualną ilość zabic skokiem na głowę.

#38 Gość_21977_*

  • Gość

Reputacja: 0

Offline

Napisano 25.06.2012 21:58

No to dobrze. I nadal nie dodaje odznaki?

#39 Kłusownik

    Banned

  • Autor tematu
  • Zbanowany

Reputacja: 6
Nowy

  • Postów:97
  • Imię:zenek
  • Lokalizacja:Polska
Offline

Napisano 25.06.2012 22:22

o juz działa :D dzięki wielkie.

#40 Gość_21977_*

  • Gość

Reputacja: 0

Offline

Napisano 25.06.2012 23:16

Wiadomość wygenerowana automatycznie


Ten temat został zamknięty przez moderatora.

Powód: Pomoc udzielona

Jeśli się z tym nie zgadzasz, Dołączona grafika raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.


Z pozdrowieniami,
Zespół AMXX.PL




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

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