if(klasa_gracza[id] == bomberman) { 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); // scale write_byte(20); // framerate write_byte(0);// flags message_end(); static victim victim = -1; while ((victim = engfunc(EngFunc_FindEntityInSphere, victim, fOrigin, 99.0)) != 0) // 90 = obszar wybuchu { if (!is_user_alive(victim)) continue; ExecuteHam(Ham_TakeDamage, victim, 0, id, 100.0, 1); // 100.0 zabrane dmg } if(!informacje_przedmiotu_gracza[id][0]) DajPrzedmiot(id, random_num(1, sizeof nazwy_przedmiotow-1)); doswiadczenie_gracza[id] += doswiadczenia_za_zabojstwo; SprawdzPoziom(id); }Link do tematu : TU
Witamy w Nieoficjalnym polskim support'cie AMX Mod X
Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
|
Guest Message by DevFuse
Czemu klasa z codmod nie wybucha?;(
Temat rozp. Droso, 13.11.2010 12:03
4 odpowiedzi w tym temacie
#1
Napisano 13.11.2010 12:03
Dodalem sobie klase i dodałem wg poradnika że przy zgonie wybucha ale nie działa oto kod do wybuchu:
Piszę pluginy pod: AMX MOD X oraz SOURCE MOD!
Na zlecenie i bez zlecenia zresztą też!
#2
Napisano 14.11.2010 18:48
Kod jest dobry. Coś musiałeś źle zrobić przy innych krokach.
#3
Napisano 19.11.2010 15:10
nie rozumiem kod jest dobry kompiluje sie i niedziała?
Piszę pluginy pod: AMX MOD X oraz SOURCE MOD!
Na zlecenie i bez zlecenia zresztą też!
#4
Napisano 19.11.2010 15:17
o niższe zmienne dajemy nad plugin_init
szukamy teraz
pod tym dodajemy
potem dajemy stocki na sam dół Moda
do precache_plugin czyli do pobieranych od pluginu plików do gracza dodajemy efekt wybuchowy sprite
A teraz dodajemy cvar'y do amxx.cfg
Proszę
P.S na pewno nie dodałeś all jak trzeba mi działa 100 % i jest konkretnie
1 minus zabija ludzi z teamu nawet przy ff off.
new gMaxPlayers, gMessageDeathMsg, gCvarRadius, gCvarDamage, gCylinderSprite; new const gExplodeSound[] = "weapons/rocketfire1.wav";potem zabierzemy się za dodanie eventów i cvarów do plugin_init
gCvarRadius = register_cvar("cod_promien_wybuchu", "200"); gCvarDamage = register_cvar("cod_obrazenia_przez_wybuch", "100.0"); // obrażenia zawsze podajemy w FLOACIE! czyli np: 10.1 <img src='https://amxx.pl/public/style_emoticons/<#EMO_DIR#>/smile.gif' class='bbc_emoticon' alt=':)' /> gMaxPlayers = get_maxplayers(); gMessageDeathMsg = get_user_msgid("DeathMsg");
szukamy teraz
public Death()
pod tym dodajemy
if(klasa_gracza[id] == Nazwa_klasy) { 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); // scale write_byte(20); // framerate write_byte(0);// flags message_end(); static victim victim = -1; while ((victim = engfunc(EngFunc_FindEntityInSphere, victim, fOrigin, 90.0)) != 0) // 90 = obszar wybuchu { if (!is_user_alive(victim)) continue; ExecuteHam(Ham_TakeDamage, victim, 0, id, 100.0, 1); // 100.0 zabrane dmg } if(!informacje_przedmiotu_gracza[id][0]) DajPrzedmiot(id, random_num(1, sizeof nazwy_przedmiotow-1)); doswiadczenie_gracza[id] += doswiadczenia_za_zabojstwo; SprawdzPoziom(id); }
potem dajemy stocki na sam dół Moda
stock Blast_ExplodeDamage( entid, Float:damage, Float:range ) { new Float:flOrigin1[ 3 ]; entity_get_vector( entid, EV_VEC_origin, flOrigin1 ); new Float:flDistance; new Float:flTmpDmg; new Float:flOrigin2[ 3 ]; for( new i = 1; i <= gMaxPlayers; i++ ) { if( is_user_alive( i ) && get_user_team( entid ) != get_user_team( i ) ) { entity_get_vector( i, EV_VEC_origin, flOrigin2 ); flDistance = get_distance_f( flOrigin1, flOrigin2 ); static const szWeaponName[] = "Blast Explosion"; if( flDistance <= range ) { flTmpDmg = damage - ( damage / range ) * flDistance; fakedamage( i, szWeaponName, flTmpDmg, DMG_BLAST ); message_begin( MSG_BROADCAST, gMessageDeathMsg ); write_byte( entid ); write_byte( i ); write_byte( 0 ); write_string( szWeaponName ); message_end(); } } } } stock Create_BeamCylinder( origin[ 3 ], addrad, sprite, startfrate, framerate, life, width, amplitude, red, green, blue, brightness, speed ) { message_begin( MSG_PVS, SVC_TEMPENTITY, origin ); write_byte( TE_BEAMCYLINDER ); write_coord( origin[ 0 ] ); write_coord( origin[ 1 ] ); write_coord( origin[ 2 ] ); write_coord( origin[ 0 ] ); write_coord( origin[ 1 ] ); write_coord( origin[ 2 ] + addrad ); write_short( sprite ); write_byte( startfrate ); write_byte( framerate ); write_byte(life ); write_byte( width ); write_byte( amplitude ); write_byte( red ); write_byte( green ); write_byte( blue ); write_byte( brightness ); write_byte( speed ); message_end(); }
do precache_plugin czyli do pobieranych od pluginu plików do gracza dodajemy efekt wybuchowy sprite
gCylinderSprite = precache_model( "sprites/shockwave.spr" ); precache_sound( gExplodeSound );
A teraz dodajemy cvar'y do amxx.cfg
cod_promien_wybuchu "200" // W jakim odrębie iluś metrów ma wybuchnąć gracz i zadać obrażenia cod_obrazenia_przez_wybuch "100.0" //ile ma zabrać Hp za wybuch <img src='https://amxx.pl/public/style_emoticons/<#EMO_DIR#>/smile.gif' class='bbc_emoticon' alt=':)' />
Proszę
P.S na pewno nie dodałeś all jak trzeba mi działa 100 % i jest konkretnie
1 minus zabija ludzi z teamu nawet przy ff off.
Użytkownik Skilled edytował ten post 19.11.2010 15:18
#5
Napisano 19.11.2010 18:46
Sam sobie poradziłem ale szkoda że to wybucha jak granat a nie jak taki okrąg*
a poza tym rejestrowanie cvarow i nie uzywanie ich to tylko warning
*Tak jak w itemach w diablo lub jak dynamit w codzie
a poza tym rejestrowanie cvarow i nie uzywanie ich to tylko warning
*Tak jak w itemach w diablo lub jak dynamit w codzie
Piszę pluginy pod: AMX MOD X oraz SOURCE MOD!
Na zlecenie i bez zlecenia zresztą też!
Użytkownicy przeglądający ten temat: 0
0 użytkowników, 0 gości, 0 anonimowych