Автоматизация и боты

 Помощь      Поиск      Пользователи
Сайт Кибор     Программируемый кликер Кибор     Видео обучение     Заказать бот

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

> Без описания
AdryV
Отправлено: 18 Октября, 2018 - 16:34:57
Post Id



Пользователь
Специалист


Покинул форум
Сообщений всего: 449
Дата рег-ции: Май 2016  
Репутация: 11




есть функция
CODE:

pers_kordX=r_mem_kord(pers_ykaz+8508);

function r_mem_kord(int adress)
{
if(readmemory(#xp[0], 4, adress, prc)!=0)
{
perevernut_masiv();
double res=codhexd(#xpp[0]);
return res;
}
}

как правильней сделать что бы если неудачно/не считало/ну итд. считало с памяти или что бы если вернуло 0
что бы не возвращало 0 или -1
думал просто сделать у функции 2 принимающих параметра чет типа
CODE:

pers_kordX=r_mem_kord(pers_ykaz+8508, pers_kordX);

function r_mem_kord(int adress, double old_kord)
{
if(readmemory(#xp[0], 4, adress, prc)!=0)
{
perevernut_masiv();
double res=codhexd(#xpp[0]);
if(res<1)res=old_kord;
return res;
}
else return old_kord;
}

или есть более разумный вариант?
 
 Top
Kibor
Отправлено: 18 Октября, 2018 - 17:45:48
Post Id



Администратор
Эксперт


Покинул форум
Сообщений всего: 8218
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 357




CODE:
double pers_kordX;

if (r_mem_kord(pers_ykaz+8508)==-1)messagebox ("error -1");


function r_mem_kord(int adress)
{
if(readmemory(#xp[0], 4, adress, prc)!=0)
{
perevernut_masiv();
pers_kordX=codhexd(#xpp[0]);
return 1;
}
return -1;
}
 
 Top
AdryV
Отправлено: 18 Октября, 2018 - 17:58:34
Post Id



Пользователь
Специалист


Покинул форум
Сообщений всего: 449
Дата рег-ции: Май 2016  
Репутация: 11




в вашем примере функция не универсальна
у меня много переменных вызывает ее и нужо получить более менее приемлемый ответ...

(Отредактировано автором: 18 Октября, 2018 - 17:59:37)

 
 Top
Kibor
Отправлено: 18 Октября, 2018 - 18:22:39
Post Id



Администратор
Эксперт


Покинул форум
Сообщений всего: 8218
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 357




исходя из задачи и был разумный код.
более универсально?
CODE:
double pers_kordX;
double pers_kordX1;
double pers_kordX2;

if (r_mem_kord(pers_ykaz+8508, #pers_kordX)==-1)messagebox ("error -1");
if (r_mem_kord(pers_ykaz+8508, #pers_kordX1)==-1)messagebox ("error -1");
if (r_mem_kord(pers_ykaz+8508, #pers_kordX2)==-1)messagebox ("error -1");


function r_mem_kord(int adress, double #A)
{
if(readmemory(#xp[0], 4, adress, prc)!=0)
{
perevernut_masiv();
A=codhexd(#xpp[0]);
return 1;
}
return -1;
}
 
 Top
AdryV
Отправлено: 18 Октября, 2018 - 19:23:58
Post Id



Пользователь
Специалист


Покинул форум
Сообщений всего: 449
Дата рег-ции: Май 2016  
Репутация: 11




спс за примерПодмигивание
не могли бы объяснить в чем разница между моим примером и вашим
что в вашем примере в итоге вызывается цикл if что в моем....
также функция что у меня что у вас принимает 2 параметра
так же что у вас что у меня при не удаче остается старое...
но
в общем оригинал
CODE:
if(readmemory(#xp[0], 4, pers_ykaz+8508, prc)!=0)
{
perevernut_masiv();
pers_kordX=codhexd(#xpp[0]);
}

работает более исправно... (в моем не маленьком скрипте куда стабильней работает)
тоисть
при неудаче он просто проходит дальше и оставляет старое значение и не получаются багнутые значения из-за которых перс бежит в стены или на месте буксует....

(Отредактировано автором: 18 Октября, 2018 - 19:27:54)

 
 Top
Kibor
Отправлено: 18 Октября, 2018 - 19:57:56
Post Id



Администратор
Эксперт


Покинул форум
Сообщений всего: 8218
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 357




А что сейчас толкового ваша функция первая возвращает?

Или вычисленную величину координаты, или то что ей передали (если величина < 1 или неудача)
И как это использовать?

В моем варианте если -1 - ошибка. Иначе все ок и в
double pers_kordX;
double pers_kordX1;
double pers_kordX2;
координаты.

Для нормальной логики это удобнее. Четко и ясно.

Если вам зачем то надо возвращать белеберду типа вашей первой функции, то вы о мотивах умолчали. Я лично не вижу смысла возврата переданного значения, если можно вернуть -1 и сразу ясно что это ошибка.
(Добавление)
А вот мотивы вы только сейчас раскрыли
 AdryV пишет:
при неудаче он просто проходит дальше и оставляет старое значение и не получаются багнутые значения из-за которых перс бежит в стены или на месте буксует....
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 2 (гостей: 2, зарегистрированных: 0)
« Вопросы и решение проблем »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 




Powered by