|
Joined: Jul 2014
Posts: 36
Ameglian cow
|
OP
Ameglian cow
Joined: Jul 2014
Posts: 36 |
I have 2 ini files of the same format containing names of my viewers and their points.
viewername = points value viewername = points value etc...
Is there a way to combine these?
|
|
|
|
Joined: Dec 2013
Posts: 779
Hoopy frood
|
Hoopy frood
Joined: Dec 2013
Posts: 779 |
If you provide the name of the files and exactly what they look like, yes very much so.
I assume it's something like File1.ini [Points] $nick1=12 $nick2=13 etc.
File2.ini [Points] $nick1=15 $nick2=19 etc
But I can't know for sure unless you tell me
Nillens @ irc.twitch.tv Nillen @ irc.rizon.net
|
|
|
|
Joined: Jul 2014
Posts: 36
Ameglian cow
|
OP
Ameglian cow
Joined: Jul 2014
Posts: 36 |
|
|
|
|
Joined: Dec 2013
Posts: 779
Hoopy frood
|
Hoopy frood
Joined: Dec 2013
Posts: 779 |
alias copy_coins {
echo -a Moving coins initialized
var %file1 $qt(old coins.ini)
var %file2 $qt(new coins.ini)
var %sec #tylersgaming
var %items $ini(%file1,%sec,0)
while (%items) {
var %item $ini(%file1,%sec,%items)
var %value1 $readini(%file1,%sec,%item)
var %value2 $readini(%file2,%sec,%item)
if (%value2) writeini %file2 %sec %item $calc(%value1 + %value2)
else writeini %file2 %sec %item %value1
dec %items
}
echo -a Moving coins finished
}
Type /copy_coins If this freezes your mIRC application, let me know and I'll attempt doing it through an hashtable (never done this before) By freezing I mean if you don't see the "Moving coins finished" echo and your mIRC stops responding. Give it some time though, you might have it done in 20 seconds if you just don't touch mIRC.
Nillens @ irc.twitch.tv Nillen @ irc.rizon.net
|
|
|
|
Joined: Jul 2014
Posts: 36
Ameglian cow
|
OP
Ameglian cow
Joined: Jul 2014
Posts: 36 |
2 questions where do I type /copy_coins and how does it find my ini files since they're in drop box, I tried typing /copy_coins in a lot of windows and it didn't create any files or anything. but yeah, it's not working ;-;
Last edited by TylersGaming; 15/11/14 03:49 PM.
|
|
|
|
Joined: Jul 2014
Posts: 36
Ameglian cow
|
OP
Ameglian cow
Joined: Jul 2014
Posts: 36 |
|
|
|
|
Joined: Dec 2013
Posts: 779
Hoopy frood
|
Hoopy frood
Joined: Dec 2013
Posts: 779 |
First of all, open your remote scripts editor by pressing alt + r, press file and create a new scriptfile. Paste the code I gave you in there.
After you've done that, change the var %file1 and %file2 to the actual path to the file. I assumed that the path to the file was standard inside your $mircdir, but just open the file's properties and change the filepath to the correct one. Should looks something like this: var %file1 $qt(c:\myuser\dropbox\old coins.ini)
Nillens @ irc.twitch.tv Nillen @ irc.rizon.net
|
|
|
|
Joined: Dec 2013
Posts: 779
Hoopy frood
|
Hoopy frood
Joined: Dec 2013
Posts: 779 |
From what I can see in your private message, your code is flawed in the way that your last alias (as in the one prior to mine) does not have a closing bracket. on *:TEXT:!on*:#:{
if ($nick == tylersgaming) {
if ($read(botstatus.txt,t,1) == on) {
}
if ( $read(botstatus.txt,t,1) == off) {
/write -c botstatus.txt
/timerAward 0 1800 /awardPoints $chan
write botstatus.txt on
msg $chan Points will now be awarded.
}
}
}
on *:TEXT:!off*:#:{
if ($nick == tylersgaming) {
if ($read(botstatus.txt,t,1) == off) {
}
if ( $read(botstatus.txt,t,1) == on) {
/write -c botstatus.txt
write botstatus.txt off
/timerAward off
msg $chan Points will no longer be awarded.
}
}
}
alias awardpoints {
var %chan = $$1, %table = coins. $+ %chan, %file = C:\Users\TylersGaming\Dropbox\coins.ini
if (!$hget(%table)) {
hmake %table
if ($ini(%file,%chan)) hload -i %table %file %chan
}
var %i = 1, %n = $nick(%chan,0)
while (%i <= %n) {
hinc %table $nick(%chan,%i)
inc %i
}
hdel %table nightbot
hdel %table tylerb0t
hdel %table tylersgaming
hsave -i %table %file %chan
alias copy_coins {
echo -a Moving coins initialized
var %file1 $qt(old coins.ini)
var %file2 $qt(new coins.ini)
var %sec #tylersgaming
var %items $ini(%file1,%sec,0)
while (%items) {
var %item $ini(%file1,%sec,%items)
var %value1 $readini(%file1,%sec,%item)
var %value2 $readini(%file2,%sec,%item)
if (%value2) writeini %file2 %sec %item $calc(%value1 + %value2)
else writeini %file2 %sec %item %value1
dec %items
}
echo -a Moving coins finished
} Whenever your awardpoints alias gets triggered, you should have tons of error messages in your log. As well as the fact that your coins.ini file seems out of place considering that your files you sent me are called "old coins.ini" and "new coins.ini" not "coins.ini" - Might be something to look up.
Nillens @ irc.twitch.tv Nillen @ irc.rizon.net
|
|
|
|
Joined: Jul 2014
Posts: 36
Ameglian cow
|
OP
Ameglian cow
Joined: Jul 2014
Posts: 36 |
|
|
|
|
Joined: Dec 2013
Posts: 779
Hoopy frood
|
Hoopy frood
Joined: Dec 2013
Posts: 779 |
First of all, open your remote scripts editor by pressing alt + r, press file and create a new scriptfile. Paste the code I gave you in there.
After you've done that, change the var %file1 and %file2 to the actual path to the file. I assumed that the path to the file was standard inside your $mircdir, but just open the file's properties and change the filepath to the correct one. Should looks something like this: var %file1 $qt(c:\myuser\dropbox\old coins.ini) Do that. After you've done that we're gonna look into adding a closing bracket to your other alias, but one thing at a time.
Nillens @ irc.twitch.tv Nillen @ irc.rizon.net
|
|
|
|
Joined: Jul 2014
Posts: 36
Ameglian cow
|
OP
Ameglian cow
Joined: Jul 2014
Posts: 36 |
|
|
|
|
Joined: Dec 2013
Posts: 779
Hoopy frood
|
Hoopy frood
Joined: Dec 2013
Posts: 779 |
Now, your alias for awarding points is not closed. From what you sent me it looks like this: alias awardpoints {
var %chan = $$1, %table = coins. $+ %chan, %file = C:\Users\TylersGaming\Dropbox\coins.ini
if (!$hget(%table)) {
hmake %table
if ($ini(%file,%chan)) hload -i %table %file %chan
}
var %i = 1, %n = $nick(%chan,0)
while (%i <= %n) {
hinc %table $nick(%chan,%i)
inc %i
}
hdel %table nightbot
hdel %table tylerb0t
hdel %table tylersgaming
hsave -i %table %file %chan It needs to looks like this: alias awardpoints {
var %chan = $$1, %table = coins. $+ %chan, %file = C:\Users\TylersGaming\Dropbox\coins.ini
if (!$hget(%table)) {
hmake %table
if ($ini(%file,%chan)) hload -i %table %file %chan
}
var %i = 1, %n = $nick(%chan,0)
while (%i <= %n) {
hinc %table $nick(%chan,%i)
inc %i
}
hdel %table nightbot
hdel %table tylerb0t
hdel %table tylersgaming
hsave -i %table %file %chan
} Note that the only change was the closing bracket at the end. Make sure that the path to the file is correct too: %file = C:\Users\TylersGaming\Dropbox\coins.ini I dunno what file you're currently using, but if you're using newcoins.ini, you need to change that.
Nillens @ irc.twitch.tv Nillen @ irc.rizon.net
|
|
|
|
Joined: Jul 2006
Posts: 4,180
Hoopy frood
|
Hoopy frood
Joined: Jul 2006
Posts: 4,180 |
Whenever your awardpoints alias gets triggered, you should have tons of error messages in your log. Just a side note here, because you miss a { or a } doesn't mean everything will blow necessarily. Here, everything is executed as part of the alias: alias copy_coins {
echo -a Moving coins initialized
var %file1 $qt(old coins.ini)
....
This will be executed as a command, /alias is a command so that won't even produce an error, the { is going to be ignored the same way "//echo -a a { b" would
#mircscripting @ irc.swiftirc.net == the best mIRC help channel
|
|
|
|
Joined: Jul 2014
Posts: 36
Ameglian cow
|
OP
Ameglian cow
Joined: Jul 2014
Posts: 36 |
thanks everyone
|
|
|
|
|