Page 1 of 1
Глобальные переменные
Posted: 2015-12-24 22:03:09
by kobol
Code: Select all
var wParID="2222"
##########################
sub w1()
wParID="111111"
uo.print (wParID)
end sub
##########################
sub w2()
uo.print (wParID)
end sub
В процедуре W1() wParID присваивается"111111"
Почему, если после этого выполнить процедуру W2(), то wParID все равно остается равен "2222"?
Re: Глобальные переменные
Posted: 2015-12-24 22:36:07
by Mirage
вынесенная за sub главнее внутренних.

Re: Глобальные переменные
Posted: 2015-12-24 23:10:21
by kobol
Mirage wrote:вынесенная за sub главнее внутренних.

Ну, по идее, конечно так не должно быть. Глобальная переменная должна бы сохранять значение после изменения из функции.
Хочу в одной функции инициализировать набор переменных (искать ванды и присваивать их серийники переменным WandSerialXX), а d другой функции вызывать useobject(WandSerialXX).
Вернее по хоткею вызывать функцию в которой выполняется useobject(WandSerialXX) с сохраненным серийником данного ванда.
Как это лучше сделать, где сохранять серийники?
Re: Глобальные переменные
Posted: 2015-12-25 05:36:48
by Mirage
вверху сделай такую кучку:
Code: Select all
VAR rezka = 1
var menu
##################
### Контейнеры ###
VAR body = '0x2006' ; труп (не разделанный)
VAR LootID
var LootType = '0x0E75'
var LootColour = '0x0027'
##################
### Инструменты ###
VAR Dagger = '0x0F51'
VAR Cleaver = '0x0EC2'
VAR NCleaver = '0x0EC3'
;VAR Scissors = '0x0F9E' ; ножницы Colour: 0x08FC
##################
### Сырье ###
VAR hides = '0x1078' ; шкура животного
VAR leather = '0x1067' ; готовая кожа
##################
### Продукты производства ###
VAR Lockpick = '0x14FB' ; отмычка
VAR Bottle = '0x0F0E' ; бутылка
##################
### Оружие ###
VAR SuperiorBow = '0x4070274C' ; +3 Mirage's Superior Bow
##################
### Еда ###
VAR FishSteaks = '0x097B' ; жареные рыбные котлеты
##################
### Вспомогательные константы ###
VAR lootwait = 125 ; пауза
VAR printcolour = '1069' ; цвет сообщений
VAR GetCotton = 1 ; если 1 то берет из сундука хлопок и скидывает в сундук нитки. Если 0 то нет
VAR HIDE = 1 ; если 1 прячемся, если 0 нет.
;VAR LootDist = 2
##################
### Переменные ###
VAR MeshSer, d, LastTimer, timemove
VAR Type_Cleaver, Colour_Cleaver, itemCont, itemID, itemType, itemColor, TType, Type1, Type2, Color, SourceContainer, TargetContainer
VAR corpse, a, hair, reg, colhides, res
VAR request, TypeQ, ColorQ, NameQ, TypeT, ColorT, NameT, TypeM, ColorM, NameM, TypeC, ColorC, NameC
##################
### Сообщения ###
VAR msg = 'destroyed|You put|положили|fail|не удалось|You broke|сломали|izzle|uccess|in your pack'
##################
##################
; типы обычных реагентов
var BP = 0x0F7A ; Bleack Pearl
var BM = 0x0F7B ; Blood Moss
var MR = 0x0F86 ; Mandrake Root
var NS = 0x0F88 ; Nightshade
var SS = 0x0F8D ; Spider Silk
var SA = 0x0F8C ; Sulphurous Ash
var GA = 0x0F84 ; Garlic
var GI = 0x0F85 ; Ginseng
а внутри минимизируй и использую ID-ишники. Проще будет корректировать. Все будет в 1 месте а не в теле скрипта. КОгда автолоад строк на несколько тысяч строк это очень облегчает работу со скриптом

Re: Глобальные переменные
Posted: 2015-12-25 07:35:24
by kobol
Ванды невозможно использовать по типу. Надо каждый раз перебирать в паке, искать нужное имя и потом юзать. Хотелось бы сделать это один раз и запомнить ID найденных вандов, чтобы потом использовать UseObject(wandSerial). Вопрос - где хранить найденные ID, чтобы потом их использовать. Может можно создать какой-нибудь list? Иначе придется сохранять в файле ))
Re: Глобальные переменные
Posted: 2015-12-25 10:48:46
by Incorrect User
kobol wrote:Глобальная переменная
Это не глобальная переменная. Для глобальных используй uo.setglobal() uo.getglobal()
Re: Глобальные переменные
Posted: 2015-12-25 17:37:43
by kobol
Как все специфично )
ps. Работает, спасибо ))