Jak zczytać lvl zabitego i osoby która zabiła
SoPelQ 10.05.2013
Hey. Otóż w tym pluginie: http://amxx.pl/topic...ajace-z-graczy/ chciałem zmienić losowy exp na (lvl gracza zabijającego + lvl gracza zabitego) jako dodatkowy exp z paczki.
I teraz nasuwa się pytanko jak ja mam to zrobić, bo mi nie wychodziło;/
Użytkownik SoPelQ edytował ten post 10.05.2013 18:51
GT Team 10.05.2013
#include <amxmodx> #include <amxmisc> #include <colorchat> #include <cstrike> #include <engine> #include <fakemeta> #include <fun> #include <codmod> #define PLUGIN "Bonusowe Paczki" #define VERSION "1.0" #define AUTHOR "radim edytowal ricO" new const modelitem[] = "models/cod_paczka.mdl"; new const prefix[] = "^04[BONUS]^01" public plugin_init() { register_plugin(PLUGIN, AUTHOR, VERSION) register_forward(FM_Touch, "fwd_touch") register_event("DeathMsg", "DeathMsg", "a") register_logevent("PoczatekRundy", 2, "1=Round_Start"); } public plugin_precache() { precache_model(modelitem); } public PoczatekRundy() kill_all_entity("paczka") public DeathMsg() { new kid = read_data(1) new vid = read_data(2) if( kid == vid ) return PLUGIN_CONTINUE; if(is_user_connected(kid) || is_user_connected(vid)) create_itm(vid, 0) return PLUGIN_CONTINUE; } public UzyjPaczki(id, ent) { if( !is_user_connected(id) || !is_user_alive(id) || !pev_valid(ent)) return PLUGIN_HANDLED; switch(random_num(1, 5)) { case 1: { new hp = get_user_health(id); new losowehp = random_num(-5, -20); set_user_health(id, hp+losowehp) ColorChat(id, GREY, "^x04%s ^x01Znalazles trucizne. Tracisz ^x03%i^x01 HP!", prefix, losowehp) } case 2: { new hp = get_user_health(id); new losowehp = random_num(5, 40); set_user_health(id, hp+losowehp) ColorChat(id, GREY, "^x04%s ^x01Znalazles apteczke. Dostales ^x03%i^x01 HP!", prefix, losowehp) } case 3: { new kasa = cs_get_user_money(id); new losowakasa = random_num(20, 5000); cs_set_user_money(id, kasa+losowakasa) ColorChat(id, GREY, "^x04%s ^x01Znalazles sakiewke ze zlotem. Dostales ^x03%i^x01 kasy!", prefix, losowakasa) } case 4: { ColorChat(id, GREY, "^x04%s ^x01Posiadasz juz perk!", prefix) if(cod_get_user_perk(id)) return PLUGIN_HANDLED cod_set_user_perk(id, -1, -1, 1); } case 5: { new explvl = (cod_get_user_level(id)+cod_get_user_level(pev(ent, pev_iuser2))) cod_set_user_xp(id, cod_get_user_xp(id)+explvl) ColorChat(id, GREY, "^x04%s ^x01Znalazles ^x03%i^x01 Expa!", prefix, explvl) } } return PLUGIN_HANDLED; } public create_itm(id, id_item){ new Float:origins[3] pev(id,pev_origin,origins); new entit=create_entity("info_target") origins[0]+=50.0 origins[2]-=32.0 set_pev(entit,pev_origin,origins) entity_set_model(entit,modelitem) set_pev(entit,pev_classname,"paczka"); dllfunc(DLLFunc_Spawn, entit); set_pev(entit,pev_solid,SOLID_BBOX); set_pev(entit,pev_movetype,MOVETYPE_FLY); engfunc(EngFunc_SetSize,entit,{-1.1, -1.1, -1.1},{1.1, 1.1, 1.1}); engfunc(EngFunc_DropToFloor,entit); set_pev(entit, pev_iuser1, id_item) set_pev(entit, pev_iuser2, id) } public fwd_touch(ent,id) { if(!is_user_alive(id)) return FMRES_IGNORED; if(!pev_valid(ent)) return FMRES_IGNORED; static classname[32]; pev(ent,pev_classname,classname,31); if(!equali(classname,"paczka")) return FMRES_IGNORED; if(pev(id,pev_button)) { { UzyjPaczki(id, ent) engfunc(EngFunc_RemoveEntity,ent); } } return FMRES_IGNORED; } public kill_all_entity(classname[]) { new iEnt = find_ent_by_class(-1, classname) while(iEnt > 0) { remove_entity(iEnt) iEnt = find_ent_by_class(iEnt, classname) } } /* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE *{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1045\\ f0\\ fs16 \n\\ par } */Lecz nie sprawdzalem, gdyz na swoim laptopie nie posiadam cs'a
GT Team 10.05.2013
SoPelQ 10.05.2013
Wszystko ładnie działa, jeżeli chodzi o ten plug.
Ale mam jeszcze jedno pytanko. Jest taki perk w standardowym codzie jak maksymalne skupienie +20 expa za zabicie. Zmieniłem to bo chciałem uzyskać dodatkowy exp za fraga +(mój lvl * 10) niestety nie działa to wogóle.
/* Plugin generated by AMXX-Studio */ #include <amxmodx> #include <codmod> #include <fakemeta> new const perk_name[] = "Maksymalne skupienie"; new const perk_desc[] = "Za kazdego fraga dostajesz +(twoj lvl * 300) dodatkowego expa za fraga."; new bool:ma_perk[33]; public plugin_init() { register_plugin(perk_name, "1.0", "QTM_Peyote"); cod_register_perk(perk_name, perk_desc); register_event("DeathMsg", "Death", "ade"); } public cod_perk_enabled(id) ma_perk[id] = true; public cod_perk_disabled(id) ma_perk[id] = false; public Death(id) { new attacker = read_data(1); if(!is_user_connected(attacker)) return PLUGIN_CONTINUE; if(!ma_perk[attacker]) return PLUGIN_CONTINUE; if(get_user_team(id) != get_user_team(attacker)) cod_set_user_xp(id, cod_get_user_xp(id)+cod_get_user_level*10); return PLUGIN_CONTINUE; }
Jako że edita nie mogę dać. Pomyłka w kodzie napisałem przykład na szybko.
Poprawka niżej tego co napisałem i nie działa, jak chciałem.
/* Plugin generated by AMXX-Studio */ #include <amxmodx> #include <codmod> #include <fakemeta> new const perk_name[] = "Maksymalne skupienie"; new const perk_desc[] = "Za kazdego fraga dostajesz +(twoj lvl * 300) dodatkowego expa za fraga."; new bool:ma_perk[33]; public plugin_init() { register_plugin(perk_name, "1.0", "QTM_Peyote"); cod_register_perk(perk_name, perk_desc); register_event("DeathMsg", "Death", "ade"); } public cod_perk_enabled(id) ma_perk[id] = true; public cod_perk_disabled(id) ma_perk[id] = false; public Death(id) { new attacker = read_data(1); if(!is_user_connected(attacker)) return PLUGIN_CONTINUE; if(!ma_perk[attacker]) return PLUGIN_CONTINUE; if(get_user_team(id) != get_user_team(attacker)) cod_set_user_xp(id, cod_get_user_xp(id)+cod_get_user_level(id)*10); return PLUGIN_CONTINUE; }
SAL
10.05.2013
nie powinno zamiast tego
cod_set_user_xp(id, cod_get_user_xp(id)+cod_get_user_level(id)*10);
byc cos takiego
new ixp = cod_get_user_level(id)*10
cod_set_user_xp(id, cod_get_user_xp(id) + ixp)
moze zadziala
SoPelQ 10.05.2013
@up: Sprawdzałem to już wcześniej.
Poza tym kod to jedno i to samo inaczej zapisane.
Użytkownik SoPelQ edytował ten post 10.05.2013 21:06
GT Team 11.05.2013
register_event("DeathMsg", "Death", "ade");na
register_event("DeathMsg", "Death", "a");i
public Death(id) { new attacker = read_data(1); if(!is_user_connected(attacker)) return PLUGIN_CONTINUE; if(!ma_perk[attacker]) return PLUGIN_CONTINUE; if(get_user_team(id) != get_user_team(attacker)) cod_set_user_xp(id, cod_get_user_xp(id)+cod_get_user_level(id)*10); return PLUGIN_CONTINUE; }na
public Death() { new attacker = read_data(1); new id = read_data(2); if(!is_user_connected(attacker) || !is_user_connected(id)) return PLUGIN_CONTINUE; if(!ma_perk[attacker]) return PLUGIN_CONTINUE; if(get_user_team(id) != get_user_team(attacker)) cod_set_user_xp(attacker, cod_get_user_xp(attacker)+(cod_get_user_level(attacker)*10)); return PLUGIN_CONTINUE; }
GT Team 11.05.2013
Engi
11.05.2013
Nie powinno być
if(!is_user_connected(attacker) & !is_user_connected(id))
??
GT Team 11.05.2013
SzalonyKrejzol
11.05.2013
takie pytanko,dzialaja ci dobrze perki z tych paczek czy ci podmienia nawet jak masz?
Engi
11.05.2013
Nie korzystam z tego, po prostu zerknąłem na kod i spytałem bo zawsze robiłem inaczej i działa.
Kawon
24.05.2013
Ten temat został zamknięty przez moderatora.
Powód: Autor tematu zbanowany
Jeśli się z tym nie zgadzasz, raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.
Z pozdrowieniami,
Zespół AMXX.PL