HE za zabicie - ktoś napisze / znajdzie?
Karpaj
23.06.2011
Witam. Potrzebował bym plugin, który będzie dawać graczowi za zabicie kogokolwiek granat HE.
Najlepiej jakby oprócz tego była procentowa szansa na to ze dostanie ten HE (np. 33%)
A jeśli ktoś miałby chęci aby się jeszcze pobawić to chciałbym aby po udanych otrzymaniu HE pojawił się komunikat w chacie " [PREFIX] Otrzymales granat HE za zabicie xxx "
Prefix moze byc w cvarze bądź sma (tak samo jak % szans na zdobycie HE)
Jeśli ktoś potrafi napisać chociaż pierwszą część - czyli otrzymanie HE za zabicie kogoś już będę wdzięczny
Najlepiej jakby oprócz tego była procentowa szansa na to ze dostanie ten HE (np. 33%)
A jeśli ktoś miałby chęci aby się jeszcze pobawić to chciałbym aby po udanych otrzymaniu HE pojawił się komunikat w chacie " [PREFIX] Otrzymales granat HE za zabicie xxx "
Prefix moze byc w cvarze bądź sma (tak samo jak % szans na zdobycie HE)
Jeśli ktoś potrafi napisać chociaż pierwszą część - czyli otrzymanie HE za zabicie kogoś już będę wdzięczny
Dwdov 23.06.2011
Czekaj, za chwile będzie sma zapomniałem dodać że 1/3 szansy (1/3 = 33,3 %)
Dodano 23 czerwiec 2011 - 14:58:
Post wyżej zreportowałem do usunięcia (ten mój jak coś), dlatego że nie mogę go edytować.
Tutaj jest sma, przekompiluj sobie
Dodano 23 czerwiec 2011 - 14:59:
Ehh nie ogarniam tego forum
Użytkownik Dawedov edytował ten post 23.06.2011 14:45
Dodano 23 czerwiec 2011 - 14:58:
Post wyżej zreportowałem do usunięcia (ten mój jak coś), dlatego że nie mogę go edytować.
Tutaj jest sma, przekompiluj sobie
#include <amxmodx>
#include <fakemeta>
#include <ColorChat>
#define PLUGIN "Dawedov"
#define AUTHOR "He za kill"
#define VERSION "1.0"
new gSzPrefix[64];
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
register_event("DeathMsg", "DeathEventHook", "ade")
register_cvar("amx_hegren_prefix","[TAG]")
register_cvar("amx_hegren_chance","3")
get_cvar_string("amx_hegren_prefix",gSzPrefix,63);
}
public DeathEventHook()
{
new attacker = read_data(1)
new victim = read_data(2)
if(get_user_team(attacker) == get_user_team(victim))
return;
if(random(get_cvar_num("amx_hegren_chance")) == 1)
{
fm_give_item(attacker,"weapon_hegrenade");
ColorChat(attacker,GREEN,"%s^x01 Dostales granat HE za zabicie wroga.",gSzPrefix)
}
}
stock fm_give_item(index, const item[])
{
if (!equal(item, "weapon_", 7) && !equal(item, "ammo_", 5) && !equal(item, "item_", 5) && !equal(item, "tf_weapon_", 10))
return 0;
new ent = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, item))
if (!pev_valid(ent))
return 0;
new Float:origin[3];
pev(index, pev_origin, origin);
set_pev(ent, pev_origin, origin);
set_pev(ent, pev_spawnflags, pev(ent, pev_spawnflags) | SF_NORESPAWN);
dllfunc(DLLFunc_Spawn, ent);
new save = pev(ent, pev_solid);
dllfunc(DLLFunc_Touch, ent, index);
if (pev(ent, pev_solid) != save)
return ent;
engfunc(EngFunc_RemoveEntity, ent);
return -1;
}
Dodano 23 czerwiec 2011 - 14:59:
Ehh nie ogarniam tego forum
Użytkownik Dawedov edytował ten post 23.06.2011 14:45
Karpaj
23.06.2011
#define PLUGIN "Dawedov"
#define AUTHOR "He za kill"
Chyba odwrotnie
ColorChat(attacker,GREEN,"%s^x01 Dostales granat HE za zabicie wroga.",gSzPrefix)
Co oznacza to
%s^x01
I wielkie dzięki za plugin
#define AUTHOR "He za kill"
Chyba odwrotnie
ColorChat(attacker,GREEN,"%s^x01 Dostales granat HE za zabicie wroga.",gSzPrefix)
Co oznacza to
%s^x01
I wielkie dzięki za plugin
Dwdov 23.06.2011
%s <- "wkleja" do tego ciągu to co jest podane dalej w dodatkowych parametrach
^x01 <- zmienia kolor na podstawowy (standardowo pomarańczowy)
No tam pomyliłem, ale to nie ważne ; d
A jeszcze co do cvara amx_hegren_chance, jego wartość to x w takim razie szansa otrzymania HE po zabiciu wynosi 1/x. Normalnie ustawione na 1/3 czyli 33% tak jak chciałeś ; d
Użytkownik Dawedov edytował ten post 23.06.2011 17:59
^x01 <- zmienia kolor na podstawowy (standardowo pomarańczowy)
No tam pomyliłem, ale to nie ważne ; d
A jeszcze co do cvara amx_hegren_chance, jego wartość to x w takim razie szansa otrzymania HE po zabiciu wynosi 1/x. Normalnie ustawione na 1/3 czyli 33% tak jak chciałeś ; d
Użytkownik Dawedov edytował ten post 23.06.2011 17:59
Karpaj
23.06.2011
To jedyny cvar w tym? Bo nigdzie ich nie wypisałeś, a nie jestem na tyle ogarnięty z pawnem aby w pluginie znaleźć cvary
A oprócz tego, czy nie powinno być tak?
[%s]^x01
Bo to rozumiem że będzie ten prefix
A oprócz tego, czy nie powinno być tak?
[%s]^x01
Bo to rozumiem że będzie ten prefix
Dwdov 23.06.2011
Co za różnica? Wpisujesz w konsoli:
amx_cvar amx_hegren_prefix "[PREFIX]"
i masz z nawiasami.
Są 2 cvary
amx_hegren_prefix - ustawia tag/prefix jak kto woli
amx_hegren_chance - szansa 1/x dostania granatu, można zrobić też na procenty (ale to w sma trzeba zmienić), ale po co się z tym bawić (chociaż kod będzie nie dużo dłuższy ; d)
amx_cvar amx_hegren_prefix "[PREFIX]"
i masz z nawiasami.
Są 2 cvary
amx_hegren_prefix - ustawia tag/prefix jak kto woli
amx_hegren_chance - szansa 1/x dostania granatu, można zrobić też na procenty (ale to w sma trzeba zmienić), ale po co się z tym bawić (chociaż kod będzie nie dużo dłuższy ; d)
Karpaj
23.06.2011
Niestety plugin nie działa, zarówno nie pokazuje się info o tym czy sie dostało, jak i nie dostaje się go... Testowałem z kolegą, zabiliśmy się z 30razy i nic, kompilowałem zarówno z opcją
register_cvar("amx_hegren_chance","3")
jak i
register_cvar("amx_hegren_chance","1")
Czemu to nie chce działać?
register_cvar("amx_hegren_chance","3")
jak i
register_cvar("amx_hegren_chance","1")
Czemu to nie chce działać?
Dwdov 23.06.2011
Nie wiem czemu to może nie działać, wszystko na moje oko jest dobrze, trochę zmieniłem może teraz będzie dobrze.
Użytkownik Dawedov edytował ten post 23.06.2011 19:42
#include <amxmodx>
#include <fakemeta>
#include <ColorChat>
#define PLUGIN "He za kill"
#define AUTHOR "Dawedov"
#define VERSION "1.0"
new gCvarHeGrenChance;
new gSzPrefix[64];
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
register_event("DeathMsg", "DeathEventHook", "ade")
register_cvar("amx_hegren_prefix","[TAG]")
gCvarHeGrenChance = register_cvar("amx_hegren_chance","3")
get_cvar_string("amx_hegren_prefix",gSzPrefix,63);
}
public DeathEventHook()
{
new attacker = read_data(1)
new victim = read_data(2)
if(get_user_team(attacker) == get_user_team(victim)
|| !attacker
|| !is_user_alive(attacker))
return;
new temp = get_pcvar_num(gCvarHeGrenChance);
if(random(temp) == 1)
{
fm_give_item(attacker,"weapon_hegrenade");
ColorChat(attacker,GREEN,"%s^x01 Dostales granat HE za zabicie wroga.",gSzPrefix)
}
}
stock fm_give_item(index, const item[])
{
if (!equal(item, "weapon_", 7) && !equal(item, "ammo_", 5) && !equal(item, "item_", 5) && !equal(item, "tf_weapon_", 10))
return 0;
new ent = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, item))
if (!pev_valid(ent))
return 0;
new Float:origin[3];
pev(index, pev_origin, origin);
set_pev(ent, pev_origin, origin);
set_pev(ent, pev_spawnflags, pev(ent, pev_spawnflags) | SF_NORESPAWN);
dllfunc(DLLFunc_Spawn, ent);
new save = pev(ent, pev_solid);
dllfunc(DLLFunc_Touch, ent, index);
if (pev(ent, pev_solid) != save)
return ent;
engfunc(EngFunc_RemoveEntity, ent);
return -1;
}
Użytkownik Dawedov edytował ten post 23.06.2011 19:42
Karpaj
23.06.2011
Tutaj niestety też nie działa... ABy było 100% szans wystarczy
("amx_hegren_chance","3")zmienić na
("amx_hegren_chance","1")? I czy plugin sprawdza czy ktoś już posiada granat HE?
Dwdov 23.06.2011
Po co ma sprawdzać czy ktoś już posiada HE? Więcej niż 1 i tak nie można mieć bez specjalnej edycji, a czemu plugin nie działa - nie mam pojęcia lol... nie wiem niech ktoś inny to sprawdzi bo ja tu błędu nie widzę ;x
mierzwi 23.06.2011
/* Plugin generated by AMXX-Studio */
#include <amxmodx>
#include <fakemeta_util>
#define PLUGIN "New Plug-In"
#define VERSION "1.0"
#define AUTHOR "author"
new const g_szPrefix[] = "[PREFIX]";
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
register_event("DeathMsg", "eventPlayerDeath", "a");
// Add your code here...
}
public eventPlayerDeath()
{
new iKiller = read_data(1);
new iVictim = read_data(2);
if(get_user_team(iKiller) != get_user_team(iVictim))
{
if(random_num(1, 3) == 1)
{
fm_give_item(iKiller, "weapon_hegrenade");
client_print(iKiller, print_chat, "%s Dostales He Grenade za zabicie wroga!", g_szPrefix);
}
}
return PLUGIN_CONTINUE;
}
Użytkownik funfel edytował ten post 23.06.2011 22:08
Karpaj
24.06.2011
Bardzo fajnie, jednak trochę go testując, granat otrzymywały tylko osoby z adminem na serverze i to zawsze, a nie 33% szans, osoby bez admina nie dostawały go ani razu... Ocb?
Użytkownik Karpaj edytował ten post 24.06.2011 11:55
Użytkownik Karpaj edytował ten post 24.06.2011 11:55
Dwdov 24.06.2011
No to możliwe że masz coś z amxx'em no bo obydwa pluginy są dobrze napisane ; o