Доброго времени суток, хочу узнать, как лучше всего сделать таймер для каждого NPC на сервере.
У меня есть 1 очень интересная мысль, и для этого мне нужен таймер, только вот какой, 1 глобальный, или для каждого NPC свой..
Доброго времени суток, хочу узнать, как лучше всего сделать таймер для каждого NPC на сервере.
У меня есть 1 очень интересная мысль, и для этого мне нужен таймер, только вот какой, 1 глобальный, или для каждого NPC свой..
Последний раз редактировалось Сергей; 24.08.2019 в 20:10. Причина: Смена вопроса
Подыму
Опиши хотя бы вкратце свою интересную мысль и тогда станет понятно какой в твоей ситуации таймер будет лучше.
Связаться со мной в VK можно через личные сообщения этой группы
Заказы не принимаю
Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
Великих идей полно, на них нет спроса.
Воплощение идеи в законченную игру требует долгой работы,
таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
Предложить идею просто, воплотить – вот в чём проблема
Steve Pavlina
Если быть точным, я хочу дать боту мысли, допустим 1 раз в 50 секунд, он должен показывать мысль, или выполнять какую-то анимацию
И ещё такой вопрос, не будет ли тут лишним использование: Streamer_SetIntData
Ибо я его использую в команде, допустим /setbottext id_bot text
PHP код:
Streamer_SetIntData(STREAMER_TYPE_3D_TEXT_LABEL, Actor3DtextId[Actor_Serv[bot_id]] , E_STREAMER_WORLD_ID, GetDynamicActorVirtualWorld(Actor_Serv[bot_id]));
Последний раз редактировалось Сергей; 24.08.2019 в 19:45.
Если мысли будут появляться всегда и у всех ботов сразу - можно один таймер на всех.
Если в определённое время у нескольких ботов сразу, а все остальные просто должны стоять - один таймер + foreach или индивидуальные таймеры.
А если может быть так, что из всех ботов нужно показать только для одного мысли - индивидуальный таймер.
Хотя, на самом деле, если в таймере будет простецкий код, то особой разницы не будет тут.
Касаемо Streamer_SetIntData не совсем понял. Что именно ты тут делаешь и почему использование функции может быть вдруг лишней?
Связаться со мной в VK можно через личные сообщения этой группы
Заказы не принимаю
Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
Великих идей полно, на них нет спроса.
Воплощение идеи в законченную игру требует долгой работы,
таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
Предложить идею просто, воплотить – вот в чём проблема
Steve Pavlina
Вообщем, планирую некоторых одарить мыслями, других и мыслями и действиями, теперь вопрос третий, лучше через стример делать Npc или стандартно?
- - - Добавлено - - -
Попробовал сделать функцию для создания ботов, но, она работает криво, кривость в том, что неправильно указывается
ActorID
Т.е допустим использую:
На конце bot_id выдается вообще неправильно... проблема в том, что если использовать таймер, bot_id оказывается невернымPHP код:
Actor_Serv[0] = CreateDynamicActor_Server(150, -1424.1647,-1125.9562,1521.9900,91.6332, 0, 100.0, 10, 1);
т.е, в таймере я намерен использовать то что я хочу сделать, допустим дать боту мысль, по итогу чтобы применить к указанному боту, а именно Id: 0, у меня ничего не получится... ибо всё перепутано
PHP код:
stock CreateDynamicActor_Server(model, Float:x,Float:y, Float:z, Float:a,invulnerable = 1, Float:health = 100.0, worldid = -1, interiorid = -1, playerid = -1, Float:streamdistance = STREAMER_ACTOR_SD, areaid = -1, priority = 0)
{
new id_actor = CreateDynamicActor(model, x,y,z,a,invulnerable,health, worldid, interiorid, playerid,streamdistance, areaid, priority);
if(id_actor != INVALID_ACTOR_ID)
{
// создать 3дтекст для разговора
Actor3DtextId[id_actor] = CreateDynamic3DTextLabel("-",COLOR_ALOGIN,x,y,z+ACTOR_CHAT_TEXT_OFFSET_HEIGHT,5.0,INVALID_PLAYER_ID,INVALID_VEHICLE_ID,1, worldid, interiorid, -1, 10.0);
Streamer_SetIntData(STREAMER_TYPE_3D_TEXT_LABEL, Actor3DtextId[id_actor] , E_STREAMER_WORLD_ID, MAX_ACTORS);
}
return id_actor;
}
Последний раз редактировалось Сергей; 24.08.2019 в 21:13.
1) Что за bot_id?
2) Что ты пытаешься сделать вот этим:
PHP код:
Streamer_SetIntData(STREAMER_TYPE_3D_TEXT_LABEL, Actor3DtextId[id_actor] , E_STREAMER_WORLD_ID, MAX_ACTORS);
Связаться со мной в VK можно через личные сообщения этой группы
Заказы не принимаю
Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
Великих идей полно, на них нет спроса.
Воплощение идеи в законченную игру требует долгой работы,
таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
Предложить идею просто, воплотить – вот в чём проблема
Steve Pavlina
Покопавшись, переделал функцию:
В итоге таймер не реагирует на NPC с идом 0, через принт показывает, что таймер для этого ида npc есть, а вот реакции не поступаетPHP код:
stock CreateDynamicActor_Server(id_actor,model, Float:x,Float:y, Float:z, Float:a,invulnerable = 1, Float:health = 100.0, worldid = -1, interiorid = -1, playerid = -1, Float:streamdistance = STREAMER_ACTOR_SD, areaid = -1, priority = 0)
{
new bot_id = CreateDynamicActor(model, x,y,z,a,invulnerable,health, worldid, interiorid, playerid,streamdistance, areaid, priority);
if(bot_id != INVALID_ACTOR_ID)
{
Actor3DtextId[bot_id] = CreateDynamic3DTextLabel("-",COLOR_ALOGIN,x,y,z+ACTOR_CHAT_TEXT_OFFSET_HEIGHT,5.0,INVALID_PLAYER_ID,INVALID_VEHICLE_ID,1, worldid, interiorid, -1, 10.0);
ActorFirstPos[bot_id][0] = x;
ActorFirstPos[bot_id][1] = y;
ActorFirstPos[bot_id][2] = z;
ActorFirstPos[bot_id][3] = a;
new control_summ = random(123123)+random(123);
if(Actor_Timer[id_actor] == 0)
{
Actor_Timer[id_actor] = SetTimerEx("OnActorTimer", 2000, true, "dd",id_actor,control_summ);
Actor_ControlSumm[id_actor] = control_summ;
}
}
return bot_id;
}
По поводу, я и спросил, она будет лишней, или нет...PHP код:
Streamer_SetIntData
Заменить 3d text в виртуальном мире хотел, в котором находиться бот, не стоит этого делать?
Последний раз редактировалось Сергей; 24.08.2019 в 21:34.
Использовать Streamer_SetIntData прямо после создания 3d-текста - странно, ибо виртуальный мир можно задать и в CreateDynamic3dText.
И почему с одними переменными ты работаешь через "bot_id", а с другими через "id_actor"?
Связаться со мной в VK можно через личные сообщения этой группы
Заказы не принимаю
Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
Великих идей полно, на них нет спроса.
Воплощение идеи в законченную игру требует долгой работы,
таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
Предложить идею просто, воплотить – вот в чём проблема
Steve Pavlina
Последний раз редактировалось Сергей; 24.08.2019 в 22:17.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)