Page 1 of 2
подскажите как сделать подсчет руды в скрипте на мининг :)
Posted: 2006-11-15 18:39:43
by Mihail
Сделать надо примерно это:
Code: Select all
Всего руды выкопано:
Iron Ore: 110
Cooper Ore: 6
Agapite Ore: 4
Shadow Ore: 3
Orion Ore: N/A
Verite Ore: N/A
Dwarf Ore: N/A
Valorite Ore: N/A
Golden Ore: 2
Silver Ore: 2
Crystal Ore: N/A
Magma Ore: 1
Obsidian Ore: N/A
До дома руды доставлено:
Iron Ore: 110
Cooper Ore: 6
Agapite Ore: 4
Shadow Ore: 3
Orion Ore: N/A
Verite Ore: N/A
Dwarf Ore: N/A
Valorite Ore: N/A
Golden Ore: 2
Silver Ore: 2
Crystal Ore: N/A
Magma Ore: 1
Obsidian Ore: N/A
Потери:
Iron Ore: [0]
Cooper Ore: [0]
Agapite Ore: [0]
Shadow Ore: [0]
Orion Ore: [0]
Verite Ore: [0]
Dwarf Ore: [0]
Valorite Ore: [0]
Golden Ore: [0]
Silver Ore: [0]
Crystal Ore: [0]
Magma Ore: [0]
Obsidian Ore: [0]
Время: 19:31:30 (15.11.06)
смысл в том что на оскоме постоянно выкапываются элементали (которых голому шахтеру не реально завалить да и одетому-то игроку сложно), вобщем каждый вылезжий элементаль рандомно "забирает" часть руды из пака..
Я делал через глобальные переменные - тоесть после каждого сообщения 'You put' скрипт проставлял в глобальную переменную значение GetQuatntity('руды').. потом по прилету домой тоже считает руду в паке и проставляет в глобальную переменню с припиской "[Название руды]+home", затем сравнивает и выводит "Потери".. но я не учел.. что когда элементаль "забирает" часть руды то значение Глобальной переменной становится меньше..
тоесть было к примеру 100 айрон руды - вылез элементаль стало 70, а надо чтобы оставалось 100 и каждая последущая вырытая руда приплюсовывалась к 100.. ну я поставил проверку, что мол если количество<глобальной переменной то глобальной переменной значение количества не присваивается.. и снова столкнулся с проблемой - он не будет приплюсовывать руду, пока количество опять не достигнет глобальной переменной..
короче надеюсь кто-то что-то понял

- объясните плиз как сделать

Posted: 2006-11-15 18:46:00
by GimFlex
я делал это когдато походу уже нет на форуме

Posted: 2006-11-15 18:48:01
by GimFlex
ща накатаю попробую пример для 3 руд
Posted: 2006-11-15 19:01:28
by GimFlex
не извени ничего толкового в голову не лезет

Posted: 2006-11-15 19:18:30
by I'm
Я совсем понял

Posted: 2006-11-15 20:14:52
by Scripts Writer
Смысл такого подсчёта руды?!
Больше её от этого не станет.
И чем тебя не устраивает подсчёт руды перед реколом?
И что значит-доставлено/недоставлено. Ты её можешь недонести чтоли во время рекола?!
Posted: 2006-11-15 21:19:46
by Mihail
пример:
Code: Select all
копаю я значит руду все нормально, у меня в паке лежит:
100 айрона
50 купера,
вылезает элементель - у меня автоматом в паке становится:
70 айрона
20 купера,
копаю еще -накопал допустим стало
90 айрона
40 купера - бац, опять элементаль - стало:
60 айрона,
10 купера, - копаю - руда кончилась в радиусе 9на9 тайлов - лечу домой
делаю подсчет, он должен выдать:
Всего вы накопали:
120 айрона
70 купера
До дома доставлено:
60 айрона
10 купера
Потери (элементали сперли)
60 айрона
60 купера..
так понятней?:)
а сейчас выдает
Code: Select all
Всего вы накопали:
60 айрона
10 купера
До дома доставлено:
60 айрона
10 купера
Потери
0
0
-
как только получится нормальный подсчет добавлю "Элементали сперли руды на рыночную сумму (к примеру) 4 300гп)
"Всего выпкопано руды на сумму 6 100 гп)
Posted: 2006-11-15 23:30:31
by I'm
+ "взвесить" можно просто при разгрузке и вычесть из счетчика или я не прав?

