Portal SAMP
[Ajuda] Problemas a lidar com animação - Versão de Impressão

+- Portal SAMP (https://portalsamp.com)
+-- Fórum: SA-MP (https://portalsamp.com/forumdisplay.php?fid=5)
+--- Fórum: Área de suporte (https://portalsamp.com/forumdisplay.php?fid=6)
+--- Tópico: [Ajuda] Problemas a lidar com animação (/showthread.php?tid=1041)



Problemas a lidar com animação - robertjwx - 06/04/2021

por que o aperto de mão não está funcionando?
joguei um servidor em que dava pra um apertar a mão do outro, achei massa, tentei fazer igual, só aparece pro proprio jogador (os dois executam a animação, mas não aparece)
Código:
        ApplyAnimation(playerid, "GANGS", "hndshkaa",4.0,1,1,1,1,1);

        ApplyAnimation(targetid, "GANGS", "hndshkaa",4.0,1,1,1,1,1);

por que a animação as vezes não vai de primeira?
as vezes eu tenho que rodar isso duas vezes:
Código:
ApplyAnimation(playerid, "RIOT", "RIOT_CHANT",4.1,1,1,1,1,1);

por que a animação não para ao chamar a função stopanim?
por que aquele mesmo ApplyAnimation(playerid, "RIOT", "RIOT_CHANT",4.1,1,1,1,1,1);
não para com minha função de stopanim?
eu tenho que sei lá, dar um soco, andar...
Código:
forward StopAnim(playerid); public StopAnim(playerid) {
    KillTimer(TIMERlimparanim[playerid]);
    ClearAnimations(playerid);
    // as vezes só o ClearAnimations não é suficiente, principalmente no mobile
    if(IsPlayerInAnyVehicle(playerid)) ApplyAnimation(playerid,"PED","CAR_SIT",4.0,0,0,0,0,0,1);
    else {
        // tem que botar a sit no onfoot do mobile, pq a maioria dos mobile n da suporte pra anim de carry
        if(IsPlayerAndroid(playerid) == false) ApplyAnimation(playerid, "CARRY", "crry_prtial", 4.0, 0, 0, 0, 0, 0, 1);
        else if(IsPlayerAndroid(playerid) == true) ApplyAnimation(playerid,"PED","CAR_SIT",4.0,0,0,0,0,0,1);
    }
    ClearAnimations(playerid);
    return true;
}



RE: Problemas a lidar com animação - xbruno1000x - 06/04/2021

Código:
stock CarregarAnims(playerid) {
  for(new i = 0; i < sizeof(AnimLibs); i++) {
      ApplyAnimation(playerid, AnimLibs[i], "null", 4.0, 0, 0, 0, 0, 0, 1);
  }
  return 1;
}

Código:
public OnPlayerSpawn(playerid)
{
    CarregarAnims(playerid);
    return 1;
}


Código:
new const AnimLibs[][] = {
  "AIRPORT",      "ATTRACTORS",   "BAR",          "BASEBALL",     "BD_FIRE",
  "BEACH",        "BENCHPRESS",   "BF_INJECTION", "BIKE_DBZ",     "BIKED",
  "BIKEH",        "BIKELEAP",     "BIKES",        "BIKEV",        "BLOWJOBZ",
  "BMX",          "BOMBER",       "BOX",          "BSKTBALL",     "BUDDY",
  "BUS",          "CAMERA",       "CAR",          "CAR_CHAT",     "CARRY",
  "CASINO",       "CHAINSAW",     "CHOPPA",       "CLOTHES",      "COACH",
  "COLT45",       "COP_AMBIENT",  "COP_DVBYZ",    "CRACK",        "CRIB",
  "DAM_JUMP",     "DANCING",      "DEALER",       "DILDO",        "DODGE",
  "DOZER",        "DRIVEBYS",     "FAT",          "FIGHT_B",      "FIGHT_C",
  "FIGHT_D",      "FIGHT_E",      "FINALE",       "FINALE2",      "FLAME",
  "FLOWERS",      "FOOD",         "FREEWEIGHTS",  "GANGS",        "GFUNK",
  "GHANDS",       "GHETTO_DB",    "GOGGLES",      "GRAFFITI",     "GRAVEYARD",
  "GRENADE",      "GYMNASIUM",    "HAIRCUTS",     "HEIST9",       "INT_HOUSE",
  "INT_OFFICE",   "INT_SHOP",     "JST_BUISNESS", "KART",         "KISSING",
  "KNIFE",        "LAPDAN1",      "LAPDAN2",      "LAPDAN3",      "LOWRIDER",
  "MD_CHASE",     "MD_END",       "MEDIC",        "MISC",         "MTB",
  "MUSCULAR",     "NEVADA",       "ON_LOOKERS",   "OTB",          "PARACHUTE",
  "PARK",         "PAULNMAC",     "PED",          "PLAYER_DVBYS", "PLAYIDLES",
  "POLICE",       "POOL",         "POOR",         "PYTHON",       "QUAD",
  "QUAD_DBZ",     "RAPPING",      "RIFLE",        "RIOT",         "ROB_BANK",
  "ROCKET",       "RUNNINGMAN",   "RUSTLER",      "RYDER",        "SCRATCHING",
  "SEX",          "SHAMAL",       "SHOP",         "SHOTGUN",      "SILENCED",
  "SKATE",        "SMOKING",      "SNIPER",       "SNM",          "SPRAYCAN",
  "STRIP",        "SUNBATHE",     "SWAT",         "SWEET",        "SWIM",
  "SWORD",        "TANK",         "TATTOOS",      "TEC",          "TRAIN",
  "TRUCK",        "UZI",          "VAN",          "VENDING",      "VORTEX",
  "WAYFARER",     "WEAPONS",      "WOP",          "WUZI"
};

Isso irá resolver seu problema.


RE: Problemas a lidar com animação - robertjwx - 06/04/2021

(06/04/2021 23:18)xbruno1000x Escreveu:
Código:
stock CarregarAnims(playerid) {
  for(new i = 0; i < sizeof(AnimLibs); i++) {
      ApplyAnimation(playerid, AnimLibs[i], "null", 4.0, 0, 0, 0, 0, 0, 1);
  }
  return 1;
}

Código:
public OnPlayerSpawn(playerid)
{
    CarregarAnims(playerid);
    return 1;
}


Código:
new const AnimLibs[][] = {
  "AIRPORT",      "ATTRACTORS",   "BAR",          "BASEBALL",     "BD_FIRE",
  "BEACH",        "BENCHPRESS",   "BF_INJECTION", "BIKE_DBZ",     "BIKED",
  "BIKEH",        "BIKELEAP",     "BIKES",        "BIKEV",        "BLOWJOBZ",
  "BMX",          "BOMBER",       "BOX",          "BSKTBALL",     "BUDDY",
  "BUS",          "CAMERA",       "CAR",          "CAR_CHAT",     "CARRY",
  "CASINO",       "CHAINSAW",     "CHOPPA",       "CLOTHES",      "COACH",
  "COLT45",       "COP_AMBIENT",  "COP_DVBYZ",    "CRACK",        "CRIB",
  "DAM_JUMP",     "DANCING",      "DEALER",       "DILDO",        "DODGE",
  "DOZER",        "DRIVEBYS",     "FAT",          "FIGHT_B",      "FIGHT_C",
  "FIGHT_D",      "FIGHT_E",      "FINALE",       "FINALE2",      "FLAME",
  "FLOWERS",      "FOOD",         "FREEWEIGHTS",  "GANGS",        "GFUNK",
  "GHANDS",       "GHETTO_DB",    "GOGGLES",      "GRAFFITI",     "GRAVEYARD",
  "GRENADE",      "GYMNASIUM",    "HAIRCUTS",     "HEIST9",       "INT_HOUSE",
  "INT_OFFICE",   "INT_SHOP",     "JST_BUISNESS", "KART",         "KISSING",
  "KNIFE",        "LAPDAN1",      "LAPDAN2",      "LAPDAN3",      "LOWRIDER",
  "MD_CHASE",     "MD_END",       "MEDIC",        "MISC",         "MTB",
  "MUSCULAR",     "NEVADA",       "ON_LOOKERS",   "OTB",          "PARACHUTE",
  "PARK",         "PAULNMAC",     "PED",          "PLAYER_DVBYS", "PLAYIDLES",
  "POLICE",       "POOL",         "POOR",         "PYTHON",       "QUAD",
  "QUAD_DBZ",     "RAPPING",      "RIFLE",        "RIOT",         "ROB_BANK",
  "ROCKET",       "RUNNINGMAN",   "RUSTLER",      "RYDER",        "SCRATCHING",
  "SEX",          "SHAMAL",       "SHOP",         "SHOTGUN",      "SILENCED",
  "SKATE",        "SMOKING",      "SNIPER",       "SNM",          "SPRAYCAN",
  "STRIP",        "SUNBATHE",     "SWAT",         "SWEET",        "SWIM",
  "SWORD",        "TANK",         "TATTOOS",      "TEC",          "TRAIN",
  "TRUCK",        "UZI",          "VAN",          "VENDING",      "VORTEX",
  "WAYFARER",     "WEAPONS",      "WOP",          "WUZI"
};

Isso irá resolver seu problema.


Obrigado!
Isso resolveu o problema 2:
por que a animação as vezes não vai de primeira?


mas os outros dois problemas persistem Sad


RE: Problemas a lidar com animação - xbruno1000x - 07/04/2021

Código:
os dois executam a animação, mas não aparece

O ApplyAnimation tem um parâmetro opcional que é o forcesync, caso esteja inativo, as animações não são sincronizadas para os outros jogadores.

Citar:forcesync

Defina como 1 para fazer o servidor sincronizar a animação com todos os outros jogadores num raio de streaming (opcional). 2 funciona da mesma forma que 1, mas APENAS aplicará a animação a jogadores em stream, mas NÃO o jogador a ser animado (útil para animações com NPC e animações persistentes quando os jogadores estão a ser streamados).


Para parar uma animação é só dar um
Código:
ClearAnimations(playerid);

se no android não funciona corretamente, aí já é uma questão para o pessoal da área Mobile do fórum.


RE: Problemas a lidar com animação - robertjwx - 07/04/2021

(07/04/2021 01:35)xbruno1000x Escreveu:
Código:
os dois executam a animação, mas não aparece

O ApplyAnimation tem um parâmetro opcional que é o forcesync, caso esteja inativo, as animações não são sincronizadas para os outros jogadores.

Citar:forcesync

Defina como 1 para fazer o servidor sincronizar a animação com todos os outros jogadores num raio de streaming (opcional). 2 funciona da mesma forma que 1, mas APENAS aplicará a animação a jogadores em stream, mas NÃO o jogador a ser animado (útil para animações com NPC e animações persistentes quando os jogadores estão a ser streamados).


Para parar uma animação é só dar um
Código:
ClearAnimations(playerid);

se no android não funciona corretamente, aí já é uma questão para o pessoal da área Mobile do fórum.

Vish, é verdade tava faltando um parametro na animação que era o forcesync...

Valeuzão Wink


RE: Problemas a lidar com animação - WeebSide - 07/04/2021

Estou tendo o mesmo problema eu coloco o forcesync com valor 1 mas so quem execulta o comando que ve a animaçao os outros players não veh a animlib esta certinho o unico anim que funciona para ambos players eo de sentar ai todos conssegue ver mais outros comandos tipo o handsup so que usa o comando que ve a animaçao os outros jogadores não veh