[ROZWIĄZANE] 1/x na zabicie z generatora k...
Krzysztof97
20.12.2012
Mam problem.
Mianowicie, gdy robię klasę w generatorze klas i jest w niej funkcja np. 1/1 z awp, to dodaje się to automatycznie do wszystkich broni(nawet jeśli nie zaznaczę np. usp w generatorze to usp też ma 1/1).
Co tutaj bym musiał zedytować, żeby tylko do scouta 1/4(inny plugin) było aktywne?(jestem zielony w pawnie:D)
#include <amxmodx> #include <amxmisc> #include <codmod> #include <hamsandwich> #include <cstrike> new const nazwa[] = "test"; new const opis[] = "xxx"; new const bronie = (1<<CSW_SCOUT); new const zdrowie = 0; new const kondycja = 0; new const inteligencja = 0; new const wytrzymalosc = 0; new ma_klase[33]; public plugin_init() { register_plugin(nazwa, "1.0", "amxx.pl"); cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc); RegisterHam(Ham_TakeDamage, "player", "fwTakeDamage_JedenZ"); } public cod_class_enabled(id) { if(!(get_user_flags(id) & ADMIN_LEVEL_H)) { client_print(id, print_chat, "[test] Nie masz uprawnien, aby uzywac tej klasy.") return COD_STOP; } ma_klase[id] = true; return COD_CONTINUE; } public cod_class_disabled(id) { ma_klase[id] = false; } public fwTakeDamage_JedenZ(this, idInf, idAtt, Float:fDmg, dmgBits){ if(!is_user_alive(idAtt) || !ma_klase[idAtt] || !(dmgBits & (1<<1) ) || random_num(1, 5) != 1 ) return HAM_IGNORED; cs_set_user_armor(this, 0, CS_ARMOR_NONE); SetHamParamFloat(4, float(get_user_health(this) + 1)); return HAM_HANDLED; }
Pozdrawiam
Edited by Krzysztof97, 20.12.2012 21:48.
MAGNET
20.12.2012
Na pewno znajdziesz

Pozdrawiam
Krzysztof97
20.12.2012

