Naprawa zadawanych obrażeń po śmierci
Duoz
28.01.2014
Witam,
Chciałbym prosić was, abyście poprawili dla mnie klasę zamachowiec. Powinna ona zabijać 80 dmg + int. Niestety mając 0 inta bije każdego na strzała.
/* Plugin generated by AMXX-Studio */ #include <amxmodx> #include <codmod> #include <colorchat> #include <engine> #include <hamsandwich> #define DMG_BULLET (1<<1) new bool:ma_klase[33]; new const nazwa[] = "Zamachowiec"; new const opis[] = "Wybuchasz po smierci zadajac 80(+int) obrazen"; new const bronie = 1<<CSW_AUG | 1<<CSW_USP | 1<<CSW_HEGRENADE | 1<<CSW_FLASHBANG | 1<<CSW_SMOKEGRENADE; new const zdrowie = 0; new const kondycja = 0; new const inteligencja = 0; new const wytrzymalosc = 0; new sprite_blast, sprite_white; public plugin_init() { register_plugin(nazwa, "1.0", "QTM_Peyote"); cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc); register_event("DeathMsg", "Death", "ade"); } public plugin_precache() { sprite_white = precache_model("sprites/white.spr") ; sprite_blast = precache_model("sprites/dexplo.spr"); } public cod_class_enabled(id) { if(!(get_user_flags(id) & ADMIN_LEVEL_G)) { ColorChat(id, RED, "[General] Nie masz uprawnien, aby korzystac z tej klasy."); return COD_STOP; } ColorChat(id, GREEN, "Klasa stworzona przez pluginymody.webd.pl"); ma_klase[id] = true; return COD_CONTINUE; } public cod_class_disabled(id) ma_klase[id] = false; public Death() { new id = read_data(2); if(ma_klase[id]) Eksploduj(id); } public Eksploduj(id) { new Float:fOrigin[3], iOrigin[3]; entity_get_vector( id, EV_VEC_origin, fOrigin); iOrigin[0] = floatround(fOrigin[0]); iOrigin[1] = floatround(fOrigin[1]); iOrigin[2] = floatround(fOrigin[2]); message_begin(MSG_BROADCAST,SVC_TEMPENTITY, iOrigin); write_byte(TE_EXPLOSION); write_coord(iOrigin[0]); write_coord(iOrigin[1]); write_coord(iOrigin[2]); write_short(sprite_blast); write_byte(32); write_byte(20); write_byte(0); message_end(); message_begin( MSG_BROADCAST, SVC_TEMPENTITY, iOrigin ); write_byte( TE_BEAMCYLINDER ); write_coord( iOrigin[0] ); write_coord( iOrigin[1] ); write_coord( iOrigin[2] ); write_coord( iOrigin[0] ); write_coord( iOrigin[1] + 300 ); write_coord( iOrigin[2] + 300 ); write_short( sprite_white ); write_byte( 0 ); // startframe write_byte( 0 ); // framerate write_byte( 10 ); // life write_byte( 10 ); // width write_byte( 255 ); // noise write_byte( 255 ); // r, g, b write_byte( 100 );// r, g, b write_byte( 100 ); // r, g, b write_byte( 128 ); // brightness write_byte( 8 ); // speed message_end(); new entlist[33]; new numfound = find_sphere_class(id, "player", 300.0 , entlist, 32); for (new i=0; i < numfound; i++) { new pid = entlist[i]; if (!is_user_alive(pid) || get_user_team(id) == get_user_team(pid)) continue; cod_inflict_damage(id, pid, 80.0, 0.7); } return PLUGIN_CONTINUE; }
Danio7
30.01.2014
cod_inflict_damage(id, pid, 80.0, 0.7);
Zamiast 0,7 wpisz mniejszą wartość np. 0,2. chociaż raczej to chyba też nie zadziała...
Użytkownik Danio7 edytował ten post 30.01.2014 16:28
0-0-0
02.02.2014
/* Plugin generated by AMXX-Studio */ #include <amxmodx> #include <codmod> #include <colorchat> #include <engine> #include <hamsandwich> #define DMG_BULLET (1<<1) new bool:ma_klase[33]; new const nazwa[] = "Zamachowiec"; new const opis[] = "Wybuchasz po smierci zadajac 80(+int) obrazen"; new const bronie = 1<<CSW_AUG | 1<<CSW_USP | 1<<CSW_HEGRENADE | 1<<CSW_FLASHBANG | 1<<CSW_SMOKEGRENADE; new const zdrowie = 0; new const kondycja = 0; new const inteligencja = 0; new const wytrzymalosc = 0; new sprite_blast, sprite_white; public plugin_init() { register_plugin(nazwa, "1.0", "QTM_Peyote"); cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc); register_event("DeathMsg", "Death", "ade"); } public plugin_precache() { sprite_white = precache_model("sprites/white.spr") ; sprite_blast = precache_model("sprites/dexplo.spr"); } public cod_class_enabled(id) { if(!(get_user_flags(id) & ADMIN_LEVEL_G)) { ColorChat(id, RED, "[General] Nie masz uprawnien, aby korzystac z tej klasy."); return COD_STOP; } ColorChat(id, GREEN, "Klasa stworzona przez pluginymody.webd.pl"); ma_klase[id] = true; return COD_CONTINUE; } public cod_class_disabled(id) ma_klase[id] = false; public Death() { new id = read_data(2); if(!ma_klase[id]) return PLUGIN_CONTINUE; new Float:fOrigin[3]; entity_get_vector(id, EV_VEC_origin, fOrigin); new iOrigin[3]; for(new i=0;i<=2;i++) iOrigin[i] = floatround(fOrigin[i]); message_begin(MSG_BROADCAST,SVC_TEMPENTITY, iOrigin); write_byte(TE_EXPLOSION); write_coord(iOrigin[0]); write_coord(iOrigin[1]); write_coord(iOrigin[2]); write_short(sprite_blast); write_byte(32); write_byte(20); write_byte(0); message_end(); message_begin( MSG_BROADCAST, SVC_TEMPENTITY, iOrigin ); write_byte( TE_BEAMCYLINDER ); write_coord( iOrigin[0] ); write_coord( iOrigin[1] ); write_coord( iOrigin[2] ); write_coord( iOrigin[0] ); write_coord( iOrigin[1] + 200 ); write_coord( iOrigin[2] + 200 ); write_short( sprite_white ); write_byte( 0 ); write_byte( 0 ); write_byte( 10 ); write_byte( 10 ); write_byte( 255 ); write_byte( 255 ); write_byte( 100 ); write_byte( 100 ); write_byte( 128 ); write_byte( 0 ); message_end(); new entlist[33]; new numfound = find_sphere_class(id, "player", 200.0 , entlist, 32); for (new i=0; i<=numfound; i++) { new pid = entlist[i]; if (is_user_alive(pid) && get_user_team(id) != get_user_team(pid)) cod_inflict_damage(id, pid, 80.0, 0.0); } return PLUGIN_CONTINUE; }
RasiaQ
02.02.2014
@up wtedy w ogóle nie będzie zabierał obrażeń z intem
Wywal to z kodu i sprawdź
#define DMG_BULLET (1<<1)
Ma racje, wywal to z kodu i
80.0, 0.7
Zamiast 80 daj 20, bo to odpowiada za stałe obrażenia. A co do obrażeń + int(odpowiada za to liczba 0.7) to ustaw wedle życzenia. Tu taka szybka tabelka
0.1 - 10int = 1 DMG 0.2 - 5int = 1 DMG 0.15 - 6.(3)int = 1 DMG 0.14 - 7.14int = 1 DMG 0.066666 - 15int = 1 DMG 0.05 - 20int = 1 DMG
Duoz
03.02.2014
Skasowałem:
#define DMG_BULLET (1<<1)
Ustawiłem:
cod_inflict_damage(id, pid, 20.0, 0.1);
Niestety dalej to samo...
Engi
03.02.2014
Spróbuj tak:
new int = cod_get_user_intelligence(id, 1, 1, 1); //dodaj to gdzieś w kodzie, nad pętlą //zamiast cod_inflict_damage(id, pid, 20.0, 0.1); //daj SetHamParamFloat(4, 80.0 + (0.7 * Float:int));
Ale ręki uciąć nie dam