Yoko

All sides of Injection
It is currently 2025-12-21 21:53:48

All times are UTC+02:00




Post new topic  Reply to topic  [ 14 posts ] 
Author Message
PostPosted: 2005-07-04 07:34:25 
Offline

Joined: 2005-05-03 11:51:04
Posts: 108
Location: KDK Elite Group (c)
Собсна сабж.К примеру если есть такой саб...
Code:
sub main()
repeat
<набор команд и условий>
fgonext() - вызов процедуры (естественно пока она не окончиться то скрипт дальше не идет)
until false
end sub

sub control()
while not uo.dead()
if uo.life<100 then
uo.exec('terminate main')
wend
end if


Так вот если в определенный момент времени условие в сабе control становиться истинным то саб main теминейтиться! пральна ? ДА! - НО!!
Если в этот момент процедура main вызвалал процедуру fgonext() и та в свою очередь еще не закончилась то терминейт main НЕ происходит!!

Хелпните парни =( мож я че торможу ?


Top
   
 Post subject:
PostPosted: 2005-07-04 09:48:13 
Offline
Junior Expert
User avatar

Joined: 2004-11-13 00:43:55
Posts: 474
Location: Киберзадроцк
Поставь, поможет )
Code:
   UO.Exec('terminate all')
   Wait(200)
   UO.Exec('terminate all')
   Wait(200)
   UO.Exec('terminate all')
   Wait(200)
   UO.Exec('terminate all')


Top
   
 Post subject:
PostPosted: 2005-07-04 10:05:50 
Offline

Joined: 2005-05-03 11:51:04
Posts: 108
Location: KDK Elite Group (c)
666Man666 wrote:
Поставь, поможет )
Code:
   UO.Exec('terminate all')
   Wait(200)
   UO.Exec('terminate all')
   Wait(200)
   UO.Exec('terminate all')
   Wait(200)
   UO.Exec('terminate all')

=( В том то все и дело что мне ненада тушить все!! мне надо тушить только определенные сабы! а вот иногда не пашет.

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


Top
   
 Post subject:
PostPosted: 2005-07-04 10:49:41 
Offline
Junior Expert
User avatar

Joined: 2004-11-13 00:43:55
Posts: 474
Location: Киберзадроцк
Ну поставь не ALL а свой MAIN
Code:
UO.Exec('terminate main') 
Wait(200)
UO.Exec('terminate main')
Wait(200)
UO.Exec('terminate main')
Wait(200)
UO.Exec('terminate main')

а чтобы не запускался другой саб если не потухнит этот, ставь глобалки...

Code:
If UO.GetGlobal('Check')<>'on' Then
   UO.SetGlobal('Check','on')
   *Код*
   UO.SetGlobal('Check','off')
Else
   UO.Print("Wait")
End If


Top
   
 Post subject:
PostPosted: 2005-07-04 11:01:06 
Offline
Sphere expert
User avatar

Joined: 2004-10-01 08:27:38
Posts: 1143
Location: Уфа
Я не понял конечно почему не тушится
Но раз уж не тушится, то можно через те же самые глобальные переменные и тушить процедуру.

_________________
Сделал дело - флуди смело !!!


Top
   
 Post subject:
PostPosted: 2005-07-04 11:02:34 
Offline

Joined: 2005-05-03 11:51:04
Posts: 108
Location: KDK Elite Group (c)
666Man666 wrote:
Ну поставь не ALL а свой MAIN
Code:
UO.Exec('terminate main') 
Wait(200)
UO.Exec('terminate main')
Wait(200)
UO.Exec('terminate main')
Wait(200)
UO.Exec('terminate main')

а чтобы не запускался другой саб если не потухнит этот, ставь глобалки...

Code:
If UO.GetGlobal('Check')<>'on' Then
   UO.SetGlobal('Check','on')
   *Код*
   UO.SetGlobal('Check','off')
Else
   UO.Print("Wait")
End If


Спасиб всем!! Первый варинт болеее надежнее второго! хотя второй тоже норм но не дает гарнтии того что тот саб всетки потухнет.

Я решил траблу малость по другому.Хоть саб fgonext() и не виден как запущенный всерно делаю его терминейт перед терминейтом main и... алилуйя заработало =))

Еще раз всем СПС!!!


Top
   
 Post subject:
PostPosted: 2005-07-04 11:08:19 
Offline

Joined: 2005-05-03 11:51:04
Posts: 108
Location: KDK Elite Group (c)
Askaneli wrote:
Я не понял конечно почему не тушится
Но раз уж не тушится, то можно через те же самые глобальные переменные и тушить процедуру.

