Можно ли задать общую переменную для нескольких скриптов?

Ask for help

Moderators: Murderator+, Murderator

Post Reply
Sanch
Posts: 308
Joined: 2005-07-17 15:30:52
Location: www.drw.ru

Можно ли задать общую переменную для нескольких скриптов?

Post by Sanch »

Вот собсно нашел скрипт на мининг где то тут, говарят работает. В это скрипте вначале указаны переменые, не относящиеся к остальным скриптам (sub'ам):

##################
### Переменные ###
###################################################################################################
var Reconnect=1 ## 1 - Включить реконнект на сервер если выкинет, 0 - отключить реконнект.(не проверял работает или нет с этим скриптом)
###
var Food=0 ## - Кушать после сброса руды или нет? 1 - да, 0 - нет.
###
var Status=0 ## - Статус руды, показывает скока накопали (для опытных скриптёров) 1 - да, 0 - нет.
###
var Chest='0x40011965' ## - ID сундука куда будут выгружаться руду, где должны лежать реги и еда.
###
var TypeFood='0x160A' ## - Type еды которую будем кушать.(сейчас фиштейки)
###
var CountReg=40 ## - Кол-во регов для подзарядки.
###
var OreQty=400 ## - Максимальный вес при котором домой с рудой
###
var maxjamp=17 ## - Для рекола (изменять не нужно)
var rune=1 ## - Для рекола (изменять не нужно)
###################################################################################################
### Wait - Ждёт сообшения после замаха кирки, чтобы повторить. ##
### Fizzle - Если пришло такое сообшение, то переходим на след. клетку копать. ##
###################################################################################################
var Wait1="You put"
var Wait2="heavy"
var Wait3="location"
var Wait4="no ore"
var Wait5="but fail"
var Wait6="far away"
var Wait7="in rock"
var Wait8="You can't"
var Wait9="nothing here"
var Wait10="You have found some"
###
var Fizzle1="There is no ore here to mine."
var Fizzle2="You can't use the"
var Fizzle3="Try mining elsewhere."
var Fizzle4="location"
###################################################################################################
#################
### Включалка ###
#################
sub Start()
If UO.GetGlobal('Maningcheck')=='on' Then
UO.SetGlobal('Maningcheck','off')
Else
UO.Exec('Exec Maning')
UO.SetGlobal('Maningcheck','on')
EndIf
......
......


Так вот хотелось бы знать, если указать переменную отдельно (не в скрипте), это как сделано выше, будет ли она работать, можно ли будет ее использовать в других скриптах, можно ли будет ее менять при использовании определенного скрипта?

ЗАРАНИЕ СПАСИБО ЗА ИНФУ :)
Grin
Expert!
Posts: 2580
Joined: 2005-05-04 14:05:19
Location: Москва

Post by Grin »

все переменые которые указаны вне скрипта видны и изменяемы в рамках только 1 саба, но этот саб может бвызвать другие сабы и они тоже будут ее видеть. Для каждого саба запущеного ручками создается свое не повторимое пространства скрипта.
Общатся между этими пространствами можно только посредством
Set(Get)Global
Set(Get)Easy
+ остальные извращаеные варианты
для сравнния каждый скрипт в списке защпушеного это отдельный процес который никак не пересекается сдругими...
Sanch
Posts: 308
Joined: 2005-07-17 15:30:52
Location: www.drw.ru

Post by Sanch »

Из выше сказанного я понял следующее, 1 пременная в 2ух скрипт не может использоваться, где бы она не была. Можно по подробней про Set(Get)Global
Set(Get)Easy желательно с элементарным примерчиком, в уроках об этом не сказано, буду оч признателен. Просто пишу скрипт под мининг, с телепортацией по разный шахтам, с ходьбой, убийством элемов, сгрузкой, проверкой регов и тд, че то не получается у меня все эти мной написаные скрипты для разных действий между собой работать нормально заставить, ща мучаюсь с телепортом по 5ти шахтам, хочу сделать так чтобы при юзании этого скрипта чар каджый раз телепеотировался по разным рунам, с первой по пятую и так по кругу.

хочу примерно следующее:

##################
VAR n
n = 1
##################
sub teleportation()
if n == 1 then
телепортация по руне 1
endif
if n == 2 then
телепортация по руне 2
endif
if n == 3 then
телепортация по руне 3
endif
if n == 4 then
телепортация по руне 4
endif
if n == 5 then
телепортация по руне 5
endif
n = n + 1
if n > 5 then
n = 1
endif
end sub
Grin
Expert!
Posts: 2580
Joined: 2005-05-04 14:05:19
Location: Москва

Post by Grin »

1 переменая в двух скриптах запущеных руками это 2 разных переменых...
все тут
uo.SetGlobal(имя_переменой_строка, значение_переменой_лобое)
uo.SetGlobal("perem1", 1)
uo.SetGlobal("perem2", "1")
uo.GetGlobal(имя_переменой_строка)
возвращает всегда строку
тоесть
uo.SetGlobal("perem1", 1)
uo.GetGlobal("perem1") <> 1
uo.GetGlobal("perem1") == "1"
Sanch
Posts: 308
Joined: 2005-07-17 15:30:52
Location: www.drw.ru

Post by Sanch »

Ок, супер, буду пробовать, большое спасибо :D
если не секрет :) , что значит '<>'?
можно ли ee увеличивать * = * + 1, и если можно то как это правельно делать?

случайно не uo.setglobal('perem1', 'perem1 + 1')
если она предварительно была задана uo.setglobal('perem1', '1')
Post Reply