• 0
John_Silver

[закрыто] Проблема с запуском анимацией

Question

Помогите плиз, анимации запускаются только со второва раза. То есть если я введу первый раз команду /time, то анимация не запустится, но если введу ещё раз, то уже сработает.

Подскажите, что я не так делаю?

Вот коды с анимацией:

Спойлер
CMD:time(playerid, params[])
{
    new h,m,str[200];
    gettime(h,m);// записваем время (о
    new day,month,year;// то-же самое только с временем
    getdate(year,month,day);
 
    format(str,sizeof(str), "{FFFFFF}На данный момент сейчас: \n\n Время: {1e90ff}%d:%d\n {FFFFFF}Дата:\t {34c924}%d.%d.%d",h,m,day,month,year);
    SPD(playerid,27,DSM,"Служба точного времени",str,"Закрыть","");
    ApplyAnimation(playerid,"COP_AMBIENT","Coplook_watch",4.1,0,0,0,0,0,1);
    return 1;
}
Спойлер
CMD:s(playerid, params[])
{
    if(sscanf(params, "s[118]", params[0])) return SCM(playerid, -1, "{FFA500}Подсказка {FFFFFF}| Используйте {FFA500}/s [текст]");
    new string[144];
    GetPlayerName(playerid, Player[playerid][pName], 24);
    format(string, sizeof string, "%s[%d] кричит: %s", Player[playerid][pName], playerid, params[0]);
    ProxDetector(30, playerid, string, 0xFFD700FF, 0xFFD700FF, 0xFFD700FF, 0xFFD700FF, 0xFFD700FF);
    SetPlayerChatBubble(playerid, params[0], 0xFFD700FF, 20, 7500);
    if(GetPlayerState(playerid) == PLAYER_STATE_ONFOOT)
    {
        ApplyAnimation(playerid, "ON_LOOKERS", "shout_01", 4.1, 0, 0, 0, 0, 0, 0);
    }
    SetPlayerChatBubble(playerid, params[0], 0xFFD700FF, 20, 7500);
    return 1;
}

 

Share this post


Link to post

8 answers to this question

  • -1

undefined symbol "null", я конечно понимаю что символ не найден, но мне надо тупо переменную null создать?

Да даже если просто в скобки взять, то работать не будет. Вроде бы в OnPlayerConnect всё закинул, и не работает.

 

Edited by John_Silver

Share this post


Link to post
  • 1

@John_Silver  Тогда:

Как верно подметил nazikUA они подгружаются.

попробуйте вставить в конце мода вот такой код:

stock ReloadAnimLib(playerid, animlib[])
{
   ApplyAnimation(playerid,animlib,null",0.0,0,0,0,0,0);
   return 1;
}
stock ReloadAllAnimLibs(playerid)
{
    new anim_libs[] = {"AIRPORT","Attractors","BAR","BASEBALL","BD_FIRE","BEACH","benchpress","BF_injection",
    "BIKED","BIKEH","BIKELEAP","BIKES","BIKEV","BIKE_DBZ","BLOWJOBZ","BMX",
    "BOMBER","BOX","BSKTBALL","BUDDY","BUS","CAMERA","CAR","CARRY",
    "CAR_CHAT","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","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","RUSTLER","RYDER","SCRATCHING","SHAMAL",
    "SHOP","SHOTGUN","SILENCED","SKATE","SMOKING","SNIPER","SPRAYCAN","STRIP",
    "SUNBATHE","SWAT","SWEET","SWIM","SWORD","TANK","TATTOOS","TEC",
    "TRAIN","TRUCK","UZI","VAN","VENDING","VORTEX","WAYFARER","WEAPONS","WUZI"};
    for(new i = 0; i < sizeof(anim_libs); i++) ReloadAnimLib(anim_libs[i]);
    return 1;
}

Дальше, в OnPlayerConnect вам нужно перед return добавить ReloadAllAnimLibs(playerid), то есть вот так:

public OnPlayerConnect(playerid)
{
    /* Тут Ваш код
    Его желательно сейчас не трогать*/
    ReloadAllAnimLibs(playerid);
    return 1;
    /*Если у Вас в OnPlayerConnect уже есть return,
    то просто перед ним, а точнее строчкой выше
    добавьте функцию ReloadAllAnimLibs(playerid);*/
}

Это подгружает все библиотеки анимаций на playerid при входе, должно помочь.

Share this post


Link to post
  • 0

Наверняка первый раз, анимации прогружаються

Share this post


Link to post
  • 0

Здравствуйте, в конце паблика OnPlayerConnect добавьте следующее:

ClearAnimations(playerid);
return 1;

То есть паблик должен выглядеть примерно так:

public OnPlayerConnect(playerid)
{
    /* Тут Ваш код
    Его желательно сейчас не трогать*/
    ClearAnimations(playerid);
    return 1;
    /*Если у Вас в OnPlayerConnect уже есть return,
    то просто перед ним, а точнее строчкой выше
    добавьте функцию ClearAnimations(playerid);*/

 

Edited by Oleg Sleash

Share this post


Link to post
  • 0

@Oleg SleashНе работает. Хоть я перезагружаю мод хоть нет. Достаточно перезайти и все анимации так и будут врубаться через 1 использование

Share this post


Link to post
  • 0

@John_Silver Нет, я просто забыл кавычку..

Вот этот код вставьте вместо прошлого стока:

stock ReloadAnimLib(playerid, animlib[])
{
   ApplyAnimation(playerid,animlib,"null",0.0,0,0,0,0,0);
   return 1;
}

 

Edited by Sleash

Share this post


Link to post
  • 0

@Sleash Всё равно не работает, всё сделал как сказали

Share this post


Link to post
  • 0

@John_Silver попробуйте вставить в onplayerconnect 

Спойлер

    if(GetPVarInt(playerid, "anim_load") != 1)
    {
        PreloadAnimLib(playerid,"SMOKING");
        PreloadAnimLib(playerid,"BD_FIRE");
        PreloadAnimLib(playerid,"BEACH");
        PreloadAnimLib(playerid,"RAPPING");
        PreloadAnimLib(playerid,"BOMBER");
        PreloadAnimLib(playerid,"BSKTBALL");
        PreloadAnimLib(playerid,"COP_AMBIENT");
        PreloadAnimLib(playerid,"GRAVEYARD");
        PreloadAnimLib(playerid,"RYDER");
        PreloadAnimLib(playerid,"MISC");
        PreloadAnimLib(playerid,"ON_LOOKERS");
        PreloadAnimLib(playerid,"RIOT");
        PreloadAnimLib(playerid,"PARK");
        SetPVarInt(playerid, "anim_load",1);

 

 

Share this post


Link to post
Guest
This topic is now closed to further replies.
  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content