Кибор » Кибор - Интегрированная среда разработки ботов » Вопросы и решение проблем » подскажите как привести к нормальному виду

Страниц (1): [1]
 

1. AdryV - 19 Декабря, 2017 - 14:38:41 - перейти к сообщению
CODE:
if(kord_dist_fix<=max_kord_dist_fix)
{
for(int yy=0; yy<100; yy++)
{
if(mob_adress[yy]>0)
{
if(mob_xp[yy]>0) //это нужно будет привязать к полю эдит
{
if(mob_dist_kord_dist_fix[yy]<max_kord_dist_fix) // это нужно будет привязать к галке
{
if(mob_id[yy]==formatsn(text_edit0[7]) || formatsn(text_edit0[7])==0) //это привзязать к полю эдит
{
if(mob_dist[yy]<=max_mob_dist && mob_dist[yy]>=min_mob_dist)
{
if(mob_dist[yy]<posl_dist)
{
posl_dist=mob_dist[yy];
tt=yy;
}
}
}
}
}
}
}
}else kord_fix();

тоисть как сделать что бы можно было включать и выключать проверки, пробовал через функции но это реально каша получается... да и скрипт почему то медленнее начинает работать
2. AdryV - 20 Декабря, 2017 - 01:08:10 - перейти к сообщению
чель реально ток такой способ?
код (Отобразить)

(Добавление)
код (Отобразить)

как еще можно упростить???... на этом мои знания заканчиваются
3. 007wan - 20 Декабря, 2017 - 07:01:33 - перейти к сообщению
 AdryV пишет:
CODE:
if(kord_dist_fix<=max_kord_dist_fix)
{
for(int yy=0; yy<100; yy++)
{
if(mob_adress[yy]>0)
{
if(mob_xp[yy]>0) //это нужно будет привязать к полю эдит
{
if(mob_dist_kord_dist_fix[yy]<max_kord_dist_fix) // это нужно будет привязать к галке
{
if(mob_id[yy]==formatsn(text_edit0[7]) || formatsn(text_edit0[7])==0) //это привзязать к полю эдит
{
if(mob_dist[yy]<=max_mob_dist && mob_dist[yy]>=min_mob_dist)
{
if(mob_dist[yy]<posl_dist)
{
posl_dist=mob_dist[yy];
tt=yy;
}
}
}
}
}
}
}
}else kord_fix();

тоисть как сделать что бы можно было включать и выключать проверки, пробовал через функции но это реально каша получается... да и скрипт почему то медленнее начинает работать

Объеденить все условия if в одну строчку:
CODE:
if(mob_adress[yy]>0 && mob_xp[yy]>0 && mob_dist_kord_dist_fix[yy]<max_kord_dist_fix && mob_id[yy]==formatsn(text_edit0[7]) || formatsn(text_edit0[7])==0 && mob_dist[yy]<=max_mob_dist && mob_dist[yy]>=min_mob_dist && mob_dist[yy]<posl_dist)
{
//тут твой код
}
4. AdryV - 20 Декабря, 2017 - 07:32:26 - перейти к сообщению
 007wan пишет:
Объеденить все условия if в одну строчку:

эммм если я не ошибаюсь то так же как и у меня не будет возможности сделать включение или отключение определенной проверки
к примеру мне но время работы скрипта нужно отключить/включить проверку Ид моба
mob_id[yy]==formatsn(text_edit0[7]) || formatsn(text_edit0[7])==0
или любого другого условия....
как я в середине условия вставлю проверку стоит ли галка? или как я потом сделаю в условии если и тд...?
5. Zireael - 20 Декабря, 2017 - 09:25:51 - перейти к сообщению
Всегда 100 мобов надо проверять?
CODE:
for(int yy=0; yy<100; yy++)
{
if(mob_adress[yy]>0)
{
}
}

Если нет, то проще так.
CODE:
for(int yy=0; yy<100 && mob_adress[yy] > 0; yy++)
{
}

 Цитата:
к примеру мне но время работы скрипта нужно отключить/включить проверку Ид моба

CODE:
if (func(yy) > 0)
{
// следующее условие
}

function func(int yy)
{
if(flag_check[0]==1) // если стоит галка, то проверяем условие
{
if(mob_dist_kord_dist_fix[yy]<max_kord_dist_fix) // если истина
{
return 3; // возвращем 3
}
else // иначе
{
return -1; // возвращем -1
}
}
return 3; // если галка не стоит, возвращаем больше 0, чтобы условие было истиной
}
6. AdryV - 20 Декабря, 2017 - 09:55:12 - перейти к сообщению
 Zireael пишет:
for(int yy=0; yy<100 && mob_adress[yy] > 0; yy++)

это упростит скрипт спасибо

а вот насчет остального смысл такой же как у меня или я чет не понимаю

код (Отобразить)

по моему примеру:
тоисть если функция возвращает=3-нашло, =2 не нашло цикл обрывается
если не дошло до условия в вызываемой функции тоисть не стоит галка или не соответствует условию то функция возвращает -1
в итоге если -1 то пропускает, если 2 то обрывает, если 3 то продолжает
это самый оптимальный вариант?
7. Kibor - 20 Декабря, 2017 - 10:17:31 - перейти к сообщению
 Цитата:
function boi()
{
//
if(kord_dist_fix<=max_kord_dist_fix)
{
for(int yy=0; yy<100 && mob_adress[yy]>0 && mob_xp[yy]>0; yy++)
{
int h, j, i;
h=proverit_mob_xp(yy);
j=proverit_radiys(yy);
if(h!=2){j=proverit_radiys(yy);}
if(h!=2 && j!=2){proverit_mob_id(yy);}
if(h!=2 && j!=2 && proverit_mob_id()!=2){func2(yy);}
}
}else kord_fix();
}


типа такого. сто раз не надо функции вызывать..
8. Zireael - 20 Декабря, 2017 - 10:20:56 - перейти к сообщению
 Цитата:
if(proverit_mob_xp()!=2){proverit_radiys(yy);}
if(proverit_mob_xp()!=2 && proverit_radiys()!=2){proverit_mob_id(yy);}
if(proverit_mob_xp()!=2 && proverit_radiys()!=2 && proverit_mob_id()!=2){func2(yy);}

Нет смысла проверять radiys, если у моба нет хп, т. е. условия должны быть вложенные.
CODE:
function boi()
{
//
if(kord_dist_fix<=max_kord_dist_fix)
{
for(int yy=0; yy<100 && mob_adress[yy]>0 && mob_xp[yy]>0; yy++)
{
if(proverit_mob_xp(yy)!=2)
{
if(proverit_radiys(yy)!=2) // проверит радиус только если у моба есть хп
{
if(proverit_mob_id(yy)!=2) // проверит id если у моба есть хп и подходит радиус
{
func2(yy); // если у моба есть хп, подходит радиус и id
}
}
}
}
}else kord_fix();
}

И логичнее сначала проверять id, потом радиус и хп. Смысл хп проверять, если моб далеко.
9. Kibor - 20 Декабря, 2017 - 10:51:37 - перейти к сообщению
 Zireael пишет:
Нет смысла проверять

особо не вникал. просто смысл показал
10. AdryV - 20 Декабря, 2017 - 11:57:07 - перейти к сообщению
Всем спасибо разобрался Подмигивание Поклон

Powered by ExBB FM 1.0 Final