[решено?]Защита торговца от GMов: автомакрос без автостарта

Всё, что касается макро-плагина.

Модератор: 4epT

Правила форума
В форуме макросы "Макросы" разрешено только задавать вопросы по уже существующим макросам и просить помощь по недоработанным своим. При этом таким считается тот макрос который готов не менее чем на 2/3.
Если вы хотите попросить участников сообщества написать вам макрос, это можно сделать в разделе "сервис".
Frag31337
Энтузиаст
Сообщения: 56
Зарегистрирован: Чт мар 27, 2008 3:55 pm

[решено?]Защита торговца от GMов: автомакрос без автостарта

Сообщение Frag31337 »

Вобщем сабж.
Для чего это надо, сделал автомакрос для защиты торгоша:

Код: Выделить всё

automacro SHOP {
	location not prontera 154 53
	call {
		do conf shopAuto_open 0
		do ai off
		do conf dcOnDisconnect 1
	}
}
Защита простейшая сдвинулся с места - вырубил всё и симулируем спящего человека))))
так вот торгоша то и качать иногда надо, так вот мне необходимо чтоб этот автомакрос при старте клиента не стартовал вообще, а запускался только чз relise.
В общем так))

Добавлено хз скока спустя:

Финальная версия сего чуда юда:

Код: Выделить всё

automacro SHOP { 
   location not prontera 154 53 
   call { 
      do conf shopAuto_open 0 
      do ai off 
      do conf dcOnDisconnect 1 
   } 
  priority 1 
  run-once 1
} 

automacro lockonstart { 
  hp > 1 
  call { 
   lock SHOP 
  } 
  run-once 1 
} 

macro moveToShop { 
   do move prontera 
   do move 154 53 
   do ai on 
   do conf shopAuto_open 1 
   do conf dcOnDisconnect 0 
   do conf lockMap 0 
   relise SHOP 
} 

macro moveToKach { 
   do conf shopAuto_open 0 
   do conf lockMap prt_fild02 
   do ai on 
   lock SHOP 
}
Этот макрос решает 1 проблемму из сабжа, 2 проблемма из сабжа автомакр без автостарта решается так :
в автомакрос который нас интересует добавляем кусок кода priority 1 (кто не в курсе что это, идём курить это http://www.openkore.com/wiki/index.php/ ... in_Russian) и добавляем автомакрос который будет лочить автомакрос с приорити 1
Т.К. приорити, если в теле скрипта не говорится обратного, встаёт на 0
то скрипт с lock ом запустится раньше вырубая ненужный нам втомакрос.
Нах это надо:
Допусти ваш чар качается в одной локе, бьёт дорогой лут в другой, и ещё иногда барыжит в городе. В этом случае нам нужно несколько групп независимых автомакросов, значит нам надо менять постоянно чтото в макросстхт, а то что предлагаю я поможет не лазить туда вообще, то есть в начале все автомакросы стопаются а потом вы выбираете нужное вам действие и набираете макро блабла который запустит именно нужную вам группу автомакросов.
Последний раз редактировалось Frag31337 Вс апр 06, 2008 12:57 am, всего редактировалось 6 раз.
Аватара пользователя
piroJOKE
Модератор
Сообщения: 8205
Зарегистрирован: Сб ноя 04, 2006 2:20 am
Сервер RO:: localhost
Откуда: Molvania

Сообщение piroJOKE »

а нафиг тебе "релиз"?
просто напиши макрос, а не авто-макрос, и запускай этот макрос, когда нужно.
Use brain against brain, ai against ai... · как правильно задавать вопросы · faq · download
Frag31337
Энтузиаст
Сообщения: 56
Зарегистрирован: Чт мар 27, 2008 3:55 pm

Сообщение Frag31337 »

Хмм... идея.... СпС посмотрим...Тогда как лучше сделать Через If или вайл?

Добавлено спустя 31 секунду:

а... всё понял....
Аватара пользователя
piroJOKE
Модератор
Сообщения: 8205
Зарегистрирован: Сб ноя 04, 2006 2:20 am
Сервер RO:: localhost
Откуда: Molvania

Сообщение piroJOKE »

И шо вышло?
Use brain against brain, ai against ai... · как правильно задавать вопросы · faq · download
Frag31337
Энтузиаст
Сообщения: 56
Зарегистрирован: Чт мар 27, 2008 3:55 pm

Сообщение Frag31337 »

Код: Выделить всё

macro Def {
 $m = $.map
 $c = $.pos
 :good
 pause 1 
 if ($m = $.map) goto mg
 goto bad
 
 :mg
 if ($c = $.pos) goto good
 
 :bad
  do conf shopAuto_open 0 
  do ai off 
  do conf dcOnDisconnect 1
 stop
}
Вот такое чудо я выдумал, можно конечно сделать от противного, то есть если не равно..... но нах это надо, одни и те же яйца...
pause поставил 1 ибо если больше то шанс открать магаз в тюрьме очень велики.
Аватара пользователя
piroJOKE
Модератор
Сообщения: 8205
Зарегистрирован: Сб ноя 04, 2006 2:20 am
Сервер RO:: localhost
Откуда: Molvania

Сообщение piroJOKE »

Я всё равно не вкуриваю, шо ты такое пытаешься сделать, и чем это лучше скажем такого:

Код: Выделить всё

automacto letzTrade {
	location prontera 70 132
	delay 30
	call {
		do openshop
		do ai off
	}
}
PS: Это - при уже установленных переменных shopAuto_open 0 и dcOnDisconnect 1. А также можно запуск start.exe запихнуть в зацикленный bat-файл.
Последний раз редактировалось piroJOKE Сб апр 05, 2008 12:55 am, всего редактировалось 1 раз.
Use brain against brain, ai against ai... · как правильно задавать вопросы · faq · download
Frag31337
Энтузиаст
Сообщения: 56
Зарегистрирован: Чт мар 27, 2008 3:55 pm

Сообщение Frag31337 »

хотя лучше наварно после метки бэд поставить call ppc
И

Код: Выделить всё

macro ppc {
  do conf shopAuto_open 0 
  do ai off 
  do conf dcOnDisconnect 1
}
И тогда стоп можно вообще убрать

Добавлено спустя 10 минут 14 секунд:

))))) хм.... идея.... pJ ты подошол к вопросу с другого конца....
Сие чудо тоже имеет право на жизнь.....)))) даже больше моего))
ты подошёл к проверке с краю что если стоим тамто, то откроем магаз,
а я сделал более громоздкую конструкцию вида если нас сместили то вырубаем всё нах.....
Признаю твой макрос красивее... возьму к себе на заметку....
хотя есть один минус положение необходимо задавать макросу ручками...
Вот если б можно было в него впихнуть чтоб он ставил мОгОзин там где стоит а потом проверял именно эти координаты.......
но это уже придирки))всё равно постановка в могозин у меня идёт через макрос и я наверно буду пользоваться своим творением.

