Глобальные переменные

Ask for help

Moderators: Murderator+, Murderator

Post Reply
kobol
Posts: 119
Joined: 2012-12-15 12:03:25
Location: C-Петербург

Глобальные переменные

Post 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"?
Mirage
Posts: 2802
Joined: 2009-05-28 09:58:28
Location: Иваново
Contact:

Re: Глобальные переменные

Post by Mirage »

вынесенная за sub главнее внутренних. :roll:
kobol
Posts: 119
Joined: 2012-12-15 12:03:25
Location: C-Петербург

Re: Глобальные переменные

Post by kobol »

Mirage wrote:вынесенная за sub главнее внутренних. :roll:


Ну, по идее, конечно так не должно быть. Глобальная переменная должна бы сохранять значение после изменения из функции.

Хочу в одной функции инициализировать набор переменных (искать ванды и присваивать их серийники переменным WandSerialXX), а d другой функции вызывать useobject(WandSerialXX).

Вернее по хоткею вызывать функцию в которой выполняется useobject(WandSerialXX) с сохраненным серийником данного ванда.

Как это лучше сделать, где сохранять серийники?
Mirage
Posts: 2802
Joined: 2009-05-28 09:58:28
Location: Иваново
Contact:

Re: Глобальные переменные

Post 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 месте а не в теле скрипта. КОгда автолоад строк на несколько тысяч строк это очень облегчает работу со скриптом ;)
kobol
Posts: 119
Joined: 2012-12-15 12:03:25
Location: C-Петербург

Re: Глобальные переменные

Post by kobol »

Ванды невозможно использовать по типу. Надо каждый раз перебирать в паке, искать нужное имя и потом юзать. Хотелось бы сделать это один раз и запомнить ID найденных вандов, чтобы потом использовать UseObject(wandSerial). Вопрос - где хранить найденные ID, чтобы потом их использовать. Может можно создать какой-нибудь list? Иначе придется сохранять в файле ))
Incorrect User
Posts: 949
Joined: 2011-05-23 00:33:30

Re: Глобальные переменные

Post by Incorrect User »

kobol wrote:Глобальная переменная

Это не глобальная переменная. Для глобальных используй uo.setglobal() uo.getglobal()
kobol
Posts: 119
Joined: 2012-12-15 12:03:25
Location: C-Петербург

Re: Глобальные переменные

Post by kobol »

Как все специфично )

ps. Работает, спасибо ))
Post Reply