[AJUDA]2 Coisas meu povo <3!
#1

pawn Код:
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
    if(newkeys & KEY_SECONDARY_ATTACK) {
        if(Equipes[playerid] == 2) {
            new Float:X, Float:Y, Float:Z,Float:vida;
            GetPlayerPos(playerid,X,Y,Z);
            for(new i = 0; i < MAX_PLAYERS; i++) {
                if(i == playerid) continue;
                if(IsPlayerInRangeOfPoint(i,3.0,X,Y,Z)) {
                    new str[18];
                    format(str, sizeof(str), "~r~Mordida~w~100$");
                    GameTextForPlayer(playerid, str, 3000, 1);
                    GivePlayerMoney(playerid, 100);
                    ApplyAnimation(playerid,"BASEBALL","Bat_Hit_1",4.1,1,1,1,1,1,1);
                    GetPlayerHealth(i, vida);
                    SetPlayerHealth(i,vida -10);
                }
            }
        }
    }                                             // WTF? AFF ta aparecendo " } " que nгo coloquei O_O
    return 1;
}
Entгo galera a primeira coisa й como faзo para usar um settime para que quando ele ataque o player uma animaзгo ele use so que essa animaзгo pare depois de 1 segundo// 2° coisa й o zombie nesse code ai pode atacar outros zombies quero que ele so ataque humanos o codigo que uso pra diferenciar os "times" й esse
pawn Код:
if(Equipes[playerid] == 1 ) {
Reply
#2

Up pro topico nгo morrer
Reply
#3

Puts Merda em cara vamo da um Up TB..

To resolvendo aqui pra vc!
Reply
#4

PHP код:
public OnPlayerKeyStateChange(playeridnewkeysoldkeys)
{
    if(
newkeys KEY_SECONDARY_ATTACK) {
        if(
Equipes[playerid] == 2) {
            new 
Float:XFloat:YFloat:Z,Float:vida;
            
GetPlayerPos(playerid,X,Y,Z);
            for(new 
0MAX_PLAYERSi++) {
                if(
== playerid) continue;
                if(
IsPlayerInRangeOfPoint(i,3.0,X,Y,Z)) {
                    new 
str[18];
                    
format(strsizeof(str), "~r~Mordida~w~100$");
                    
GameTextForPlayer(playeridstr30001);
                    
GivePlayerMoney(playerid100);
                    
ApplyAnimation(playerid,"BASEBALL","Bat_Hit_1",4.1,1,1,1,1,1,1);
                    
GetPlayerHealth(ivida);
                    
SetPlayerHealth(i,vida -10);
                    
SetTimerEx("PararAnimacao"1000false"i"playerid); //1000ms = 1 segundo
                
}
            }
        }
    }                                             
// WTF? AFF ta aparecendo " } " que nгo coloquei O_O
    
return 1;

FINAL DO GM

PHP код:
forward PararAnimacao(playerid);
public 
PararAnimacao(playerid)
{
    return 
ClearAnimations(playerid);

deve ter uma forma mais otimizada, mas essa ai funciona #euacho rsrs
Reply
#5

Sem erros.. do geitinho que vocк pediu..

Com explicaзгo de implementaзхes minha no Code usando //

pawn Код:
#include a_samp

#define EQUIPE_ZOMBIE 1
#define EQUIPE_HUMANOS 2

new Equipes[MAX_PLAYERS];

public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
    if(newkeys & KEY_SECONDARY_ATTACK)
    {
        if(Equipes[playerid] == EQUIPE_ZOMBIE)
        {
            new Float:X, Float:Y, Float:Z,Float:vida;
            GetPlayerPos(playerid,X,Y,Z);
            for(new i = 0; i < MAX_PLAYERS; i++)
            {
                if(i != playerid) continue;//Sou meio noob se ta errado altere =)
                if(i == playerid) break;//Sou meio noob se ta errado altere =)
                if(Equipes[i] == EQUIPE_HUMANOS)// Essa funзгo sу irб tirar vida se o jogador for um humano..
                {
                    if(IsPlayerInRangeOfPoint(i,5.0,X,Y,Z))//Um raio se 5 metros й ideal.. E outra vocк poderia usar GetXY by angle
                    {
                        new str[18];
                        format(str, sizeof(str), "~r~Mordida~w~100$");
                        GameTextForPlayer(playerid, str, 3000, 1);
                        GivePlayerMoney(playerid, 100);
                        ApplyAnimation(playerid, "BASEBALL", "Bat_Hit_1", 4.0, 0, 1, 1, 0, 0);
                        GetPlayerHealth(i, vida);
                        SetPlayerHealth(i,vida - 10.0);
                    }
                }
            }
        }
    }
    return 1;
}
Reply
#6

o mais correto seria
pawn Код:
if(i == playerid) continue;
sу nгo sei explicar muito bem :S

sу ira funcionar se for ao i...
Reply
#7

Quote:
Originally Posted by EditPawn
Посмотреть сообщение
o mais correto seria
pawn Код:
if(i == playerid) continue;
sу nгo sei explicar muito bem :S

sу ira funcionar se for ao i...
Errбdo meu amigo porque esse
pawn Код:
if(i == playerid) continue;
estб fazendo o papel de verificar se o jogador do loop i й o playerid.. o Playerid й oque estб apertando a tecla do caso.. E isso estб errado ! Porque o jogador iria se ferir? Pode me explicar ?
Reply
#8

Quote:
Originally Posted by Mr.Hardy
Посмотреть сообщение
Errбdo meu amigo porque esse
pawn Код:
if(i == playerid) continue;
estб fazendo o papel de verificar se o jogador do loop i й o playerid.. o Playerid й oque estб apertando a tecla do caso.. E isso estб errado ! Porque o jogador iria se ferir? Pode me explicar ?
Nao sei explicar muito bem... :S
olhe esse post:
https://sampforum.blast.hk/showthread.php?tid=350157
Reply
#9

Por isso mesmo tem que usar o i == playeris ¬¬
Reply
#10

Quote:
Originally Posted by Mr.Hardy
Посмотреть сообщение
Vocк estб se referindo б oque ?

pawn Код:
if(i == playerid) return break;
Estб incorreto ?

@EDIT

AFF esse Jake tem sйrios problemas menta.. porque ele foi fazer 2 post sobre a mesma coisa..
Nгo, estou dizendo que poderia ser da forma que eu disse '-'

@EDIT
E voce diria que a forma q eu disse estaria errado ?
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)