RU 📌 Pinned

Как сделать?

Dark[Ol(U23)leneri] #34 18.04.2010 22:57 6408 comments 2426353 views

Каждый act должен заканчиваться end-ом. Я сам должен догадаться, где вы хотите act закончить? Где заканчивается действие “работать официанткой”?
Может вы это хотели?

if job = 0: 
	act "поговорить о работе": 
		cla 
		"вы зашли к менеджеру" 
		act "отказаться и уйти": gt "играть" 
		act "согласиться": 
			cla 
			job = 1 
			act "далее":gt "кафе" 
		end 
	end 
end 
if job = 1: 
	act "работать официанткой":
		minut += 60 
		money += 100 
		gs'стат' 
		delact "работать официанткой"
        act "работать":
			minut += 60 
			money += 100 
			gs'стат'
		end 
	end 
end 
act "уйти": gt "играть"

спс работает. а как еще сделать что бы параметр не уходил в - ?

if parameter < 0: parameter = 0

Что бы не опускался ниже сделать получилось, а вот в обратную сторону почему-то не работает.
if parametr >значение: parametr = значение
такой код должен же быть? или его нужно в какое то определенное место вставить?

а все нашел нужно было в определенное место вставить

помогите разобраться с календарем. я взял уже готовый и у меня к нему привязаны параметры
JDN = JDNStart + time/1440
hour = (time/60) MOD 24
minut = time MOD 60
weekday = (JDN MOD 7) + 1

JDa = JDN + 32044
JDb = (4*JDa + 3)/146097
JDc = JDa - (146097*JDb/4)
JDd = (4*JDc + 3)/1461
JDe = JDc - 1461*JDd/4
JDm = (5*JDe + 2)/153

day = JDe - (153*JDm+2)/5 + 1
month = JDm + 3 - 12*(JDm/10)
year = 100*JDb + JDd - 4800 + JDm/10
$hour = iif (hour < 10, ’0<<hour>>’, ‘<<hour>>’)
$minut = iif (minut < 10, ’0<<minut>>’, ‘<<minut>>’)
if hour + 1:
son = son - 10
golod = golod -10
end
end
pl’Время <B><<day>></B> Дней <B><<week>></B> Недель <B><<hour>></B> часов <B><<$nilmin>><<minut>></B> минут’
pl’Сон<<son>>’
pl’Голод<<golod>>’
pl’Здоровье<<health>>’
pl’деньги<<money>>’
я хочу что бы каждый час отнималось 10 голода и сна, а у меня почему то отнимается 20. где у меня ошибка?

XaHK,

if hour + 1: 
    son = son - 10 
    golod = golod -10 
    end 
end

Зачем два END? У тебя только одно двоеточие : убери один END.

просто вроде читал что лишний игнорируется на всякий случай добавил. с одним тоже не работает. у меня вообще при переходе на любую локацию отнимается по -10 на каждой локации прописано time +1

if hour+1

всегда будет выполняться. Потому, что hour+1 всегда отлично от нуля, а следовательно истинно.

if hour <> lasthour:
    son -= 10 
    golod -= 10 
    lasthour = hour
end

Но это порочный путь - уменьшать каждый час. Этот метод не будет работать, если прошло 2 часа. Он отнимет значения только за час. А если прошло полчаса? son и golod не уменьшатся. Это неправильно.

Вот решение:

TimeInterval = time - LastTime
LastTime = time
!Уменьшение бодрости со скоростью 240ед/1440мин=24час=1сутки
gs 'dstat', 'son', -240
!Уменьшение golod со скоростью 240ед/1440мин
gs 'dstat', 'golod', -240

где локация ‘dstat’:

!Изменение характеристик со временем
!Параметры: имя изменяемой переменной (ARGS[0]), скорость изменения (единиц за 1440 мин.) (ARGS[1])

dynamic 'Var = <<$ARGS[0]>>'
dynamic 'deltaVar = delta<<$ARGS[0]>>'
deltaVar += (ARGS[1]*TimeInterval) MOD 1440
Var += (ARGS[1]*TimeInterval)/1440
if FUNC('ABS',deltaVar) >= 1440:
	Var += deltaVar/1440
	deltaVar = iif(deltaVar >= 0, deltaVar - 1440, deltaVar + 1440)
end
dynamic '<<$ARGS[0]>> = Var'
dynamic 'delta<<$ARGS[0]>> = deltaVar'

и локация ‘ABS’:

result = iif(ARGS[0] < 0, -ARGS[0], ARGS[0])

спс понял. А son -= 10 чем то отличается от son = -10?

XaHK:

спс понял. А son -= 10 чем то отличается от son = -10?

Так проще, и читается лучше.

son -= 10

эквивалентно

son = son - 10

т.е. уменьшает son на 10.
А выражение

son = -10

задает переменной сон значение -10.

Oliver, если не понял вопрос, то лучше помолчи :)

Понял спс

evp:

Oliver, если не понял вопрос, то лучше помолчи :)

Да просто не заметил :D

Log in or Register to post comments.