[Include] b_weapons.inc
#1

b_weapons.inc
BlueX Weapon Include
Introduзгo

Boas pessoal, hoje trago-vos uma include que eu fiz hoje, ela ainda й uma versгo BETA, digamos que й mais ou menos a base da include, nas prуximas versхes pretendo criar coisas mais dinвmicas e adicionar mais coisas.

Funзгo

Esta include tem como funзгo de adicionar mais modelos a arma X, por exemplo, a Deagle como muitos chamam nesta include tem apenas trкs modelos, Deagle1, Deagle2 e Deagle3, vocк tambйm pode alterar o damage de cada modelo.

Modo de uso

Para usar esta include й muito simples.

Quando vocк dб alguma arma ao jogador, vocк terб que colocar a funзгo:
  • GivePlayerWeaponEx(playerid,weaponi,weapont,ammo);
    • playerid - jogador que irб receber a arma.
    • weaponi - id da arma, ex: 24 (Deagle)
    • weapont - modelo da arma, ex: 1 (Deagle1)
    • ammo - muniзгo
Exemplo:

pawn Code:
CMD:deagle1(playerid){
    GivePlayerWeaponEx(playerid,24,1,100);
    SendClientMessage(playerid,-1,"Sucesso");
    return 1;
}
Depois caso vocк queira tirar as armas do jogador, vocк terб que usar a funзгo:
  • ResetPlayerWeaponsEx(playerid);
    • playerid - id que irб ficar sem as armas.
Nota: Nгo й necessбrio colocar essa funзгo no OnPlayerDeath pois a include jб tem a OnPlayerDeath com essa funзгo

Para alterar o Damage da arma basta fazer o seguinte, no topo do seu gamemode/filterscript

pawn Code:
#undef DEAGLE1
#define DEAGLE1 50.0
Nota: se vocк quer alterar outro id vocк terб que colocar DEAGLE(ID), exemplo DEAGLE2 , o mбximo й ate ao 3.

Creative Commons

Code:
	Portugal:

		Tem o direito de:

			Compartilhar - reproduzir, distribuir e transmitir o trabalho

			Remisturar - adaptar o trabalho.

		De acordo com as seguintes condiзхes:

			Atribuiзгo - Tem de fazer a atribuiзгo do trabalho,
			da maneira estabelecida pelo titular originбrio ou licenciante
			(mas sem sugerir que este o apoia, ou que subscreve o seu uso do
			trabalho).

			Nгo Comercial - Nгo pode usar este trabalho para fins comerciais.

		No entendimento de que:

			Renъncia - Qualquer uma das condiзхes acima pode ser renunciada pelo
			titular do direito de autor ou pelo titular dos direitos conexos, se
			obtiver deste uma autorizaзгo para usar o trabalho sem essa condiзгo.

			Domнnio Pъblico - Quando a obra ou qualquer dos seus elementos se
			encontrar no domнnio pъblico, nos termos da lei aplicбvel, esse
			estatuto nгo й de nenhuma forma afectado pela licenзa.

			Outros Direitos - A licenзa nгo afecta, de nenhuma forma, qualquer dos seguintes direitos:

				• Os seus direitos de "uso legнtimo" (fair dealing ou fair use)
				  condecidos por lei, ou outras excepзхes e limitaзхes aplicбveis
				  ao direito de autor e aos direitos conexos;

				• Os direitos morais do autor;

				• Direitos de que outras pessoas possam ser titulares, quer
				  sobre o trabalho em si quer sobre a forma como este й usado,
				  tais como direitos da personalidade ou direito а privacidade.

			Aviso - Em todas as reutilizaзхes ou distribuiзхes, tem de deixar claro quais
			sгo os termos da licenзa deste trabalho. A melhor forma de fazк-lo, й colocando
			um link para esta pбgina.

			Link - http://creativecommons.org/licenses/by-n...9.66691319	Brasil:

		Vocк tem a liberdade de:

			Compartilhar - copiar, distribuir e transmitir a obra.

			Remixar - criar obras derivadas.

		Sob as seguntes condiзхes:

			Atribuiзгo - Vocк deve creditar a obra de forma especificada
			pelo autor ou licenciante (mas nгo de maneira que sugira que
			estes concedem qualquer aval a vocк ou ao seu uso da obra).

			Uso nгo comercial - Vocк nгo pode usar esta obra para fins
			comerciais.

		Ficando claro que:

			Renъncia - Qualquer das condiзхes acima pode ser renunciada se vocк
			obtiver permissгo do titular dos direitos autoriais.

			Domнnio Pъblico - One a obra ou qualquer de seus elementos estiver
			em dominio pъblico sob o direito aplicбvel, esta condiзгo nгo й, de
			maneira alguma, afetada pela licenзa.

			Outros Direitos - Os seguintes direitos nгo sгo, de maneira alguma, afetados pela licenзa:

				• Limitaзхes e exceзхes aos direitos autorais ou quaisquer
				  usos livres aplicбveis;

				• Os direitos morais do autor;

				• Direitos que outras pessoas podem ter sobre a obra ou
				  sobre a utilizaзгo da obra, tais como direitos de imagem
				  ou privacidade.

			Aviso - Para qualquer reutilizaзгo ou distribuiзгo, vocк deve deixar
			claro a terceiros os termos da licenзa a que se encontra submetida
			esta obra. A melhor maneira de fazer isso й com um link para a pбgina.

			Link - http://creativecommons.org/licenses/by-nc/3.0/br/