Добавлено спустя 1 минуту 34 секунды:

Код: Выделить всё

macro moveToShop {
	do ai on
	do conf shopAuto_open 1
	do conf dcOnDisconnect 0
	do conf lockMap 0
	call Def
}


macro moveToKach {
	do conf shopAuto_open 0
	do conf lockMap XXXXX
	do ai on
}

macro Def { 
	$m = $.map 
	$c = $.pos 
	:good 
	pause 1 
	if ($m = $.map) goto mg 
	goto bad 
  
	:mg 
	if ($c = $.pos) goto good 
  
	:bad 
	call ppc
}

macro ppc {
	do conf shopAuto_open 0 
	do ai off 
	do conf dcOnDisconnect 1 
}
Вот так выглядит макросы для торгоша... надо только район кача внести...

Добавлено спустя 4 минуты 4 секунды:

тоько надо ещё в макрос moveToKach вставить убийство макроса Def.
Как это организовать я пока не знаю))
Ra3iel_
Начинающий
Сообщения: 46
Зарегистрирован: Пн ноя 20, 2006 1:58 am

Сообщение Ra3iel_ »

мб впихнуть в кач "lock Def"? А в шоп потом релиз
Святой ангел смерти...
Frag31337
Энтузиаст
Сообщения: 56
Зарегистрирован: Чт мар 27, 2008 3:55 pm

Сообщение Frag31337 »

Мб.... Провёл ловлю багов..... блин оказывается пока запущен макрос
Команды типа фгещырз из конфига не работают....Тоесть после вылета из игры и последующего подключения магазин не открывается. Так что я решил вернуться к началу и всё таки найти способ сделать автомакрос без старта в начале.Как мне тут посоветывал один человек можно попытаться поиграть с приоритетом автомакросов.

пример

Код: Выделить всё

automacro lockonstart {
  lock SHOP
  priority 0
}

automacro SHOP { 
   location not prontera 154 53 
   call { 
      do conf shopAuto_open 0 
      do ai off 
      do conf dcOnDisconnect 1 
   } 
  priority 1
}
Добавлено спустя 3 минуты 24 секунды:

в этом виде SHOP не будет стартавать с самого начала, а будет закрыт lockonstart ом в самом начале тк имеет более низкий приоритет

Код: Выделить всё

macro moveToShop { 
   move prontera
   move 154 53
   do ai on 
   do conf shopAuto_open 1 
   do conf dcOnDisconnect 0 
   do conf lockMap 0 
   relise SHOP
}
Добавлено спустя 4 минуты 11 секунд:

Код: Выделить всё

automacro SHOP { 
   location not prontera 154 53 
   call { 
      do conf shopAuto_open 0 
      do ai off 
      do conf dcOnDisconnect 1 
   } 
  priority 1
}

automacro lockonstart { 
  hp > 1
  call {
	lock SHOP
  } 
  run-once 1
} 