Posted: 2006-11-16 08:51:02
by GimFlex
делаем так во время мининга есть пременные которые увеличиваются постоянно с каждым выкапонным ором не важно были элементали или нет потом по прилету домой он сравнивает это число с кол-ом в паке вычитает и вот 3 вида переменной- скоко доставлено, всего, и потеряно. все очень просто
Posted: 2006-11-16 15:43:34
by Mihail
можешь сделать? просто положит себе 10 айрон руды в пак и поэксперементировать - поймешь что все не очень просто.. есть мысль ввести 4-ую переменную.. вечепрм поэксперементирую..
Posted: 2006-11-16 18:06:11
by GimFlex
Mihail wrote:можешь сделать? просто положит себе 10 айрон руды в пак и поэксперементировать - поймешь что все не очень просто.. есть мысль ввести 4-ую переменную.. вечепрм поэксперементирую..
а без нее никак

Posted: 2006-11-16 18:11:03
by GimFlex
в общем вт пример так сокращенный в общих чертах
Code: Select all
sub mine()
while est ryda
var p=0
uo.waittargettitle(...)
uo.usetype(kirka)
repet
wait(100)
until uo.inj("ore")
p=p+1
wend
porthome(p)
endsub
sub porthome(x)
var m
m=uo.getquantity(ore)
uo.castspell("port to home")
uo.print("vsego rydu"+x)
uo.print("dostavleno"+m)
uo.print("poteryano"+x-m)
endsub
все просто
Posted: 2006-11-16 18:38:15
by I'm
Question_GimFlex wrote:делаем так во время мининга есть пременные которые увеличиваются постоянно с каждым выкапонным ором не важно были элементали или нет потом по прилету домой он сравнивает это число с кол-ом в паке вычитает и вот 3 вида переменной- скоко доставлено, всего, и потеряно. все очень просто
хм я вроде тоже самое сказал

Posted: 2006-11-16 18:40:04
by GimFlex
I'm wrote:Question_GimFlex wrote:делаем так во время мининга есть пременные которые увеличиваются постоянно с каждым выкапонным ором не важно были элементали или нет потом по прилету домой он сравнивает это число с кол-ом в паке вычитает и вот 3 вида переменной- скоко доставлено, всего, и потеряно. все очень просто
хм я вроде тоже самое сказал

тока в сокращенной форме

Posted: 2006-11-16 20:01:15
by Scripts Writer
Question_GimFlex wrote:в общем вт пример так сокращенный в общих чертах
Code: Select all
sub mine()
while est ryda
var p=0
uo.waittargettitle(...)
uo.usetype(kirka)
repet
wait(100)
until uo.inj("ore")
p=p+1
wend
porthome(p)
endsub
sub porthome(x)
var m
m=uo.getquantity(ore)
uo.castspell("port to home")
uo.print("vsego rydu"+x)
uo.print("dostavleno"+m)
uo.print("poteryano"+x-m)
endsub
все просто
Поддерживаю. Вопрос лишь в том, сколько переменных понадобится для определения каждой руды?!
Тут думаю понадобится массив.
Posted: 2006-11-16 20:30:17
by GimFlex
You Must Die wrote:Question_GimFlex wrote:в общем вт пример так сокращенный в общих чертах
Code: Select all
sub mine()
while est ryda
var p=0
uo.waittargettitle(...)
uo.usetype(kirka)
repet
wait(100)
until uo.inj("ore")
p=p+1
wend
porthome(p)
endsub
sub porthome(x)
var m
m=uo.getquantity(ore)
uo.castspell("port to home")
uo.print("vsego rydu"+x)
uo.print("dostavleno"+m)
uo.print("poteryano"+x-m)
endsub
все просто
Поддерживаю. Вопрос лишь в том, сколько переменных понадобится для определения каждой руды?!
Тут думаю понадобится массив.
ну это ужо к автору
Posted: 2006-11-17 23:00:44
by Mihail
Question_GimFlex wrote:Code: Select all
sub porthome(x)
var m
m=uo.getquantity(ore)
uo.castspell("port to home")
uo.print("vsego rydu"+x)
uo.print("dostavleno"+m)
uo.print("poteryano"+x-m)
endsub
все просто
нет нет и еще раз нет.. если бы все было так просто я бы сюда не писал

если попробуешь потестировать это на практике, то кол-во руды доставленное домой всегда будет = кол-ву руды вырытому в шахте..
ну потестите кому не лень - поймете что тут не так все просто как кажеься на первый взгляд..
p.s. да стоит у меня массив с этим я разберусь вы хоть просто с айроном потестите

Posted: 2006-11-18 00:49:40
by GimFlex
тестил работает
Posted: 2006-11-18 02:35:35
by Destruction
Хмм, а я вообще не вижу проблемы в первоначальном скрипте.. (скрип не смотрел, тока описание).
Как выкапали руду - записываем сколько выкапали, не проблема.
Выкапали элементаля - он нас обокрал, не суть принципно.
Улетели домой - вычли из того, что записано то, что принесено - получили список потерь.
Что не так-то получается ? (Тему перечитал 3 раза, никак не пойму, где у вас проблема возникла).
Posted: 2006-11-18 07:01:39
by Scripts Writer
Проблема как я понял- записать и вычесть.