ChangeLog

Code:
Vesгo Atual:
	0.5 (BETA)

Changelog:
	18/0/2012:
		Lanзamento da versгo BETA.
Agradecimentos

Code:
Contribuidor:
	******, Wups, dMagnus, ricardorico97,billiejoe

Obrigado:
	****** - criador o y_hooks e um grande programador.
	Wups - criador da include OPSP.
	dMagnus - um cara legal e foi um beta tester na include.
	ricardorico97 - um grande amigo e foi um beta tester na include.
	billiejoe - grandes conversas e foi um beta tester na include.

Um grande obrigado a:
	Key/Kalcor - SA:MP.
	SA_MP Team.
Cуdigo

pawn Code:
/*----------------------------------------------------------------------------*\
                            ====================
                            BlueX Weapon Include
                            ====================
Descriзгo:
    Esta include tem como funзгo de adicionar mais modelos a arma X, por exemplo,
    a Deagle como muitos chamam nesta include tem apenas trкs modelos, Deagle1,
    Deagle2 e Deagle3, claro que vocк pode alterar os nomes como obvio,
    vocк tambйm pode alterar o damage de cada modelo.

Creative Commons:

    Portugal:

        Tem o direito de:

            Compartilhar - reproduzir, distribuir e transmitir o trabalho

            Remisturar - adaptar o trabalho.

        De acordo com as seguintes condiзхes:

            Atribuiзгo - Tem de fazer a atribuiзгo do trabalho,
            da maneira estabelecida pelo titular originбrio ou licenciante
            (mas sem sugerir que este o apoia, ou que subscreve o seu uso do
            trabalho).

            Nгo Comercial - Nгo pode usar este trabalho para fins comerciais.

        No entendimento de que:

            Renъncia - Qualquer uma das condiзхes acima pode ser renunciada pelo
            titular do direito de autor ou pelo titular dos direitos conexos, se
            obtiver deste uma autorizaзгo para usar o trabalho sem essa condiзгo.

            Domнnio Pъblico - Quando a obra ou qualquer dos seus elementos se
            encontrar no domнnio pъblico, nos termos da lei aplicбvel, esse
            estatuto nгo й de nenhuma forma afectado pela licenзa.

            Outros Direitos - A licenзa nгo afecta, de nenhuma forma, qualquer dos seguintes direitos:

                • Os seus direitos de "uso legнtimo" (fair dealing ou fair use)
                  condecidos por lei, ou outras excepзхes e limitaзхes aplicбveis
                  ao direito de autor e aos direitos conexos;

                • Os direitos morais do autor;

                • Direitos de que outras pessoas possam ser titulares, quer
                  sobre o trabalho em si quer sobre a forma como este й usado,
                  tais como direitos da personalidade ou direito а privacidade.

            Aviso - Em todas as reutilizaзхes ou distribuiзхes, tem de deixar claro quais
            sгo os termos da licenзa deste trabalho. A melhor forma de fazк-lo, й colocando
            um link para esta pбgina.

            Link - http://creativecommons.org/licenses/by-n...pt/deed.pt

    Brasil:

        Vocк tem a liberdade de:

            Compartilhar - copiar, distribuir e transmitir a obra.

            Remixar - criar obras derivadas.

        Sob as seguntes condiзхes:

            Atribuiзгo - Vocк deve creditar a obra de forma especificada
            pelo autor ou licenciante (mas nгo de maneira que sugira que
            estes concedem qualquer aval a vocк ou ao seu uso da obra).

            Uso nгo comercial - Vocк nгo pode usar esta obra para fins
            comerciais.

        Ficando claro que:

            Renъncia - Qualquer das condiзхes acima pode ser renunciada se vocк
            obtiver permissгo do titular dos direitos autoriais.

            Domнnio Pъblico - One a obra ou qualquer de seus elementos estiver
            em dominio pъblico sob o direito aplicбvel, esta condiзгo nгo й, de
            maneira alguma, afetada pela licenзa.

            Outros Direitos - Os seguintes direitos nгo sгo, de maneira alguma, afetados pela licenзa:

                • Limitaзхes e exceзхes aos direitos autorais ou quaisquer
                  usos livres aplicбveis;

                • Os direitos morais do autor;

                • Direitos que outras pessoas podem ter sobre a obra ou
                  sobre a utilizaзгo da obra, tais como direitos de imagem
                  ou privacidade.

            Aviso - Para qualquer reutilizaзгo ou distribuiзгo, vocк deve deixar
            claro a terceiros os termos da licenзa a que se encontra submetida
            esta obra. A melhor maneira de fazer isso й com um link para a pбgina.

            Link - http://creativecommons.org/licenses/by-nc/3.0/br/

Contribuidor:
    ******, Wups, dMagnus, ricardorico97,billiejoe.

Obrigado:
    ****** - criador o y_hooks e um grande programador.
    Wups - criador da include OPSP.
    dMagnus - um cara legal e foi um beta tester na include.
    ricardorico97 - um grande amigo e foi um beta tester na include.
    billiejoe - grandes conversas e foi um beta tester na include.

Um grande obrigado a:
    Key/Kalcor - SA:MP.
    SA_MP Team.

Vesгo Atual:
    0.5 (BETA)

Changelog:
    18/0/2012:
        Lanзamento da versгo BETA.

Definiзхes:
    DEAGLE1 - Modelo numero 1 da arma 24 (Deagle);
    DEAGLE2 - Modelo numero 2 da arma 24 (Deagle);
    DEAGLE3 - Modelo numero 3 da arma 24 (Deagle);
    DEBUG - caso vocк queria ver os debugs apenas use true, se nгo quer use false

Variaveis:
    Globais:
        WeaponInfo - varuavel principal que segura o code todo.
    Locais:
        arma - variavel que pega o id da arma do jogador

Enumeraзхes:
    wInfo - enumaraзгo responsavel pelos dados das armas de cada jogador.

Stocks:
    GivePlayerWeaponEx - Seta a arma do jogador
    ResetPlayerWeaponEx - Retira as armas do jogador
    GetWeaponDamage - Pega o damage da arma que o jogador tem.

\*----------------------------------------------------------------------------*/

