egghelp.org community Forum Index
[ egghelp.org home | forum home ]
egghelp.org community
Discussion of eggdrop bots, shell accounts and tcl scripts.
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

expected integer but got "08" (looks like invalid

 
Post new topic   Reply to topic    egghelp.org community Forum Index -> Scripting Help
View previous topic :: View next topic  
Author Message
hmetall
Voice


Joined: 07 May 2009
Posts: 3

PostPosted: Fri May 08, 2009 8:49 am    Post subject: expected integer but got "08" (looks like invalid Reply with quote

Good morning to All.

He/she/you would like to know how to solve this problem:
expected integer but got " 08 " (looks like invalid octal number)

This is a script that calculates time hour of the last command
given in the channel.
Plus when it arrives some mainly schedule 08, 09 him of the
this mistake expected integer but got " 08 " (looks like invalid octal number)

Part of the Code is this:

Code:


set horaam "00"
set minam "00"
set segam "00"
set am "$horaam:$minam:$segam"
set horasave "00"
set minsave "00"
set segsave "00"
set saves "$horasave:$minsave:$segsave"

proc salvar {nick uhost hand chan rest} {
  global topico
  global shard
  global news
  global am
  global saves
  global horasave
  global minsave
  global segsave
  global statTS
  global statMAP

  set horaant "$horasave"
  set minant "$minsave"
  set segant "$segsave"
  set horasave "[strftime %H]"
  set minsave "[strftime %M]"
  set segsave "[strftime %S]"
  set saves "$horasave:$minsave:$segsave"

  set math "((($horasave * 60) * 60) + ($minsave * 60) + $segsave ) -  ((($horaant * 60) * 60) + ($minant * 60) + $segant)"

  set amaux [expr $math]

  if {$amaux < 0} {
    set math "((($horasave * 60) * 60) + ($minsave * 60) + $segsave ) + (84600 - ((($horaant * 60) * 60) + ($minant * 60) + $segant))"
    set amaux [expr $math]
  }
  set math "(($amaux / 60) / 60)"
  set horaant [expr $math]

  set math "$amaux - (($horaant * 60) * 60)"
  set amaux [expr $math]

  set math "$amaux / 60"
  set minant [expr $math]

  set math "$amaux - ($minant * 60)"
  set segant [expr $math]

  set mensagem "^C7,1Já se passaram^C9,1 $horaant ^C7,1hora(s)^C9,1 $minant ^C7,1minutos e^C9,1 $segant ^C7,1segundos desde o último save!"

#  putchan $chan $mensagem
  puthelp "PRIVMSG $chan :$mensagem"

  putserv "TOPIC $chan :^B^_^C4,1\[^_^B^C4,1^BE^B^C0,1mpires ^C4,1^BB^B^C0,1lasters^B^_^C4,1\]^_^B ^B^_\[^_^B^C7,1Shard:^C9,1 $shard ^C4,1^B^_\]^_^B ^B^_\[^_^B^C7,1TS:^C9,1 $statTS ^C4,1^B^_\]^_^B ^B^_\[^_^B^C7,1MAP:^C9,1 $statMAP ^C4,1^B^_\]^_^B ^B^_\[^_^B^C8,1 $topico ^C4,1^B^_\]^_^B ^B^_\[^_^B^C7,1AM:^C9,1 $am ^C4,1^B^_\]^_^B ^B^_\[^_^B^C7,1Save:^C9,1 $saves ^C4,1^B^_\]^_^B ^B^_\[^_^B^C7,1News:^C11,1 $news ^C4,1^B^_\]^O"
  putlog "\002\[Mv\]\002 <<$nick>> !$hand! topic $rest"

return 1
}


then when I execute the command for instance the:
08:10:00 or 09:00:00 if he/she has 09 08 in any to call
he doesn't print, more he/she makes him/it I calculate everything it carries the variable
more in the hour of printing of giving the topic and the putserv he/she doesn't do
anything. and of the the mistake in the bot
expected integer but got " 08 " (looks like invalid octal number)

If somebody can me to help I am I thank.
At once I Thank.

He/she/you excuses English I used a translator.

Thank you.
_________________
Sou Brasileiro.
Back to top
View user's profile Send private message Visit poster's website
nml375
Revered One


Joined: 04 Aug 2006
Posts: 2857

PostPosted: Fri May 08, 2009 9:20 am    Post subject: Reply with quote

The problem is that you are using %H, %M and %S when retrieving the hour, minute, and second. These will always output 2 digits, 0-padding if needed.
At the same time, any number starting with 0 is considered being an octal number (base 8 contrary to base 10 in the decimal number system). Being base 8, "octals" 08 and 09 are considered invalid.

That said, seems to me you are simply calculating time differences in seconds, so why don't you just use unixtime timestamps all together instead? Saves you a lot of maths...

I'm having slight issues following your maths, but I believe what you're trying to do is pretty much this:
Code:
set timestamp [clock seconds]

proc salvar {nick host handle channel rest} {
 global topico shard news am statTS statMAP timestamp
 set diff [expr {([clock seconds] - $timestamp) % 84600}]
 set timestamp [clock seconds]
 putserv "TOPIC $channel :... Save: [clock format $diff -format "%H"] ..."
}

_________________
NML_375, idling at #eggdrop@IrcNET
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    egghelp.org community Forum Index -> Scripting Help All times are GMT - 4 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Forum hosting provided by Reverse.net

Powered by phpBB © 2001, 2005 phpBB Group
subGreen style by ktauber