Нукс расскажи мне ламеру =)))) как можно через те-же глобальные переменные потушить саб ?Ну к примеру при старте того саба что нуно потушить он задает гл.переменную=on в начале и off в конце саба! пральна?,так ты хотел устроить?
А дальше ?ну проверим мы гл.переменную и увидим что она "on" пытаемся ее терминейт! а до какого события будем слать терминейт сабу main, как ты узнаешь что она действительно в дауне ?!


Top
   
 Post subject:
PostPosted: 2005-07-04 11:10:54 
Offline
Expert!
User avatar

Joined: 2004-08-11 23:56:17
Posts: 746
Location: The Citadel
цикл с вейтов, пока не измениться глобальная переменная.


Top
   
 Post subject:
PostPosted: 2005-07-04 11:58:45 
Offline

Joined: 2005-05-03 11:51:04
Posts: 108
Location: KDK Elite Group (c)
flake wrote:
цикл с вейтов, пока не измениться глобальная переменная.
Хорошо! к примеру после второго теминейта саб уйдет в даун и как теперь понять что он в дауне? - ведь сетглобал офф стоит в том сабе который мы собственно и тушим!, а если мы его потушили то собсна и сетглобал не пройдет и останеться = on! или ставить фор на на штук 10 циклов проверки после чего считать саб потушенным:cry:?
И еще нюанс! cаб main у меня циклический !! :!:


Top
   
 Post subject:
PostPosted: 2005-07-04 12:05:16 
Offline
Sphere expert
User avatar

Joined: 2004-10-01 08:27:38
Posts: 1143
Location: Уфа
Блин
Ну не бывает такого чтоб не тушилась процедура.
У меня большое количество скриптов где основная процедура в 5 строчек а всё делают дочерние, которые в свою очередь ещё вызывают процедуры.
Гашу главную скрипт весь останавливается.

_________________
Сделал дело - флуди смело !!!


Top
   
 Post subject:
PostPosted: 2005-07-04 12:12:06 
Offline

Joined: 2005-05-03 11:51:04
Posts: 108
Location: KDK Elite Group (c)
Askaneli wrote:
Блин
Ну не бывает такого чтоб не тушилась процедура.
У меня большое количество скриптов где основная процедура в 5 строчек а всё делают дочерние, которые в свою очередь ещё вызывают процедуры.
Гашу главную скрипт весь останавливается.

Ну ты пойми!! яж не выдумываю! у мя тоже все именно так и построено!! да и вапче у всех норм кодеров так и должно быть =). Но сам факт есть факт !! причем я не говорю что она всегда не тухнет, но 50/50 потухнет или нет! И всетаки мне пришлость вписать в терминейт именно те сабы которые были вызваны мейном а потом только тушить сам мейн, и вот тогда все сто процентно!!
И еще чтоб не путать народ у меня основной саб не main а control .


Top
   
 Post subject:
PostPosted: 2005-07-04 12:30:32 
Offline
User avatar

Joined: 2004-12-10 09:16:23
Posts: 19
А разве нельзя вставить это проверку
Code:
if uo.life<100 then 

в твою вызываемую функцию "fgonext()" ??
если условие совпадет, то там уж сам решай что тебе нужно

Code:
uo.exec('terminate main')

или
Code:
UO.Exec('terminate all')


Top
   
 Post subject:
PostPosted: 2005-07-04 12:33:26 
Offline
Sphere expert
User avatar

Joined: 2004-10-01 08:27:38
Posts: 1143
Location: Уфа
Don SpiL wrote:
Askaneli wrote:
Блин
Ну не бывает такого чтоб не тушилась процедура.
У меня большое количество скриптов где основная процедура в 5 строчек а всё делают дочерние, которые в свою очередь ещё вызывают процедуры.
Гашу главную скрипт весь останавливается.

Ну ты пойми!! яж не выдумываю! у мя тоже все именно так и построено!! да и вапче у всех норм кодеров так и должно быть =). Но сам факт есть факт !! причем я не говорю что она всегда не тухнет, но 50/50 потухнет или нет! И всетаки мне пришлость вписать в терминейт именно те сабы которые были вызваны мейном а потом только тушить сам мейн, и вот тогда все сто процентно!!
И еще чтоб не путать народ у меня основной саб не main а control .

Я те говорю что тухнет в 100% случаев

_________________
Сделал дело - флуди смело !!!


Top
   
 Post subject:
PostPosted: 2005-07-05 05:25:32 
Offline

Joined: 2005-05-03 11:51:04
Posts: 108
Location: KDK Elite Group (c)
Ладно парни всем спасибо!! Те способы что все мы тут изложили это изврат!! не стабильный изврат! Я надеялся что у Yoko есть какая нить функция для проверки на живость саба :lol: :lol: :lol: но всерно парни всем СПС

З.Ы. Самый реальный форум по кодингу для УО. Только вот жаль что про RunUO мало кто что пишет :cry: .


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 14 posts ] 

All times are UTC+02:00


Who is online

Users browsing this forum: No registered users and 11 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Limited