Page 1 of 1

параметры функции

Posted: 2005-03-08 18:20:46
by zolupo
объясните ( желательно спримерами )
как работают и как использовать параметры
sub main(x)
где х - параметр

Posted: 2005-03-08 18:50:40
by AlexeyVorotnikov

Code: Select all

sub abs(a) 
  if a < 0 then
    return -a
  else
    return a
  endif
end sub

Code: Select all

...
var x = abs(y)
...

Posted: 2005-03-09 12:32:48
by zolupo
return -a что значит?
непонел я ниче

Posted: 2005-03-09 12:40:15
by AlexeyVorotnikov
zolupo wrote:return -a что значит?
непонел я ниче

Что-то ты тупишь. :)
return x означает вернуть из функции значение x.
В данном конкретном случае, из функции abs возвращается значение a со знаком минус.

Posted: 2005-03-10 08:58:10
by zolupo
хех пример скрипта плс
а то из написаного непонятно ничего
я тупарь:)

Posted: 2005-03-10 13:43:17
by AlexeyVorotnikov
zolupo wrote:хех пример скрипта плс
а то из написаного непонятно ничего
я тупарь:)

Пример был в моём предыдущем посте.

Posted: 2005-03-10 16:00:46
by Askaneli
Человек просто знает что есть на свети люди которых называют программистами, а комп у него так просто , в игры поиграть.

ПРОЦЕДУРА

sub ИмяПроцедуры(СписокАргументовЧерезЗапятую)
Тело процедуры, ака набор команд обрабатывающих или необрабатывающих переданные аргументы
Выйти из процедуры можно достигнув её конца или по команде return без параметров
end sub

ФУНКЦИЯ

sub ИмяФункции(СписокАргументовЧерезЗапятую)
Тело функции, ака набор команд обрабатывающих или необрабатывающих переданные аргументы
Выйти из функции можно достигнув её конца или по команде return с параметрами. Функция сама по себе подразумевает возврат каких либо значений
end sub

Posted: 2005-03-10 18:50:28
by zolupo
Хех ты прав, я просто в игры играю и инжект знаю на уровне любителя.
А про пример: я имел в виду покажите пример игрового скрипта с объяснениями, потому что я снова ничего не понел:)

Пойти чтоли учебник информатики почитать ..

Posted: 2005-03-10 18:54:56
by zolupo
Кстати у меня новый вопрос:

Code: Select all

var n
var Page = 1

for n=1 to Page
[ACTION]
next


Как написать , чтобы чар исполнял действие такое кол-во раз какое записано в Page .
При таком скрипте как я написал выше , чар повторяет действие два раза.

Posted: 2005-03-10 21:11:49
by 666Man666
zolupo wrote:

Code: Select all

var n
var Page = 1

for n=1 to Page
[ACTION]
next

Вотак )

Code: Select all

var n
var Page = 5(скока хочеш)

for n=1 to Page
[ACTION]
next

Posted: 2005-03-11 12:02:40
by zolupo
и че изменилось?

Posted: 2005-03-11 12:06:45
by Askaneli
zolupo wrote:и че изменилось?

М-да. Тяжело тебе. Там 1 на 5 поменялось еси что !!!

Posted: 2005-03-11 14:57:17
by AlexeyVorotnikov
Хм... Мои педагогические способности исчерпались... :(

Posted: 2005-03-11 18:21:10
by zolupo
и че толку оттого что поменялось 1 на 5 ?
я предусматривал так что я переменную Page могу ставить такую какую захочу вопрос не тот был ..

Posted: 2005-03-11 23:56:24
by Sfagnum
zolupo wrote:и че толку оттого что поменялось 1 на 5 ?
я предусматривал так что я переменную Page могу ставить такую какую захочу вопрос не тот был ..
ты попробуй объяснить конкретно на пальцах что именно ты хочешь?

и не лезь в свой ник ;)
люди пытаются помочь в меру своего понимания твоего вопроса.

Posted: 2005-03-13 16:25:23
by zolupo
объясняю
есть скрипт

Code: Select all

sub alchemy()

 var n
 var i=0
 var Page = 1 ; choose the page contains the potion u need
 
    UO.AddObject('RecipeBook') ; choose the recipe book
    UO.Print("Choose the Recipe Book")
    while UO.Targeting()
    wait(100)
    wend
   
 while not UO.Dead() || not UO.InJournal("You don't have bottles")
  UO.UseObject('RecipeBook')
  wait(1500)
   for n=1 to Page
   UO.LClick(470,160)
   wait(1500)
   next
  UO.LClick(295,280)
  wait(500)
  UO.Say(10)
   i=1
   for i=1 to 15
   If UO.InJournal("explodes") || UO.InJournal("choking") then
    UO.DeleteJournal()
    goto Healing
   endif
   wait(3000)
   next
 Healing:
  Repeat
  UO.Bandageself()
  wait(3000)
  Until UO.Life == UO.Str
   wait(500)
 wend
end sub


Pages - номер страницы в книге. Нужно чтобы он листал ее такое количество раз, какое указано в этой переменной .
при
Page = 1
for n=1 to Page

он почему-то перелистывает страницу, нужно чтобы он этого не делал.

Posted: 2005-03-14 11:31:03
by Askaneli
Ясен перец

Цикл

Code: Select all

For i=1 To 1
next

Выполняется 1 раз
Тебе надо чтоб он ваще не выполнялся при Page=1
Тода делай так

Code: Select all

if Page>1 then
for n=1 to Page-1
   UO.LClick(470,160)
   wait(1500)
next
end if


Тут дело не в написании кодов, а в элементарной логике.
При выборе книги уже открывается 1 страница, значит листать не надо. На вторую страницу надо листануть 1 раз, на 3-ю 2 и тд.
Понял ?

Posted: 2005-03-15 17:51:45
by Edred
Лучше бы сначала сделать проверку на Page == 1... Не уверен я в устойчивости скриптового модуля в случае появления цикла:

for i = 1 to 0

Posted: 2005-03-16 06:01:19
by Askaneli
Edred wrote:Лучше бы сначала сделать проверку на Page == 1... Не уверен я в устойчивости скриптового модуля в случае появления цикла:

for i = 1 to 0

Сенк, подправил. Хотя проверить бы надо.