Operacje na obrażeniach
MarWit
21.02.2013
O tym to ja wiem, chodzi mi po prostu o ustawienie "inflictora" bez względu na to, kto jest atakującym, co zresztą pisałem, że chodzi mi o coś takiego jak można ustawić przy "Ham_TakeDamage", czyli jeszcze dokładniej, w "Ham_Killed" nie da się ustawić gracza jako atakującego, a jakiś byt jako to coś, co zadaje obrażenia."inflictorem" jest broń aktualnie trzymana przez gracza, lub jeżeli byt nie jest graczem to "inflictorem" jest właśnie byt atakujący.ale tutaj nie da się ustawić inflictora
Możesz spróbować przed użyciem forwarda Ham'a, ustawić playerowi inflictora:
set_pev( iThis, pev_dmg_inflictor, iInflictor );
ExecuteHamB( Ham_Killed, iThis, iAttacker, 0 );
Marf
29.11.2015
Sory chłopaki i dziewczyny że odkupuje, ale chciałbym spytać o modyfikacje tych operacji.
Da radę zrobić tak, żeby była możliwość zabicia fleszem kogoś? Jeśli gracz trafi w tekstury gracza z przeciwnej drużyny fleszem bądź smokiem (byle nie granatem odłamkowym HE), to ta osoba ginie. To pomysł na event swiateczny, tyle ze zamiast flesza bedzie to model sniezki.
Edited by Marf, 29.11.2015 16:00.
Marf
29.11.2015
Z racji że nie za bardzo jeszcze siedzę w PAWN'ie to proszę i liczę na waszą pomoc.
Ogólnie cały zamysł pluginu:
Kod wygląda następująco:
http://amxx.pl/topic...łaja-w-ct-i-tt/
Będzie to wgrywane na hns ganiany mod, więc trzeba to troszkę przerobić - mianowicie:
plugin losuje tylko osobę z terrorystów - czyli osobę która ucieka przed CT.
wylosowana osoba otrzymuje model mikołaja, jej tekstury świecą się na wybrany kolor, by łatwiej było wiedzieć kto został mikołajem (nie wiem jak to zrobić), zwiększone HP, zwiększony armor oraz możliwość zabicia 2 fleszami (śnieżkami)
Jeśli mikołaj przeżyje rundę, zostanie wylosowana mu nagroda spośród puli, która powinna wyglądać następująco:
- VIP 3 dni
- VIP 5 dni
- rózga (równoznaczne ze śmiercią w następnej rundzie) - wartałoby dodać jakiś komunikat dla gościa żeby wiedział dlaczego zginął.
- VIP jeden dzień
Po przeżytej rundzie powinien się wyświetlić komunikat na sayu dla wszystkich: "Mikołaj <gracz xxx> przeżył rundę i w nagrodę otrzymuje <los z puli> "
Jeśli mikołaj zginie z ręki CT - osoba która go zabiła również otrzymuje coś z puli nagród a na sayu komunikat powinien wyglądać następująco: "Gracz xxx pozbył się mikołaja i otrzymuje <los z puli> "
Co rundę losowany jest nowy mikołaj i na sayu powinien się wyświetlać komunikat kto nim został.
#include <amxmodx> #include <amxmisc> #include <fun> #include <cstrike> #include <hamsandwich> #include <ColorChat> new bool:mikolaj[33] public plugin_init(){ register_plugin("Losowanie Mikolaja", "1.0", "Sniper Elite"); RegisterHam(Ham_Spawn, "player", "Odrodzenie", 1); register_logevent("PoczatekRundy", 2, "1=Round_Start"); register_event("DeathMsg", "Death", "ade"); register_cvar("santa_hp", "50"); register_cvar("santa_armor", "200"); register_cvar("santa_frags", "2"); register_cvar("santa_money", "500"); } public plugin_precache(){ precache_model("models/player/santatt/santatt.mdl") precache_model("models/player/santact/santact.mdl") } public Odrodzenie(id){ mikolaj[id] = false cs_reset_user_model(id) return PLUGIN_CONTINUE; } public PoczatekRundy(){ if(get_playersnum() >=4){ los_mikolaj_ct() los_mikolaj_tt() } } public Death() { new id = read_data(2); new attacker = read_data(1); if(!is_user_alive(attacker) || !is_user_connected(attacker)) return PLUGIN_CONTINUE; if(get_playersnum() >= 4){ if(mikolaj[id]){ set_user_frags (attacker, get_user_frags(attacker) + get_cvar_num("santa_frags")) cs_set_user_money (attacker,cs_get_user_money(attacker) + get_cvar_num("santa_money")) } } return PLUGIN_CONTINUE; } public los_mikolaj_ct(){ new players[32], num get_players(players, num); new rand = random_num(1,num) if(cs_get_user_team(rand) == CS_TEAM_CT && is_user_alive(rand)){ ColorChat(rand, BLUE, "Jestes Mikolajem CT"); cs_set_user_model (rand, "santact"); set_user_health (rand, get_user_health(rand) + get_cvar_num("santa_hp")) set_user_armor(rand, get_cvar_num("santa_armor")) mikolaj[rand] = true } else los_mikolaj_ct() return PLUGIN_CONTINUE; } public los_mikolaj_tt(){ new players[32], num get_players(players, num); new rand = random_num(1,num) if(cs_get_user_team(rand) == CS_TEAM_T && is_user_alive(rand)){ ColorChat(rand, RED, "Jestes Mikolajem TT"); cs_set_user_model (rand, "santatt"); set_user_health (rand, get_user_health(rand) + get_cvar_num("santa_hp")) set_user_armor(rand, get_cvar_num("santa_armor")) mikolaj[rand] = true } else los_mikolaj_tt() return PLUGIN_CONTINUE; }
Plugin nie wiem czy jest do zrobienia w sposób jaki opisałem. Liczę na waszą pomoc. Będą lecieć plusiki, tylko tak mogę się wam odwdzięczyć.
Ogólnie dużo tutaj jest komunikatów, można się pogubić. Jeśli uważacie, że lepiej byłoby część dać na HUD message, to zróbcie jak uważacie. Chce żeby fajnie to wyglądało:P
Edited by Marf, 29.11.2015 22:30.
twojtyp
16.12.2015
Pomysł pluginu www mi się podoba. Jednak z powodu braku doświadczenia, nie pomogę ci