#if defined _b_weapons_include
    #endinput
#endif
#define _b_weapons_include
#include <a_samp>
#include <YSI\y_hooks>
#include <OPSP>

#define DEBUG true
#if defined DEAGLE1
    #endinput
#endif
#define DEAGLE1 40.0
#if defined DEAGLE2
    #endinput
#endif
#define DEAGLE2 30.5
#if defined DEAGLE3
    #endinput
#endif
#define DEAGLE3 25.0

#define B_VERSION_MAJOR 0
#define B_VERSION_MINOR 50
#define B_VERSION_BUILD 0000
#define B_VERSION #B_VERSION_MAJOR "." #B_VERSION_MINOR "." #B_VERSION_BUILD

enum wInfo{
    WeaponID,
    Float:Damage,
    WeaponType,
    WeaponModel
};

new WeaponInfo[MAX_PLAYERS][wInfo];

stock GivePlayerWeaponEx(playerid,weaponi,weapont,ammo){
    GivePlayerWeapon(playerid,weapont,ammo);
    WeaponInfo[playerid][WeaponID] = weaponi;
    WeaponInfo[playerid][WeaponType] = weapont;
    return 1;
}

stock ResetPlayerWeaponEx(playerid){
    ResetPlayerWeapons(playerid);
    WeaponInfo[playerid][WeaponID] = 0;
    WeaponInfo[playerid][WeaponType] = 0;
    return 1;
}

