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
CoD Nowy

Problem z klasą wybuchowąKorzystałem z poradnika zamieszczonego na amxx

CoD Nowy

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

#1 s60v5

    Nowy

  • Nowy

Reputacja: 0
Nowy

  • Postów:4
  • Imię:Dawid
  • Lokalizacja:Ostrowiec
Offline

Napisano 11.12.2010 21:04

Witam!

Mam problem z wybuchową klasą.
Korzystałem z tego poradnika> [QTM COD:MW Mod] Klasa Wybuchowa - Nieoficjalny polski support AMX Mod X

Oto kod:
#include <amxmodx>
#include <codmod>

new const nazwa[] = "Terro";
new const opis[] = "Brak";
new const bronie = 1<<CSW_ELITE;
new const zdrowie = 0;
new const kondycja = 100;
new const inteligencja = 0;
new const wytrzymalosc = 0;

		
new gMaxPlayers, gMessageDeathMsg, gCvarRadius, gCvarDamage, gCylinderSprite;

new const gExplodeSound[] = "weapons/rocketfire1.wav";

public plugin_init() 
{
    cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc);
		
	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");
}

public Death()
{
if(klasa_gracza[id] == Terro)
{
        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);
}
}

public plugin_precache()
{
	gCylinderSprite = precache_model( "sprites/shockwave.spr" ); 
	precache_sound( gExplodeSound );
}

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();
}

A oto błędy, które otrzymałem po kompilacji:
Spoiler


Co jest nie tak?
Proszę o szybką odpowiedź. Pozdrawiam!

Użytkownik QTM. Peyote edytował ten post 11.12.2010 21:58

  • +
  • -
  • 0

#2 MaDaFaKa

    Zaawansowany

  • Zbanowany

Reputacja: 59
Pomocny

  • Postów:96
  • Imię:Damian
  • Lokalizacja:Warszawa
Offline

Napisano 11.12.2010 21:55

Łapaj.

#include <amxmodx>
#include <amxmisc>
#include <hamsandwich>

#include <engine>
#include <fakemeta>
#include <cstrike>

#include <fun>
#include <fakemeta_util>
#include <codmod>

new klasa_gracza[33];

enum { Terro }
new const opis[] = "Brak";
new const bronie = 1<<CSW_ELITE;
new const zdrowie = 0;
new const kondycja = 100;
new const inteligencja = 0;
new const wytrzymalosc = 0;


new gMaxPlayers, gMessageDeathMsg, gCvarRadius, gCvarDamage, gCylinderSprite;

new const gExplodeSound[] = "weapons/rocketfire1.wav";

public plugin_init()
{
cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc);

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 :)

gMaxPlayers = get_maxplayers();
gMessageDeathMsg = get_user_msgid("DeathMsg");
}

public Death()
{
new id = read_data(2);

if(klasa_gracza[id] == Terro)
{
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);
}
}

public plugin_precache()
{
gCylinderSprite = precache_model( "sprites/shockwave.spr" );
precache_sound( gExplodeSound );
}

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();
}


PS. Nie posiadam Twojego includa, więc nie wiem czy to zadziała. Dobrze by było, gdybyś nam go podrzucił.

Użytkownik MaDaFaKa edytował ten post 11.12.2010 22:10


#3 s60v5

    Nowy

  • Autor tematu
  • Nowy

Reputacja: 0
Nowy

  • Postów:4
  • Imię:Dawid
  • Lokalizacja:Ostrowiec
Offline

Napisano 11.12.2010 22:12

Niestety znowu wyrzuca błędy:

Spoiler

  • +
  • -
  • 0

#4 MaDaFaKa

    Zaawansowany

  • Zbanowany

Reputacja: 59
Pomocny

  • Postów:96
  • Imię:Damian
  • Lokalizacja:Warszawa
Offline

Napisano 11.12.2010 22:29

Daj plik codmod.inc, a wtedy na pewno Ci pomogę.

#5 s60v5

    Nowy

  • Autor tematu
  • Nowy

Reputacja: 0
Nowy

  • Postów:4
  • Imię:Dawid
  • Lokalizacja:Ostrowiec
Offline

Napisano 11.12.2010 23:00

http://www.share.daw...7_12_codmod.rar
  • +
  • -
  • 0





Również z jednym lub większą ilością słów kluczowych: CoD Nowy

Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych