[Ajuda] alguem pode me dizer por que esse codigo nгo funciona
#1

Bom Galera eu fiz esse codigo ai para quando o player atirar em um alvo que eu criei manda a
mensagem que ele acertou o alvo, vai acontecer outras coisas mais ainda nгo fiz o resto do sistema, o problema й que nгo estб funcionando quando atiro nгo envia a mensagem, SCM й o SendClientMessage abreviado, o objeto que йo alvo nгo tem colisгo, porem ja testei com objetos com colisгo e mesmo assim nгo funciona



public OnPlayerWeaponShot( playerid, weaponid, hittype, hitid, Float:fX, Float:fY, Float:fZ )
{
if(hittype == BULLET_HIT_TYPE_OBJECT)
{
if(hitid == alvo[0])
{
SCM(playerid, -1, "Vocк acertou o alvo!");
}
}
return 1;

}
Reply
#2

Код:
public OnPlayerWeaponShot( playerid, weaponid, hittype, hitid, Float:fX, Float:fY, Float:fZ )
{
    if(hittype == BULLET_HIT_TYPE_OBJECT)
    {
        if(hitid == alvo[0])
        {
            SCM(playerid, -1, "Vocк acertou o alvo!");
        }
   }
   return 1;
}
Mostra a funзгo SCM e o a array alvo[]
Reply
#3

Quote:
Originally Posted by Ermanhaut
Посмотреть сообщение
Код:
public OnPlayerWeaponShot( playerid, weaponid, hittype, hitid, Float:fX, Float:fY, Float:fZ )
{
    if(hittype == BULLET_HIT_TYPE_OBJECT)
    {
        if(hitid == alvo[0])
        {
            SCM(playerid, -1, "Vocк acertou o alvo!");
        }
   }
   return 1;
}
Mostra a funзгo SCM e o a array alvo[]
SCM й o SendClientMesage sу que abreviei assim:
#define SCM SendClientMessage, acho melhor assim programo mais rapido, ea array й para criar o objeto assim:

new alvo[2];
em gamemodeinit

alvo[0] = CreateObjeto(as coordenadas aqui);

usei array pq uso a array para mais de um objeto
Reply
#4

Se й mais de um alvo, use um loop:
PHP код:
public OnPlayerWeaponShotplayeridweaponidhittypehitidFloat:fXFloat:fYFloat:fZ )
{
    if(
hittype == BULLET_HIT_TYPE_OBJECT)
    {
        for(new 
0sizeof(alvo); i++)
        {
            if(
hitid == alvo[i])
            {
                
SCM(playerid, -1"Vocк acertou o alvo!");
            }
        }
   }
   return 
1;

Reply
#5

Quote:
Originally Posted by RodrigoMSR
Посмотреть сообщение
Se й mais de um alvo, use um loop:
PHP код:
public OnPlayerWeaponShotplayeridweaponidhittypehitidFloat:fXFloat:fYFloat:fZ )
{
    if(
hittype == BULLET_HIT_TYPE_OBJECT)
    {
        for(new 
0sizeof(alvo); i++)
        {
            if(
hitid == alvo[i])
            {
                
SCM(playerid, -1"Vocк acertou o alvo!");
            }
        }
   }
   return 
1;

vocк entendeu errado, a var[] й para criar 2 objetos pq faзo eles se moverem juntos etc, porem o alvo й apenas o "alvo[0]" ou seja quero que quando atire no "alvo[0]" mande a menssagem que acetei o alvo, vai acontecer mais alguma coisas mas isso vou fazer depois, o problema й que quando atiro no "alvo[0]" nгo estб acontecendo nada.
Reply
#6

De repente ele nгo tб detectando como um hit type object, da um debug no hit type pra ver que tipo de hit type tб acontecendo, o jeito й fazer debug atй descobrir.
Reply
#7

Quote:
Originally Posted by n0minal
Посмотреть сообщение
De repente ele nгo tб detectando como um hit type object, da um debug no hit type pra ver que tipo de hit type tб acontecendo, o jeito й fazer debug atй descobrir.
como o objeto que йo alvo nгo tem colisгo achei que seria isso, porem coloquei um objeto com colisгo e mesmo assim nгo vai, e na wiki estб desse jeito jб tentei muitas coisas e nгo consigo, serб que essa public й bugada ?
Reply
#8

PHP код:
public OnPlayerWeaponShotplayeridweaponidhittypehitidFloat:fXFloat:fYFloat:fZ )
{
    if(
hittype == BULLET_HIT_TYPE_OBJECT)
    {
        if(
IsValidPlayerObject(playeridhitid))
        {
            for(new 
asizeof(alvo); ++a)
            {
            if(
hitid == alvo[alvo])
            {
                
SCM(playerid, -1"Vocк acertou o alvo!");
                break;
            }
            }
        }
    }
    return 
1;

Reply
#9

Quote:
Originally Posted by Santso
Посмотреть сообщение
como o objeto que йo alvo nгo tem colisгo achei que seria isso, porem coloquei um objeto com colisгo e mesmo assim nгo vai, e na wiki estб desse jeito jб tentei muitas coisas e nгo consigo, serб que essa public й bugada ?
Nгo, nгo й bugada, coloca um printf com os parвmetros que vocк recebe quando acerta o tiro em algo, mas tira a verificaзгo do hit type, deixa sу a callback e um printf com tudo o que vocк recebe de parвmetro
Reply
#10

Faz o que o nominal falou: debug. E, tambйm, essa funзгo sу й chamada se o lagcompmode estiver igual 1 (compensaзгo de lag ativada), verifique se por acaso vocк desativou (colocou lagcompmode 0) no server.cfg.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)