macro moveToShop { 
   move prontera 
   move 154 53 
   do ai on 
   do conf shopAuto_open 1 
   do conf dcOnDisconnect 0 
   do conf lockMap 0 
   relise SHOP 
}

macro moveToKach {
	do conf shopAuto_open 0
	do conf lockMap prt_fild02
	do ai on
	lock SHOP 
}
Вот так это выглядит пока что

Добавлено спустя 7 минут 19 секунд:

не работает, автомакрос SHOP стартует позже ввиду этого, автомакрос killonstart не находит его и не может залочить...
Последний раз редактировалось Frag31337 Сб апр 05, 2008 2:06 pm, всего редактировалось 1 раз.
Аватара пользователя
piroJOKE
Модератор
Сообщения: 8205
Зарегистрирован: Сб ноя 04, 2006 2:20 am
Сервер RO:: localhost
Откуда: Molvania

Сообщение piroJOKE »

Флуд:
А тебе не кажется, что "moveToKach" - это уже оффтоп?
Use brain against brain, ai against ai... · как правильно задавать вопросы · faq · download
Frag31337
Энтузиаст
Сообщения: 56
Зарегистрирован: Чт мар 27, 2008 3:55 pm

Сообщение Frag31337 »

Всё работает поправил пред идущий код))) Облажелся как сельский
Аватара пользователя
piroJOKE
Модератор
Сообщения: 8205
Зарегистрирован: Сб ноя 04, 2006 2:20 am
Сервер RO:: localhost
Откуда: Molvania

Сообщение piroJOKE »

Флуд:
Если закончишь, выдели пост с правильно работающим макросом, может он кому из людей пригодиццо!
Use brain against brain, ai against ai... · как правильно задавать вопросы · faq · download
Frag31337
Энтузиаст
Сообщения: 56
Зарегистрирован: Чт мар 27, 2008 3:55 pm

Сообщение Frag31337 »

Всё pJ закрывай тему, проблемма решена полностью..... провёл полную проверку..... Вот итоговый код:

Код: Выделить всё

automacro SHOP { 
   location not prontera 154 53 
   call { 
      do conf shopAuto_open 0 
      do ai off 
      do conf dcOnDisconnect 1 
   } 
  priority 1
}

automacro lockonstart { 
  hp > 1
  call {
	lock SHOP
  } 
  run-once 1
} 

macro moveToShop { 
   do move prontera 
   do move 154 53 
   do ai on 
   do conf shopAuto_open 1 
   do conf dcOnDisconnect 0 
   do conf lockMap 0 
   relise SHOP 
}

macro moveToKach {
	do conf shopAuto_open 0
	do conf lockMap prt_fild02
	do ai on
	lock SHOP 
}
moveToKach я показал чтоб народ не начал отключать автомакросы и изменённые параметры ручками.... довёл код до состояния полуавтомат, человеку надо запомнить всего 2 команды,
macro moveToKach
macro moveToShop

Добавлено спустя 8 минут 9 секунд:

Вру.... не закончил...

Добавлено спустя 7 минут 29 секунд:

Странно.... макрос moveToShop вызывает ошибку синтаксиса......
но ошибку я не вижу....

Добавлено спустя 2 минуты 25 секунд:

Во дурак... мув через ду пишется... во баклан..... поправил в коде...
Frag31337
Энтузиаст
Сообщения: 56
Зарегистрирован: Чт мар 27, 2008 3:55 pm

Сообщение Frag31337 »

собственно проблемма в чём, хочется сделать так чтоб координаты и карта брались текущие и автомакрос ШОП проверял именно по текущим координатам.... но чёт не выходит, проверял через log в автомакрос заданные мной переменные приходят благополучно, но проверяться по ним отказывается на отрез..... ЧТО ДЕЛАТЬ?
Да я извращенец.... и не надо тыкать в меня пальцем....

Код: Выделить всё

macro moveToShop { 
	$c = $.pos
	$m = $.map
	do ai on
	do conf shopAuto_open 1
	do conf dcOnDisconnect 0
	do conf lockMap 0
	release SHOP
}

automacro SHOP { 
   location not $m $c
   call { 
      do conf shopAuto_open 0 
      do ai off 
      do conf dcOnDisconnect 1 
   } 
  priority 1
}

automacro lockonstart { 
  hp > 1
  call {
	lock SHOP
  } 
  run-once 1
} 

Последний раз редактировалось Frag31337 Вс апр 06, 2008 1:10 am, всего редактировалось 1 раз.
Аватара пользователя
piroJOKE
Модератор
Сообщения: 8205
Зарегистрирован: Сб ноя 04, 2006 2:20 am
Сервер RO:: localhost
Откуда: Molvania

Сообщение piroJOKE »

Frag31337
Ты для начала сформулируй задачу на русском языке. Сформулируй так, чтобы ее понял даже дошкольник. А тогда уже можно и описывать её макросом.
Use brain against brain, ai against ai... · как правильно задавать вопросы · faq · download
Ответить