Skocz do zawartości

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.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Zdjęcie

Czemu klasa z codmod nie wybucha?;(


  • Zamknięty Temat jest zamknięty
4 odpowiedzi w tym temacie

#1 Droso

    Dawniej HubertTM

  • Support Team

Reputacja: 1 291
Godlike

  • Postów:2 371
  • Steam:steam
  • Imię:Hubert
  • Lokalizacja:Wrocław
Offline

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:

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
  • +
  • -
  • 0

Piszę pluginy pod: AMX MOD X oraz SOURCE MOD!

Na zlecenie i bez zlecenia zresztą też!


#2 BoB0_

    Wszechpomocny

  • Użytkownik

Reputacja: 38
Życzliwy

  • Postów:365
  • GG:
  • Lokalizacja:Przemyśl
Offline

Napisano 14.11.2010 18:48

Kod jest dobry. Coś musiałeś źle zrobić przy innych krokach.
  • +
  • -
  • 0

#3 Droso

    Dawniej HubertTM

  • Autor tematu
  • Support Team

Reputacja: 1 291
Godlike

  • Postów:2 371
  • Steam:steam
  • Imię:Hubert
  • Lokalizacja:Wrocław
Offline

Napisano 19.11.2010 15:10

nie rozumiem kod jest dobry kompiluje sie i niedziała?
  • +
  • -
  • 0

Piszę pluginy pod: AMX MOD X oraz SOURCE MOD!

Na zlecenie i bez zlecenia zresztą też!


#4 Skilled

    Zaawansowany

  • Użytkownik

Reputacja: 28
Życzliwy

  • Postów:117
  • Imię:Piotrovsky
  • Lokalizacja:Knurów
Offline

Napisano 19.11.2010 15:17

o niższe zmienne dajemy nad plugin_init
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

  • +
  • -
  • 1
Najlepszy [Cod Mod] By Skilled
Dołączona grafika
CS-WESTERN.PL Najlepsze Serwery CS 1.6 :D

#5 Droso

    Dawniej HubertTM

  • Autor tematu
  • Support Team

Reputacja: 1 291
Godlike

  • Postów:2 371
  • Steam:steam
  • Imię:Hubert
  • Lokalizacja:Wrocław
Offline

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
  • +
  • -
  • 0

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