Próbowałem jakoś zrobić plugin Pojedynek na Deagle pomiędzy dwoma terrorystami. Coś wyszło wzorując się na pluginie Pojedynku na Deagle w JailBreaku ![]()
Jestem amatorem , próbuję coś robić aby się uczyć ale nie wychodzi mi to trochę , potrzebuję pomocy z tym najlepiej od was.
Po wpisaniu /pojedynek wyświetla się menu z graczami z TT , ale po wciśnięciu na gracza nic się nie dzieje.
Nie wiem gdzie jest błąd , za cienki chyba w tym jestem ale proszę o podanie przyczyny nie wyświetlającego się menu ![]()
#include <amxmodx>
#include <amxmisc>
#include <fun>
#include <cstrike>
#include <fakemeta>
#include <hamsandwich>
#include <colorchat>
#define PLUGIN "Deagle"
#define VERSION "1.0"
#define AUTHOR "Ripposta"
new bronie_pojedynek, pojedynek[2];
new HamHook:fHamKill, HamHook:fHamDamage, HamHook:fHamTrace, HamHook:fHamWeapon[31];
new id_deagle;
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
register_clcmd("say /pojedynek", "MenuPojedynek")
}
public OnRemoveData(day)
{
if(pojedynek[0] || pojedynek[1])
{
pojedynek[0] = 0;
pojedynek[1] = 0;
RegisterHams(false);
}
bronie_pojedynek = 0;
}
public OnLastPrisonerTakeWish(id, zyczenie)
{
if(zyczenie == id_deagle)
{
pojedynek[0] = id;
bronie_pojedynek = CSW_DEAGLE;
MenuPojedynek(id);
}
return PLUGIN_CONTINUE;
}
public MenuPojedynek(id)
{
new menu = menu_create("Pojedynek Z:", "Handle_Pojedynek");
for(new i=1; i<=32; i++)
{
if(!is_user_alive(i) || !is_user_connected(i) || cs_get_user_team(i) != CS_TEAM_T)
continue;
new name[64];
get_user_name(i, name, 63);
menu_additem(menu, name);
}
menu_setprop(menu, MPROP_EXITNAME, "\dWyjdz");
menu_setprop(menu, MPROP_BACKNAME, "Poprzednia strona");
menu_setprop(menu, MPROP_NEXTNAME, "Nastepna strona");
menu_display(id, menu);
}
public Handle_Pojedynek(id, menu, item)
{
if(pojedynek[0] != id || pojedynek[1] || !is_user_alive(id))
return;
if(item == MENU_EXIT)
{
menu_display(id, menu);
return;
}
new acces, callback, data[3], szName2[64];
menu_item_getinfo(menu, item, acces, data, 2, szName2, 63, callback);
pojedynek[1] = get_user_index(szName2);
if(!is_user_alive(pojedynek[1]) || !is_user_connected(pojedynek[1]))
{
pojedynek[1] = 0;
MenuPojedynek(id);
return;
}
new szName[32];
get_user_name(id, szName, 31);
ColorChat(0, TEAM_COLOR, "^x04[Pojedynek]^x03 %s^x01 walczy z^x03 %s", szName, szName2);
RegisterHams(true);
set_user_rendering(id, kRenderFxGlowShell, 255, 0, 0, kRenderNormal, 10);
set_user_rendering(pojedynek[1], kRenderFxGlowShell, 0, 0, 255, kRenderNormal, 10);
set_user_health(id, 100);
set_user_health(pojedynek[1], 100);
strip_user_weapons(id);
strip_user_weapons(pojedynek[1]);
new weapon_name[24];
get_weaponname(bronie_pojedynek, weapon_name, 23);
new ent = give_item(id, weapon_name);
new ent2 = give_item(pojedynek[1], weapon_name);
cs_set_weapon_ammo(ent, 1);
cs_set_weapon_ammo(ent2, 1);
}
public TakeDamage(id, ent, attacker, Float:damage, damagebits)
return vTracerAttack(id, attacker);
public TraceAttack(id, attacker, Float:damage, Float:direction[3], tracehandle, damagebits)
return vTracerAttack(id, attacker);
vTracerAttack(id, attacker)
{
if(!pojedynek[0] || !is_user_connected(id) || !is_user_connected(attacker) || id == attacker)
return HAM_IGNORED;
if(pojedynek[0] == id && pojedynek[1] != attacker)
return HAM_SUPERCEDE;
if(pojedynek[0] == attacker && pojedynek[1] != id)
return HAM_SUPERCEDE;
return HAM_IGNORED;
}
public WeaponAttack(ent)
{
new id = get_pdata_cbase(ent, 41, 4);
if(pojedynek[0] == id || pojedynek[1] == id)
{
cs_set_user_bpammo(id, bronie_pojedynek, 1);
}
}
public RegisterHams(bool:wartosc)
{
if(wartosc)
{
if(fHamKill)
EnableHamForward(fHamKill);
else
fHamKill = RegisterHam(Ham_Killed, "player", "SmiercGraczaPost", 1);
if(fHamDamage)
EnableHamForward(fHamDamage);
else
fHamDamage = RegisterHam(Ham_TakeDamage, "player", "TakeDamage");
if(fHamTrace)
EnableHamForward(fHamTrace);
else
fHamTrace = RegisterHam(Ham_TraceAttack, "player", "TraceAttack");
if(fHamWeapon[bronie_pojedynek])
EnableHamForward(fHamWeapon[bronie_pojedynek]);
else
{
new WeaponName[24];
get_weaponname(bronie_pojedynek, WeaponName, 23);
fHamWeapon[bronie_pojedynek] = RegisterHam(Ham_Weapon_PrimaryAttack, WeaponName, "WeaponAttack", 1);
}
}
else
{
if(fHamKill)
DisableHamForward(fHamKill);
if(fHamDamage)
DisableHamForward(fHamDamage);
if(fHamTrace)
DisableHamForward(fHamTrace);
if(fHamWeapon[bronie_pojedynek])
DisableHamForward(fHamWeapon[bronie_pojedynek]);
}
}
Użytkownik Ripposta edytował ten post 03.11.2014 20:22


Dodatki SourceMod












