Вопросы

John_Silver
Новичок

Помогите плиз, анимации запускаются только со второва раза. То есть если я введу первый раз команду /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;
}

 

Поделиться сообщением


Ссылка на сообщение

8 ответов на этот вопрос

  • -1
John_Silver
Новичок

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

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

 

Отредактировано пользователем John_Silver

Поделиться сообщением


Ссылка на сообщение
  • 1
Sleash
Завсегдатый

@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 при входе, должно помочь.

Поделиться сообщением


Ссылка на сообщение
  • 0
Sleash
Завсегдатый

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

ClearAnimations(playerid);
return 1;

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

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

 

Отредактировано пользователем Oleg Sleash

Поделиться сообщением


Ссылка на сообщение
  • 0
John_Silver
Новичок

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

Поделиться сообщением


Ссылка на сообщение
  • 0
Sleash
Завсегдатый

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

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

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

 

Отредактировано пользователем Sleash

Поделиться сообщением


Ссылка на сообщение
  • 0
itz.dev
Активный

@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);

 

 

Поделиться сообщением


Ссылка на сообщение
Гость
Эта тема закрыта для публикации ответов.
  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

  • Похожий контент

    • Korochansky
      От Korochansky
      Настало время объявить о скором выпуске первого релиза среды разработки под названием Spawn.

      В настоящее время программа находится на заключительных этапах доработки кода и локализации интерфейса.
      Таким образом, в течение следующей недели будет выпущена быстрая и современная среда разработки, обладающая следующими возможностями (о которых я расскажу сейчас, а о других — позже):
       
      Полнофункциональный локальный Git: 
      Индексирование, фиксации, индикаторы состояния и мягкий/жесткий сброс до любой точки сохранения одним щелчком мыши. Разрабатывайте свой игровой сервер, не боясь его сломать.
      Новички могут рассматривать это как историю кодовой базы вашего сервера (что и есть на самом деле).
       
      Чистый UTF-8 (без BOM): 
      Полный отказ от устаревшей кодировки Windows-1251 (CP1251) для абсолютной стабильности и идеальной совместимости с Git.
      Реализация поддержки CP1251 привела бы к нестабильному поведению программы и ухудшила бы пользовательский опыт.
       
      История изменений строк: Редактор выделяет измененные строки в реальном времени в полях рядом с номерами строк. Это позволяет мгновенно видеть границы изменений, внесенных с момента открытия файла.
       
      Сопоставление и выделение фигурных скобок: мгновенное выделение открывающих и закрывающих фигурных скобок для быстрой навигации по структуре кода и защиты от ошибок компиляции.
       
      Интеграция с SAMPCTL: готовая к использованию автоматизация процессов. Сборка, запуск сервера и менеджер зависимостей (управление библиотеками и плагинами) работают напрямую из интерфейса редактора.
       
      И многое другое...
       
      И самое главное: проект будет с открытым исходным кодом под лицензией GPLv3!
      Следите за новостями о выпуске в репозитории: https://github.com/daniilkorochansky/spawn
    • KodBi
      От KodBi
      шапка
      по одиночке работают
      нужны оба