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.
|
Guest Message by DevFuse
10 odpowiedzi w tym temacie
#1
Napisano 18.06.2012 14:16
Witam.
Chciałbym was prosić aby ktoś przerobił mi aby rakieta nie zadawała obrażeń przez cod_inflict_damage tylko przez ExecuteHamB. Gdy zadaje obrażenia normalnie to nie zapisują się do rankingu, słyszałem że przez ExecuteHamB będzie zliczane do rankingu. Czy da się w ogóle. to przerobić? z góry dzięki.
Chciałbym was prosić aby ktoś przerobił mi aby rakieta nie zadawała obrażeń przez cod_inflict_damage tylko przez ExecuteHamB. Gdy zadaje obrażenia normalnie to nie zapisują się do rankingu, słyszałem że przez ExecuteHamB będzie zliczane do rankingu. Czy da się w ogóle. to przerobić? z góry dzięki.
#3 Gość_21977_*
Napisano 19.06.2012 22:09
Da się, jak najbardziej.
Podaj tylko kod SMA.
Podaj tylko kod SMA.
#4
Napisano 19.06.2012 22:18
#include <amxmodx>
#include <amxmisc>
#include <codmod>
#include <engine>
#include <hamsandwich>
#include <fun>
#include <ColorChat>
new const nazwa[] = "Kamikadze";
new const opis[] = "Posiada ak47 i jedna rakiete";
new const bronie = (1<<CSW_HEGRENADE)|(1<<CSW_SMOKEGRENADE)|(1<<CSW_FLASHBANG)|(1<<CSW_DEAGLE)|(1<<CSW_AK47);
new const zdrowie = 50;
new const kondycja = 10;
new const inteligencja = 0;
new const wytrzymalosc = 50;
new sprite_blast;
new ilosc_rakiet_gracza[33];
new poprzednia_rakieta_gracza[33];
public plugin_init()
{
register_plugin(nazwa, "1.0", "amxx.pl");
cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc);
register_touch("rocket", "*" , "DotykRakiety");
RegisterHam(Ham_Spawn, "player", "fwSpawn_Rakiety", 1);
}
public plugin_precache()
{
sprite_blast = precache_model("sprites/dexplo.spr");
precache_model("models/rpgrocket.mdl");
}
public client_disconnect(id)
{
new entRakiety = find_ent_by_class(0, "rocket");
while(entRakiety > 0)
{
if(entity_get_edict(entRakiety, EV_ENT_owner) == id)
remove_entity(entRakiety);
entRakiety = find_ent_by_class(entRakiety, "rocket");
}
}
public cod_class_enabled(id)
{
ColorChat(id, YELLOW, "^x04[XXXX]^x01 Aktualnie grasz klasa %s, odwiedz nasze forum XXXXX", nazwa)
ilosc_rakiet_gracza[id] = 1;
give_item(id, "weapon_hegrenade");
give_item(id, "weapon_flashbang");
give_item(id, "weapon_flashbang");
give_item(id, "weapon_smokegrenade");
}
public cod_class_skill_used(id)
{
if (!ilosc_rakiet_gracza[id])
{
client_print(id, print_center, "Wykorzystales juz wszystkie rakiety!");
}
else
{
if(poprzednia_rakieta_gracza[id] + 2.0 > get_gametime())
{
client_print(id, print_center, "Rakiety mozesz uzywac co 2 sekundy!");
}
else
{
if (is_user_alive(id))
{
poprzednia_rakieta_gracza[id] = floatround(get_gametime());
ilosc_rakiet_gracza[id]--;
new Float: Origin[3], Float: vAngle[3], Float: Velocity[3];
entity_get_vector(id, EV_VEC_v_angle, vAngle);
entity_get_vector(id, EV_VEC_origin , Origin);
new Ent = create_entity("info_target");
entity_set_string(Ent, EV_SZ_classname, "rocket");
entity_set_model(Ent, "models/rpgrocket.mdl");
vAngle[0] *= -1.0;
entity_set_origin(Ent, Origin);
entity_set_vector(Ent, EV_VEC_angles, vAngle);
entity_set_int(Ent, EV_INT_effects, 2);
entity_set_int(Ent, EV_INT_solid, SOLID_BBOX);
entity_set_int(Ent, EV_INT_movetype, MOVETYPE_FLY);
entity_set_edict(Ent, EV_ENT_owner, id);
VelocityByAim(id, 1000 , Velocity);
entity_set_vector(Ent, EV_VEC_velocity ,Velocity);
}
}
}
}
public fwSpawn_Rakiety(id)
{
if(is_user_alive(id))
ilosc_rakiet_gracza[id] = 1;
}
public DotykRakiety(ent)
{
if (!is_valid_ent(ent))
return;
new attacker = entity_get_edict(ent, EV_ENT_owner);
new Float:fOrigin[3];
entity_get_vector(ent, EV_VEC_origin, fOrigin);
new iOrigin[3];
for(new i=0;i<3;i++)
iOrigin[i] = floatround(fOrigin[i]);
message_begin(MSG_BROADCAST,SVC_TEMPENTITY, iOrigin);
write_byte(TE_EXPLOSION);
write_coord(iOrigin[0]);
write_coord(iOrigin[1]);
write_coord(iOrigin[2]);
write_short(sprite_blast);
write_byte(32);
write_byte(20);
write_byte(0);
message_end();
new entlist[33];
new numfound = find_sphere_class(ent, "player", 190.0, entlist, 32);
for (new i=0; i < numfound; i++)
{
new pid = entlist[i];
if (!is_user_alive(pid) || get_user_team(attacker) == get_user_team(pid))
continue;
cod_inflict_damage(attacker, pid, 50.0, 0.5, ent, (1<<24));
}
remove_entity(ent);
}
PS. Jeśli możesz to wytłumacz mi jak to przerobić
Użytkownik Raen edytował ten post 19.06.2012 22:18
#5 Gość_21977_*
Napisano 19.06.2012 22:41
Bardzo rzeczowo opisał to R3X.
My zamiast ExecuteHam, użyjemy ExecuteHamB.
Jedyne, co zmieniam, to zamiast linijki
Untitled.sma 4,88 KB 105 Ilość pobrań
Untitled.amxx
My zamiast ExecuteHam, użyjemy ExecuteHamB.
Jedyne, co zmieniam, to zamiast linijki
cod_inflict_damage(attacker, pid, 50.0, 0.5, ent, (1<<24));daję
ExecuteHamB(Ham_TakeDamage, pid, ent, attacker, 50.0, (1<<24));
Untitled.sma 4,88 KB 105 Ilość pobrań
Untitled.amxx
#7 Gość_21977_*
Napisano 19.06.2012 22:47
Ja się ogólnie na CodModzie nie znam, ale w funkcji ' class='bbc_url' title=''>http://amxx.pl/dokumentacja/f332/cod_inflict_damage'] widzę jeszcze parametr Float:czynnik_inteligencji, więc będzie drobna poprawka do wgrania.
edit.
Będzie trzeba dodać do obrażeń (50.0) połowę cod_get_user_intelligence(id) tylko nie wiem jeszcze, z jakimi parametrami (http://amxx.pl/dokum...er-intelligence).
edit.
Po zapoznaniu się z fragmentem dokumentacji codmoda, już wiem, że należy użyć trzech ostatnich parametrów domyślnie, tj. jako jedynek.
Poprawka
W związku z tym, ostatecznie zamienimy linijkę
nie na
lecz na
Poprawione SMA o uwzględnienie punktów inteligencji:
Untitled.sma 4,92 KB 95 Ilość pobrań
Untitled.amxx
edit.
Będzie trzeba dodać do obrażeń (50.0) połowę cod_get_user_intelligence(id) tylko nie wiem jeszcze, z jakimi parametrami (http://amxx.pl/dokum...er-intelligence).
edit.
Po zapoznaniu się z fragmentem dokumentacji codmoda, już wiem, że należy użyć trzech ostatnich parametrów domyślnie, tj. jako jedynek.
Poprawka
W związku z tym, ostatecznie zamienimy linijkę
cod_inflict_damage(attacker, pid, 50.0, 0.5, ent, (1<<24));
nie na
ExecuteHamB(Ham_TakeDamage, pid, ent, attacker, 50.0, (1<<24));
lecz na
ExecuteHamB(Ham_TakeDamage, pid, ent, attacker, 50.0+cod_get_user_intelligence(attacker)/2, (1<<24));aby uwzględnić posiadane punkty inteligencji gracza atakującego.
Poprawione SMA o uwzględnienie punktów inteligencji:
Untitled.sma 4,92 KB 95 Ilość pobrań
Untitled.amxx
Użytkownik benio101 edytował ten post 19.06.2012 23:08
uwzględnienie punktów inteligencji atakującego
#9 Gość_21977_*
Napisano 20.06.2012 13:01
tak
Czwarty parametr był równy 0.5, więc można zarówno pomnożyć inteligencję przez pół, jak i podzielić ją przez 2.
Tak więc mamy 50 pkt obrażeń podstawowych zawsze plus kolejny punkt obrażeń za każde 2 punkty inteligencji.
cod_inflict_damage(attacker, pid, 50.0, 0.5, ent, (1<<24));
Czwarty parametr był równy 0.5, więc można zarówno pomnożyć inteligencję przez pół, jak i podzielić ją przez 2.
Tak więc mamy 50 pkt obrażeń podstawowych zawsze plus kolejny punkt obrażeń za każde 2 punkty inteligencji.
#11 Gość_21977_*
Napisano 20.06.2012 14:03
Wiadomość wygenerowana automatycznie
Ten temat został zamknięty przez moderatora.
Powód: Pomoc udzielona
Jeśli się z tym nie zgadzasz, raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.
Z pozdrowieniami,
Zespół AMXX.PL
Ten temat został zamknięty przez moderatora.
Powód: Pomoc udzielona
Jeśli się z tym nie zgadzasz, raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.
Z pozdrowieniami,
Zespół AMXX.PL
Również z jednym lub większą ilością słów kluczowych: cod nowy
CoD Nowy
perk zwiększający wytrzymałość pekuNapisany przez Rafii, 05.03.2024 cod nowy |
|
||||
|
CoD Nowy
Modele KlasyNapisany przez Puni07, 11.02.2024 cod nowy |
|
|||
CoD Nowy
Problem z dywizjąNapisany przez Puni07, 08.02.2024 cod nowy |
|
||||
CoD Nowy
Misjedodac exp Napisany przez Anonimowy09, 08.01.2024 cod nowy |
|
||||
CoD Nowy
Broń z cso do klasy postaciNapisany przez Voltia, 12.02.2023 cod nowy |
|
Użytkownicy przeglądający ten temat: 0
0 użytkowników, 0 gości, 0 anonimowych