Pozdrawiam
Piotreq183
21.12.2012
#include <hamsandwich>
pod tym dajesz:
#define DMG_BULLET (1<<1)
W Public plugin_init dajesz
RegisterHam(Ham_TakeDamage, "player", "TakeDamage_JedenZ");
A na końcu dajesz:
public TakeDamage(this, idinflictor, idattacker, Float:damage, damagebits)
{
if(!is_user_connected(idattacker))
return HAM_IGNORED;
if(!ma_klase[idattacker])
return HAM_IGNORED;
if(!(damagebits & DMG_BULLET))
return HAM_IGNORED;
if(get_user_weapon(idattacker) == CSW_XXX && random_num(1,X) == 1)
cod_inflict_damage(idattacker, this, float(get_user_health(this))-damage+1.0, 0.0, idinflictor, damagebits);
return HAM_IGNORED;
}
Zamiast CSW_XXX dajesz swoją broń, a w miejscu random_num(1,X) zamiast X wpisujesz jaka ma być szansa na zabicie
Krzysztof97
22.12.2012
#include <amxmodx> #include <amxmisc> #include <codmod> #include <hamsandwich> #include <cstrike> #include <fun> new const nazwa[] = "Rasiu [PREMIUM]"; new const opis[] = "Posiada m4 + 1/10 z każdej broni"; new const bronie = (1<<CSW_HEGRENADE)|(1<<CSW_M4A1)|(1<<CSW_FLASHBANG)|(1<<CSW_DEAGLE); new const zdrowie = 30; new const kondycja = 10; new const inteligencja = 0; new const wytrzymalosc = 20; new ma_klase[33]; public plugin_init() { register_plugin(nazwa, "1.0", "amxx.pl"); cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc); RegisterHam(Ham_TakeDamage, "player", "fwTakeDamage_JedenZ"); } public cod_class_enabled(id) { if(!(get_user_flags(id) & ADMIN_LEVEL_ B)) { client_print(id, print_chat, "[Rasiu [PREMIUM]] Nie masz uprawnien, aby uzywac tej klasy.") return COD_STOP; } give_item(id, "weapon_hegrenade"); give_item(id, "weapon_flashbang"); ma_klase[id] = true; return COD_CONTINUE; } public cod_class_disabled(id) { ma_klase[id] = false; } public fwTakeDamage_JedenZ(this, idInf, idAtt, Float:fDmg, dmgBits){ if(!is_user_alive(idAtt) || !ma_klase[idAtt] || !(dmgBits & (1<<1) ) || random_num(1, 10) != 1 ) return HAM_IGNORED; cs_set_user_armor(this, 0, CS_ARMOR_NONE); SetHamParamFloat(4, float(get_user_health(this) + 1)); return HAM_HANDLED; }
Takie errory w kompilatorze wyskakują:
Welcome to the AMX Mod X 1.8.1-300 Compiler. Copyright (c) 1997-2006 ITB CompuPhase, AMX Mod X Team codclass_PomperPREMIUM.sma(20) : warning 217: loose indentation codclass_PomperPREMIUM.sma(22) : warning 217: loose indentation codclass_PomperPREMIUM.sma(41) : error 017: undefined symbol "ma_klase" codclass_PomperPREMIUM.sma(41) : warning 215: expression has no effect codclass_PomperPREMIUM.sma(41) : error 001: expected token: ";", but found "]" codclass_PomperPREMIUM.sma(41) : error 029: invalid expression, assumed zero codclass_PomperPREMIUM.sma(41) : fatal error 107: too many error messages on one line Compilation aborted. 4 Errors.Pozdro
Krzysztof97
22.12.2012
LuKoIl
22.12.2012
#define DMG_BULLET (1<<1)
pod includami, oraz
public TakeDamage(this, idinflictor, idattacker, Float:damage, damagebits)
{
if(!is_user_connected(idattacker))
return HAM_IGNORED;
if(!ma_klase[idattacker])
return HAM_IGNORED;
if(!(damagebits & DMG_BULLET))
return HAM_IGNORED;
if(get_user_weapon(idattacker) == CSW_XXX && random_num(1,X) == 1)
cod_inflict_damage(idattacker, this, float(get_user_health(this))-damage+1.0, 0.0, idinflictor, damagebits);
return HAM_IGNORED;
}
na końcu.
czyli wszystko powinno wyglądac tak:
#include <amxmodx>
#include <amxmisc>
#include <codmod>
#include <hamsandwich>
#include <cstrike>
#include <fun>
#define DMG_BULLET (1<<1)
new const nazwa[] = "Rasiu [PREMIUM]";
new const opis[] = "Posiada m4 + 1/10 z każdej broni";
new const bronie = (1<<CSW_HEGRENADE)|(1<<CSW_M4A1)|(1<<CSW_FLASHBANG)|(1<<CSW_DEAGLE);
new const zdrowie = 30;
new const kondycja = 10;
new const inteligencja = 0;
new const wytrzymalosc = 20;
new ma_klase[33];
public plugin_init()
{
register_plugin(nazwa, "1.0", "amxx.pl");
cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc);
RegisterHam(Ham_TakeDamage, "player", "fwTakeDamage_JedenZ");
}
public cod_class_enabled(id)
{
if(!(get_user_flags(id) & ADMIN_LEVEL_)
{
client_print(id, print_chat, "[Rasiu [PREMIUM]] Nie masz uprawnien, aby uzywac tej klasy.")
return COD_STOP;
}
give_item(id, "weapon_hegrenade");
give_item(id, "weapon_flashbang");
ma_klase[id] = true;
return COD_CONTINUE;
}
public cod_class_disabled(id)
{
ma_klase[id] = false;
}
public TakeDamage(this, idinflictor, idattacker, Float:damage, damagebits)
{
if(!is_user_connected(idattacker))
return HAM_IGNORED;
if(!ma_klase[idattacker])
return HAM_IGNORED;
if(!(damagebits & DMG_BULLET))
return HAM_IGNORED;
if(get_user_weapon(idattacker) == CSW_XXX && random_num(1,X) == 1)
cod_inflict_damage(idattacker, this, float(get_user_health(this))-damage+1.0, 0.0, idinflictor, damagebits);
return HAM_IGNORED;
}
Edited by LuKoIl, 22.12.2012 22:15.
Krzysztof97
23.12.2012
#include <amxmodx> #include <amxmisc> #include <codmod> #include <hamsandwich> #include <cstrike> #include <fun> #define DMG_BULLET (1<<1) new const nazwa[] = "Pomper [PREMIUM]"; new const opis[] = "Posiada dużo hp +1/7 z pompy"; new const bronie = (1<<CSW_XM1014)|(1<<CSW_SMOKEGRENADE); new const zdrowie = 50; new const kondycja = 10; new const inteligencja = 0; new const wytrzymalosc = 20; new ma_klase[33]; public plugin_init() { register_plugin(nazwa, "1.0", "amxx.pl"); cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc); RegisterHam(Ham_TakeDamage, "player", "fwTakeDamage_JedenZ"); } public cod_class_enabled(id) { if(!(get_user_flags(id) & ADMIN_LEVEL_C)) { client_print(id, print_chat, "[Pomper [PREMIUM]] Nie masz uprawnien, aby uzywac tej klasy.") return COD_STOP; } give_item(id, "weapon_smokegrenade"); ma_klase[id] = true; return COD_CONTINUE; } public cod_class_disabled(id) { ma_klase[id] = false; } public TakeDamage(this, idinflictor, idattacker, Float:damage, damagebits) { if(!is_user_connected(idattacker)) return HAM_IGNORED; if(!ma_klase[idattacker]) return HAM_IGNORED; if(!(damagebits & DMG_BULLET)) return HAM_IGNORED; if(get_user_weapon(idattacker) == CSW_XM1014 && random_num(1,2) == 1) cod_inflict_damage(idattacker, this, float(get_user_health(this))-damage+1.0, 0.0, idinflictor, damagebits); return HAM_IGNORED; }i nie działa(specjalnie 1/2 do testów, bo na 2 magazynki by musiało wejść);/
Pozdro
Krzysztof97
23.12.2012
#include <amxmodx> #include <amxmisc> #include <codmod> #include <hamsandwich> #include <cstrike> #include <fun> #define DMG_BULLET (1<<1) new const nazwa[] = "Pomper [PREMIUM]"; new const opis[] = "Posiada dużo hp +1/7 z pompy"; new const bronie = (1<<CSW_XM1014)|(1<<CSW_SMOKEGRENADE); new const zdrowie = 50; new const kondycja = 10; new const inteligencja = 0; new const wytrzymalosc = 20; new ma_klase[33]; public plugin_init() { register_plugin(nazwa, "1.0", "amxx.pl"); cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc); RegisterHam(Ham_TakeDamage, "player", "fwTakeDamage_JedenZ"); } public cod_class_enabled(id) { if(!(get_user_flags(id) & ADMIN_LEVEL_C)) { client_print(id, print_chat, "[Pomper [PREMIUM]] Nie masz uprawnien, aby uzywac tej klasy.") return COD_STOP; } give_item(id, "weapon_smokegrenade"); ma_klase[id] = true; return COD_CONTINUE; } public cod_class_disabled(id) { ma_klase[id] = false; } fwTakeDamage_JedenZ(this, idinflictor, idattacker, Float:damage, damagebits) { if(!is_user_connected(idattacker)) return HAM_IGNORED; if(!ma_klase[idattacker]) return HAM_IGNORED; if(!(damagebits & DMG_BULLET)) return HAM_IGNORED; if(get_user_weapon(idattacker) == CSW_XM1014 && random_num(1,2) == 1) cod_inflict_damage(idattacker, this, float(get_user_health(this))-damage+1.0, 0.0, idinflictor, damagebits); return HAM_IGNORED; }i nie działa;/
Amaroq
24.12.2012
#include <amxmodx>
#include <codmod>
#include <hamsandwich>
#include <fun>
new const nazwa[] = "Pomper [PREMIUM]";
new const opis[] = "Posiada dużo hp +1/7 z pompy";
new const bronie = (1<<CSW_XM1014)|(1<<CSW_SMOKEGRENADE);
new const zdrowie = 50;
new const kondycja = 10;
new const inteligencja = 0;
new const wytrzymalosc = 20;
new bool:ma_klase[33];
public plugin_init()
{
register_plugin(nazwa, "1.0", "amxx.pl");
cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc);
RegisterHam(Ham_TakeDamage, "player", "TakeDamage");
}
public cod_class_enabled(id)
{
if(!(get_user_flags(id) & ADMIN_LEVEL_C))
{
client_print(id, print_chat, "[Pomper [PREMIUM]] Nie masz uprawnien, aby uzywac tej klasy.")
return COD_STOP;
}
give_item(id, "weapon_smokegrenade");
ma_klase[id] = true;
return COD_CONTINUE;
}
public cod_class_disabled(id)
ma_klase[id] = false;
public TakeDamage(this, idattacker, idinflictor, Float:damage, damagebits)
{
if(!is_user_connected(idattacker))
return HAM_IGNORED;
if(!ma_klase[idattacker])
return HAM_IGNORED;
if(damagebits & (1<<1))
{
if(get_user_weapon(idattacker) == CSW_XM1014 && random_num(1,7) == 1)
cod_inflict_damage(idattacker, this, float(get_user_health(this))-damage+1.0, 0.0, idinflictor, damagebits);
}
return HAM_IGNORED;
}
Kawon
10.01.2013
Ten temat został zamknięty przez moderatora.
Powód: Pomoc udzielona
Jeśli się z tym nie zgadzasz,

Z pozdrowieniami,
Zespół AMXX.PL