stock GetWeaponDamage(playerid){
    new arma = GetPlayerWeapon(playerid);
    if(WeaponInfo[playerid][WeaponID] == arma){
        if(WeaponInfo[playerid][WeaponType] == 1){
            WeaponInfo[playerid][Damage] = DEAGLE1;
            WeaponInfo[playerid][WeaponModel] = 24;
        }
        else if(WeaponInfo[playerid][WeaponType] == 2){
            WeaponInfo[playerid][Damage] = DEAGLE2;
            WeaponInfo[playerid][WeaponModel] = 24;
        }
        else if(WeaponInfo[playerid][WeaponType] == 3){
            WeaponInfo[playerid][Damage] = DEAGLE3;
            WeaponInfo[playerid][WeaponModel] = 24;
        }
        else {
            WeaponInfo[playerid][Damage] = 0;
            WeaponInfo[playerid][WeaponModel] = 0;
        }
    }
    return 1;          
}
   
hook OnFilterScriptInit(){
    print(" ");
    print(" ======================================= ");
    print(" |                                     | ");
    print(" |        b_weapons " B_VERSION "          | ");
    print(" |               By BlueX              | ");
    print(" |                                     | ");
    print(" ======================================= ");
    print(" ");
    return 1;
}

hook OnPlayerShootPlayer(Shooter,Target,Float:HealthLost,Float:ArmourLost)
{
    if(Target != INVALID_PLAYER_ID){
        GetWeaponDamage(Shooter);
        new Float:Life;
        GetPlayerHealth(Target,Life);
        SetPlayerHealth(Target,Life-WeaponInfo[Shooter][Damage]);
        #if DEBUG == true
        {
            printf("Vitima: %d , OVida: %f , NVida: %f , ArmaID: %d , ArmaType: %d, Damage: %f, Atacante: %d",Target,Life,Life-WeaponInfo[Shooter][Damage],WeaponInfo[Shooter][WeaponModel],WeaponInfo[Shooter][WeaponType],WeaponInfo[Shooter][Damage],Shooter);
        }
        #endif
    }
    return 1;
}

hook OnPlayerDeath(playerid,reason){
    ResetPlayerWeaponEx(playerid);
    #if DEBUG == true
    {
        printf("Player: %d weapons reseted.",playerid);
    }
    #endif
    return 1;
}
Nota: Se me forem perguntar porque й que eu faзo os cуdigos em inglкs й porque eu acho muito mais dinвmico do que escrever em portuguкs, sempre sigo a minha lуgica pelo inglкs..

Download

Versгo beta

http://www.mediafire.com/?v38hb36mnehttyb


Bugs

Caso ocorram bugs durante o uso da include mande-me por via PM, pois nada й perfeito, ainda por cima esta versгo й uma versгo BETA, й provбvel ter alguns bugs.
Reply
#2

vou usar.
Reply
#3

Quote:
Originally Posted by ViictorDaay-
View Post
vou usar.
Obrigado

Nota: a include tambйm previne cheaters, nas prуximas versхes estarei desenvolvendo isso tambйm, mas sei que se vocк tiver uma outra arma ela nгo tira o damage, pois o modelo й 0, ou seja, й nulo.
Reply
#4

testado e aprovado
Reply
#5

Quote:
Originally Posted by BillieJoe
View Post
testado e aprovado
Tu sabe nй :P
Reply
#6

Muito bom trabalho!
Reply
#7

Otimo!!!
Reply
#8

se previne cheaters sera bem util,otima identaзгo
Reply
#9

gostei, уtimo trabalho
Reply
#10

Lecal, sу nгo vi necessidade de usar a include OPSP.
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)