1/x przez V sekund
Ziome3eg
23.11.2017
znalazłem 2 błędy: 1. mniej ważny po uzyciu trzeba zmienić broń na inną i zpowrotem aby model się wczytał, a 2 ważnejszy można tego używać cały czas (co minie 5 sek można to znów włączyć)
I jeszcze pytanko Zmieniając
if((button & IN_ATTACK2) && get_user_weapon(attacker) == CSW_KNIFE && inflictor == attacker)
Na
if((button & IN_ATTACK) && get_user_weapon(attacker) == CSW_KNIFE && inflictor == attacker)
Bd działało na LPM ?
chcesz aby było 1/1 z lewego/prawego czy z obu ?
rzeznik9871
23.11.2017
#include <amxmodx> #include <hamsandwich> #include <fakemeta> #define model "models/v_cod_class_knife.mdl" forward cod_class_enabled(id, klasa) forward cod_class_disabled(id, klasa) forward cod_class_skill_used(id) native cod_register_class(const nazwa[], const opis[], bronie, punkty_zdrowia, punkty_kondycji, punkty_inteligencji, punkty_wytrzymalosci) new bool:g_player_has_class[33],Float:g_player_item_time[33],bool:g_player_item_used[33],g_maxplayers public plugin_precache() precache_model(model) public plugin_init() { register_plugin("cod class nazwa klasy", "1.0", "fresh") cod_register_class("Nazwa","Opis",0,0,0,0,0) RegisterHam(Ham_TakeDamage,"player","bacon_player_takedamage_pre",false) RegisterHam(Ham_Killed,"player","bacon_player_killed_post",true) register_event("CurWeapon","event_curweapon","be","1=1","2=29") register_logevent("logevent_roundend", 2, "1=Round_End") g_maxplayers = get_maxplayers() } public cod_class_enabled(id) g_player_has_class[id] = true public cod_class_disabled(id) g_player_has_class[id] = false public cod_class_skill_used(id) { if(g_player_item_used[id]) { engclient_print(id,engprint_center,"Umiejetnosc klasy mozesz uzyc tylko raz na runde") return; } set_task(5.0,"task_remove_knife_model",id) g_player_item_time[id] = get_gametime() + 5.0 g_player_item_used[id] = true if(get_user_weapon(id) == CSW_KNIFE) set_pev(id,pev_viewmodel2,"models/v_knife.mdl") } public bacon_player_takedamage_pre(id,inflictor,attacker,Float:damage,damagetype) { if(!is_user_alive(attacker) || !g_player_has_class[attacker] || get_gametime() > g_player_item_time[attacker]) return HAM_IGNORED static button button = pev(attacker,pev_button) if((button & IN_ATTACK2) && get_user_weapon(attacker) == CSW_KNIFE && inflictor == attacker) { static Float:health pev(id,pev_health,health) SetHamParamFloat(4,health*10.0) return HAM_HANDLED } return HAM_IGNORED } public bacon_player_killed_post(id,attacker,shouldgib) if(task_exists(id)) remove_task(id) public event_curweapon(id) { if(!is_user_alive(id) || !g_player_has_class[id] || get_gametime() > g_player_item_time[id]) return; set_pev(id,pev_viewmodel2,model) } public logevent_roundend() { static id; for(id = 1;id <= g_maxplayers;id++) g_player_item_used[id] = false } public task_remove_knife_model(id) { if(!g_player_has_class[id]) return; static weapon; weapon = get_user_weapon(id) if(weapon != CSW_KNIFE) return; static viewmodel[64] pev(id,pev_viewmodel2,viewmodel,63) if(equal(viewmodel,model)) { weapon = get_pdata_cbase(id, 370) if(pev_valid(weapon)) ExecuteHam(Ham_Item_Deploy,weapon) } }
tylko z ppm -> (button & IN_ATTACK2)
tylko z lpm -> (button & IN_ATTACK)
a jak z obu to poprostu wyjeb to z warunku
Edit: jeszcze bylo zle poprawione
Edited by rzeznik9871, 23.11.2017 18:54.
ChrisN
23.11.2017
znalazłem 2 błędy: 1. mniej ważny po uzyciu trzeba zmienić broń na inną i zpowrotem aby model się wczytał, a 2 ważnejszy można tego używać cały czas (co minie 5 sek można to znów włączyć)
I jeszcze pytanko Zmieniając
if((button & IN_ATTACK2) && get_user_weapon(attacker) == CSW_KNIFE && inflictor == attacker)
Na
if((button & IN_ATTACK) && get_user_weapon(attacker) == CSW_KNIFE && inflictor == attacker)
Bd działało na LPM ?
Co do tego IN_ATTACK2 a IN_ATTACK to tak, pierwszy to LPM drugi to PPM
Tutaj masz poprawiony z blokadą
#include <amxmodx> #include <hamsandwich> #include <fakemeta> #include <colorchat> #define model "models/v_cod_class_knife.mdl" forward cod_class_enabled(id, klasa) forward cod_class_disabled(id, klasa) forward cod_class_skill_used(id) native cod_register_class(const nazwa[], const opis[], bronie, punkty_zdrowia, punkty_kondycji, punkty_inteligencji, punkty_wytrzymalosci) new bool:g_player_has_class[33],Float:g_player_item_time[33] new bool:wykorzystal[33]; public plugin_precache() precache_model(model) public plugin_init() { register_plugin("cod class nazwa klasy", "1.0", "fresh") cod_register_class("Nazwa","Opis",0,0,0,0,0) RegisterHam(Ham_TakeDamage,"player","bacon_player_takedamage_pre",false) RegisterHam(Ham_Killed,"player","bacon_player_killed_post",true) register_event("ResetHUD", "ResetHUD", "abe"); register_event("CurWeapon","event_curweapon","be","1=1","2=29") } public cod_class_enabled(id) { g_player_has_class[id] = true; ResetHUD(id); } public cod_class_disabled(id) g_player_has_class[id] = false public cod_class_skill_used(id) { if(!is_user_alive(id)) return; if(wykorzystal[id]) { ColorChat(id, RED, "Wykorzystales juz swoja umiejetnosc."); return; } wykorzystal[id] = true; set_task(5.0, "task_remove_knife_model", id) g_player_item_time[id] = get_gametime() + 5.0 static weapon; weapon = get_pdata_cbase(id, 370) if(pev_valid(weapon)) ExecuteHam(Ham_Item_Deploy,weapon) } public bacon_player_takedamage_pre(id,inflictor,attacker,Float:damage,damagetype) { if(!is_user_alive(attacker) || !g_player_has_class[attacker] || get_gametime() > g_player_item_time[attacker]) return HAM_IGNORED static button button = pev(attacker,pev_button) if((button & IN_ATTACK2) && get_user_weapon(attacker) == CSW_KNIFE && inflictor == attacker) { static Float:health pev(id,pev_health,health) SetHamParamFloat(4,health*10.0) return HAM_HANDLED } return HAM_IGNORED } public bacon_player_killed_post(id,attacker,shouldgib) if(task_exists(id)) remove_task(id) public event_curweapon(id) { if(!is_user_alive(id) || !g_player_has_class[id] || get_gametime() > g_player_item_time[id]) return; set_pev(id,pev_viewmodel2,model) } public task_remove_knife_model(id) { if(!g_player_has_class[id]) return; static weapon; weapon = get_user_weapon(id) if(weapon != CSW_KNIFE) return; static viewmodel[64] pev(id,pev_viewmodel2,viewmodel,63) if(equal(viewmodel,model)) { weapon = get_pdata_cbase(id, 370) if(pev_valid(weapon)) ExecuteHam(Ham_Item_Deploy,weapon) } } public ResetHUD(id) wykorzystal[id] = false;
SP3D!
23.11.2017
chrisN twój kod daje do klasy scouta i he nwm czm. 1 Problem jeszcze isnieje, ale olać go. rzeznik twój kod nie daje broni ale troche nie działa(można użyc umiejetnosci jeszcze raz po zabiciu wszystkich wrogów i niemożna włączyć w następnej rundzie)
rzeznik9871
23.11.2017
podmien
register_logevent("logevent_roundend", 2, "1=Round_End")
na
register_logevent("logevent_roundend", 2, "1=Round_Start")
a bron rejestrujesz tutaj w trzecim parametrze
cod_register_class("Nazwa","Opis",0,0,0,0,0)
np.
cod_register_class("Nazwa","Opis", (1<<CSW_AK47 | 1<<CSW_USP) ,0,0,0,0)
i pisz jaki jest ten jeden blad to sie go naprawi niestety ale tak to jest jak daje sie suchy kod bez sprawdzenia no ale tak jak mowie nie mam coda
Ziome3eg
24.11.2017
podmien
register_logevent("logevent_roundend", 2, "1=Round_End")na
register_logevent("logevent_roundend", 2, "1=Round_Start")a bron rejestrujesz tutaj w trzecim parametrze
cod_register_class("Nazwa","Opis",0,0,0,0,0)np.
cod_register_class("Nazwa","Opis", (1<<CSW_AK47 | 1<<CSW_USP) ,0,0,0,0)i pisz jaki jest ten jeden blad to sie go naprawi niestety ale tak to jest jak daje sie suchy kod bez sprawdzenia no ale tak jak mowie nie mam coda
albo tutaj ma prawie całą gotową klasę, przerobiłem typowo pod codmoda, ma #include codmod i typowe ustawienie
#include <amxmodx>#include <codmod>#include <hamsandwich>#include <fakemeta>#include <colorchat>#define model "models/v_cod_class_knife.mdl"new const nazwa[] = "Nazwa";new const opis[] = "Posiada 1/1 z kosy oraz unikalny model na 5 sekund.";new const bronie = (1<<CSW_FAMAS);new const zdrowie = 0;new const kondycja = 0;new const inteligencja = 0;new const wytrzymalosc = 0;new bool:ma_klase[33],Float:g_player_item_time[33],bool:g_player_item_used[33],g_maxplayerspublic plugin_precache()precache_model(model)public plugin_init() {register_plugin("cod class nazwa klasy", "1.0", "fresh")cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc);RegisterHam(Ham_TakeDamage,"player","bacon_player_takedamage_pre",false)RegisterHam(Ham_Killed,"player","bacon_player_killed_post",true)register_event("CurWeapon","event_curweapon","be","1=1","2=29")register_logevent("logevent_roundend", 2, "1=Round_Start")g_maxplayers = get_maxplayers()}public cod_class_enabled(id){ma_klase[id] = true;}public cod_class_disabled(id){ma_klase[id] = false;}public cod_class_skill_used(id){if(g_player_item_used[id]){ColorChat(id, RED, "Umiejetnosc klasy mozesz uzyc tylko raz na runde.");return;}set_task(5.0,"task_remove_knife_model",id)g_player_item_time[id] = get_gametime() + 5.0g_player_item_used[id] = trueif(get_user_weapon(id) == CSW_KNIFE)set_pev(id,pev_viewmodel2,"models/v_knife.mdl")}public bacon_player_takedamage_pre(id,inflictor,attacker,Float:damage,damagetype){if(!is_user_alive(attacker) || !ma_klase[attacker] || get_gametime() > g_player_item_time[attacker])return HAM_IGNOREDstatic buttonbutton = pev(attacker,pev_button)if((button & IN_ATTACK2) && get_user_weapon(attacker) == CSW_KNIFE && inflictor == attacker){static Float:healthpev(id,pev_health,health)SetHamParamFloat(4,health*10.0)return HAM_HANDLED}return HAM_IGNORED}public bacon_player_killed_post(id,attacker,shouldgib)if(task_exists(id))remove_task(id)public event_curweapon(id){if(!is_user_alive(id) || !ma_klase[id] || get_gametime() > g_player_item_time[id])return;set_pev(id,pev_viewmodel2,model)}public logevent_roundend(){static id;for(id = 1;id <= g_maxplayers;id++)g_player_item_used[id] = false}public task_remove_knife_model(id){if(!ma_klase[id])return;static weapon;weapon = get_user_weapon(id)if(weapon != CSW_KNIFE)return;static viewmodel[64]pev(id,pev_viewmodel2,viewmodel,63)if(equal(viewmodel,model)){weapon = get_pdata_cbase(id, 370)if(pev_valid(weapon))ExecuteHam(Ham_Item_Deploy,weapon)}}
Edited by Ziome3eg, 24.11.2017 00:10.
SP3D!
24.11.2017
To ten błąd
1. mniej ważny po uzyciu trzeba zmienić broń na inną i zpowrotem aby model się wczytał
Reszta ok.
rzeznik9871
24.11.2017
To ten błąd
1. mniej ważny po uzyciu trzeba zmienić broń na inną i zpowrotem aby model się wczytał
Reszta ok.
tak to jest jak sie wieczorem nie mysli trzymaj teraz powinno byc wszystko git
public cod_class_skill_used(id) { if(g_player_item_used[id]) { engclient_print(id,engprint_center,"Umiejetnosc klasy mozesz uzyc tylko raz na runde") return; } set_task(5.0,"task_remove_knife_model",id) g_player_item_time[id] = get_gametime() + 5.0 g_player_item_used[id] = true if(get_user_weapon(id) == CSW_KNIFE) set_pev(id,pev_viewmodel2,model) }
ChrisN
24.11.2017
albo tutaj ma prawie całą gotową klasę, przerobiłem typowo pod codmoda, ma #include codmod i typowe ustawieniepodmien
register_logevent("logevent_roundend", 2, "1=Round_End")naregister_logevent("logevent_roundend", 2, "1=Round_Start")a bron rejestrujesz tutaj w trzecim parametrzecod_register_class("Nazwa","Opis",0,0,0,0,0)np.cod_register_class("Nazwa","Opis", (1<<CSW_AK47 | 1<<CSW_USP) ,0,0,0,0)i pisz jaki jest ten jeden blad to sie go naprawi niestety ale tak to jest jak daje sie suchy kod bez sprawdzenia no ale tak jak mowie nie mam coda
#include <amxmodx>
#include <codmod>
#include <hamsandwich>
#include <fakemeta>
#include <colorchat>
#define model "models/v_cod_class_knife.mdl"
new const nazwa[] = "Nazwa";
new const opis[] = "Posiada 1/1 z kosy oraz unikalny model na 5 sekund.";
new const bronie = (1<<CSW_FAMAS);
new const zdrowie = 0;
new const kondycja = 0;
new const inteligencja = 0;
new const wytrzymalosc = 0;
new bool:ma_klase[33],Float:g_player_item_time[33],bool:g_player_item_used[33],g_maxplayers
public plugin_precache()
precache_model(model)
public plugin_init() {
register_plugin("cod class nazwa klasy", "1.0", "fresh")
cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc);
RegisterHam(Ham_TakeDamage,"player","bacon_player_takedamage_pre",false)
RegisterHam(Ham_Killed,"player","bacon_player_killed_post",true)
register_event("CurWeapon","event_curweapon","be","1=1","2=29")
register_logevent("logevent_roundend", 2, "1=Round_Start")
g_maxplayers = get_maxplayers()
}
public cod_class_enabled(id)
{
ma_klase[id] = true;
}
public cod_class_disabled(id)
{
ma_klase[id] = false;
}
public cod_class_skill_used(id)
{
if(g_player_item_used[id])
{
ColorChat(id, RED, "Umiejetnosc klasy mozesz uzyc tylko raz na runde.");
return;
}
set_task(5.0,"task_remove_knife_model",id)
g_player_item_time[id] = get_gametime() + 5.0
g_player_item_used[id] = true
if(get_user_weapon(id) == CSW_KNIFE)
set_pev(id,pev_viewmodel2,"models/v_knife.mdl")
}
public bacon_player_takedamage_pre(id,inflictor,attacker,Float:damage,damagetype)
{
if(!is_user_alive(attacker) || !ma_klase[attacker] || get_gametime() > g_player_item_time[attacker])
return HAM_IGNORED
static button
button = pev(attacker,pev_button)
if((button & IN_ATTACK2) && get_user_weapon(attacker) == CSW_KNIFE && inflictor == attacker)
{
static Float:health
pev(id,pev_health,health)
SetHamParamFloat(4,health*10.0)
return HAM_HANDLED
}
return HAM_IGNORED
}
public bacon_player_killed_post(id,attacker,shouldgib)
if(task_exists(id))
remove_task(id)
public event_curweapon(id)
{
if(!is_user_alive(id) || !ma_klase[id] || get_gametime() > g_player_item_time[id])
return;
set_pev(id,pev_viewmodel2,model)
}
public logevent_roundend()
{
static id;
for(id = 1;id <= g_maxplayers;id++)
g_player_item_used[id] = false
}
public task_remove_knife_model(id)
{
if(!ma_klase[id])
return;
static weapon;
weapon = get_user_weapon(id)
if(weapon != CSW_KNIFE)
return;
static viewmodel[64]
pev(id,pev_viewmodel2,viewmodel,63)
if(equal(viewmodel,model))
{
weapon = get_pdata_cbase(id, 370)
if(pev_valid(weapon))
ExecuteHam(Ham_Item_Deploy,weapon)
}
}
XDdddd bez komentarza
@SP3D1 ja tam w tej klasie nic nie zmieniałem tylko dodałem blokade.
SP3D!
24.11.2017
SP3D Był tak głupi że zmienił
cod_register_class("Nazwa","Opis",0,0,0,0,0)
na
cod_register_class("Nazwa","Opis",CSW_KNIFE,0,0,0,0)
Nwm po co to zrobiłem ale zrobiłem
Przez to dawało scouta i he
Ok działa wszystko. + poleciały, ale mam do was jeszcze jedno zadanie mianowicie dodajcie aby tez przez 5 sek działalo to co jest nizej.
Przy okazji dobrze rozumię to niżej np. wartość 20 kiedy bd mieli otrzymac 30 dmg -20 dmg (wartość) otrzymamy 10 dmg ?
Attached Files
Edited by SP3D!, 24.11.2017 20:52.