|
Joined: Apr 2005
Posts: 9
Nutrimatic drinks dispenser
|
OP
Nutrimatic drinks dispenser
Joined: Apr 2005
Posts: 9 |
Can someone help me make this type of hint for triviabot? hint 1/5: ******** hint 2/5: t******* hint 3/5: t*g***** hint 4/5: t*g*t*** hint 5/5: t*g*th**
hint 1/5: ******* ******* hint 2/5: R****** K****** hint 3/5: R****r* K**l*** hint 4/5: Ru***r* K**l*n*
hint 1/5: **** ******* ******* hint 2/5: J*** M****** C****** hint 3/5: Jo** M***e** C***z** hint 4/5: Joh* M***e*l C**tz** hint 5/5: Joh* M***ell Co*tz**
Always keep the last hint. Thank you!!!
|
|
|
|
Joined: Dec 2002
Posts: 3,547
Hoopy frood
|
Hoopy frood
Joined: Dec 2002
Posts: 3,547 |
|
|
|
|
Joined: Apr 2005
Posts: 9
Nutrimatic drinks dispenser
|
OP
Nutrimatic drinks dispenser
Joined: Apr 2005
Posts: 9 |
|
|
|
|
Joined: Dec 2002
Posts: 3,547
Hoopy frood
|
Hoopy frood
Joined: Dec 2002
Posts: 3,547 |
Ah, sorry!
|
|
|
|
Joined: Apr 2005
Posts: 9
Nutrimatic drinks dispenser
|
OP
Nutrimatic drinks dispenser
Joined: Apr 2005
Posts: 9 |
yeah, thanks anway SladeKraven
|
|
|
|
Joined: Dec 2002
Posts: 3,547
Hoopy frood
|
Hoopy frood
Joined: Dec 2002
Posts: 3,547 |
Maybe someone else has posted this too, do a forum search and expand the search to 5 years. You never know, it might come up trumps.
|
|
|
|
Joined: Apr 2005
Posts: 9
Nutrimatic drinks dispenser
|
OP
Nutrimatic drinks dispenser
Joined: Apr 2005
Posts: 9 |
|
|
|
|
Joined: Apr 2005
Posts: 9
Nutrimatic drinks dispenser
|
OP
Nutrimatic drinks dispenser
Joined: Apr 2005
Posts: 9 |
Couldn't find it
|
|
|
|
Joined: Aug 2004
Posts: 7,252
Hoopy frood
|
Hoopy frood
Joined: Aug 2004
Posts: 7,252 |
If you want an actual code, then I'm going to need to know how it's determined when the hints come up...is it after a certain amount of time, if so how does the game know when to start the timer for the next hint? How does the game know when an answer has been entered rather than just normal conversation? do you want the hints to be revealed in a certain predetermined order, or at random?
If you got the actual trivia code elsewhere, where did you get it, so that I can test? if not, and if it's not too big, could you post it? If you post, please remember the CODE tags
|
|
|
|
Joined: Aug 2003
Posts: 314
Fjord artisan
|
Fjord artisan
Joined: Aug 2003
Posts: 314 |
alias _hint {
var %i = 0,%a,%b = $regsub($2-,/\w/g,*,%a),%p
bset -t &b 1 %a
while (%i < $1) {
%p = $pos($bvar(&b,1-).text,*,$r(1,%b))
bset -t &b %p $mid($2-,%p,1)
dec %b
inc %i
set %hint $+ %i $bvar(&b,1-).text
}
}
/_hint <number of hints> <answer> It sets variables named %hintN, so %hint1 is the first hint, %hint2 the second and so on
|
|
|
|
Joined: Apr 2005
Posts: 9
Nutrimatic drinks dispenser
|
OP
Nutrimatic drinks dispenser
Joined: Apr 2005
Posts: 9 |
Sign When i test your script for example my text is: Henric VIII it shows like this /_hint 5 Henric VIII
%hint1 ****** **I* %hint2 ****i* **I* %hint3 ****ic **I* Doesn't look right
It should show like this
<triviabot> hint 1/5: ****** **** <triviabot> hint 2/5: H***** V*** <triviabot> hint 3/5: H**r** VI** <triviabot> hint 4/5: H**r*c VI*I <triviabot> hint 5/5: H**ric VI*I
|
|
|
|
Joined: Sep 2003
Posts: 4,230
Hoopy frood
|
Hoopy frood
Joined: Sep 2003
Posts: 4,230 |
You havent really given all the needed information to allow a script to be created, basicly becuase your examples dont match. And you left it up to us to look at them and try and interprut what you wanted, I made a mistake and thought you wanted hint 1 being all * and spaces hint2 being each words first letter * and spaces hint3 being an undetermined number of random extra letters revealed ^ I called this METHOD1 After writting code to do the above I looked a little closer and it appears you want hint 1 being all * and spaces hint2 being each words first letter * and spaces hint3 being 1 random letter per word revealed , unless there is only one * left then do nothing on that word ^ I called this METHOD2 Since the second method used the code from the first one with some changes, and I like the first one better anyway, Im posting both. As we cant know how your bot works or under what timing or conditions you release a hint, I have simply created an $identifier that returns the next hint Usage is as follows... var %thishint = $hint.methodx(<the answer>,<last hint>) * if you only pass <the answer> then it well return a * and spaces representation of it * if you pass it the last returned value it returns the next one * if you pass it junk its going to pass you junk back! simple example //echo -a $hint.method1(This Is a Test) **** ** * **** //echo -a $hint.method1(This Is a Test,**** ** * ****) T*** I* a T*** //echo -a $hint.method1(This Is a Test,T*** I* a T***) T*** I* a T*s* //echo -a $hint.method1(This Is a Test,T*** I* a T*s*) Th** I* a T*s* //echo -a $hint.method1(This Is a Test,Th** I* a T*s*) Th*s I* a T*s* etc etc simple example //echo -a $hint.method2(This Is a Test) **** ** * **** //echo -a $hint.method2(This Is a Test,**** ** * ****) T*** I* a T*** //echo -a $hint.method2(This Is a Test,T*** I* a T***) T*i* I* a T*s* //echo -a $hint.method2(This Is a Test,T*i* I* a T*s*) T*is I* a Tes* //echo -a $hint.method2(This Is a Test,T*is I* a Tes*) T*is I* a Tes* same as aboveSo you need to pass it the answer and rember what it returns wheather you use method1 (mine) or method2 (yours) I have supplied an actual example alias to allow you to see how it works, and the results, your method of number or repetitions and mine may vary. BE ADVISED DO NOT always expect the last hint of method 1 to match the passed <the answer> text. 99% of the time it well, but due to the use of tokens it is possable for extra spaces to have been erased.
alias hint.method1 {
var %answer = $gettok($1,1-,32)
var %hint = $gettok($2,1-,32)
if (!%hint) {
!.echo -q $regsub(%answer,/[^ ]/g,*,%hint)
}
elseif ($regex(%hint,/^[* ]+$/iS)) {
var %i = $numtok(%hint,32)
while (%i) {
var %hint = $puttok(%hint,$+($left($gettok(%answer,%i,32),1),$mid($gettok(%hint,%i,32),2)),%i,32)
dec %i
}
}
elseif ($pos(%hint,*,0)) {
var %pos = $pos(%hint,*,$rand(1,$v1))
var %hint = $+($left(%hint,$calc(%pos - 1)),$mid(%answer,%pos,1),$mid(%hint,$calc(%pos + 1)))
}
return %hint
}
;
alias hint.method2 {
var %answer = $gettok($1,1-,32)
var %hint = $gettok($2,1-,32)
if (!%hint) {
!.echo -q $regsub(%answer,/[^ ]/g,*,%hint)
}
elseif ($regex(%hint,/^[* ]+$/iS)) {
var %i = $numtok(%hint,32)
while (%i) {
var %hint = $puttok(%hint,$+($left($gettok(%answer,%i,32),1),$mid($gettok(%hint,%i,32),2)),%i,32)
dec %i
}
}
elseif ($pos(%hint,*,0)) {
var %i = $numtok(%hint,32)
while (%i) {
var %hword = $gettok(%hint,%i,32)
if ($pos(%hword,*,0) > 1) {
var %pos = $pos(%hword,*,$rand(1,$v1))
var %hint = $puttok(%hint,$+($left(%hword,$calc(%pos - 1)),$mid($gettok(%answer,%i,32),%pos,1),$mid(%hword,$calc(%pos + 1))),%i,32)
}
dec %i
}
}
return %hint
}
;
;
;
;
alias example {
var %answer = $$gettok($remove($1-,*),1-,32)
var %hint
var %c = 1
while (%hint != %answer) {
var %oldhint = %hint
var %hint = $hint.method1(%answer,%hint)
echo -s Hint2 : %c : %answer : %hint
inc %c
}
;
echo -s ----
;
var %answer = $gettok($remove($1-,*),1-,32)
var %hint
var %oldhint = .
var %c = 1
while (%hint != %oldhint) {
var %oldhint = %hint
var %hint = $hint.method2(%answer,%hint)
echo -s Hint1 : %c : %answer : %hint
inc %c
}
}
|
|
|
|
Joined: Apr 2005
Posts: 9
Nutrimatic drinks dispenser
|
OP
Nutrimatic drinks dispenser
Joined: Apr 2005
Posts: 9 |
brick house ***** ***** b**** **** br*** **** br*** ***s bri** ***s
It loses an e. How do i fix it Dave?
|
|
|
|
Joined: Apr 2005
Posts: 9
Nutrimatic drinks dispenser
|
OP
Nutrimatic drinks dispenser
Joined: Apr 2005
Posts: 9 |
I finally got it, thank you so much for your great work Dave and also a big thanks to Sign.
|
|
|
|
Joined: Sep 2003
Posts: 4,230
Hoopy frood
|
Hoopy frood
Joined: Sep 2003
Posts: 4,230 |
I tested my code and it didnt do that, Did you alter my code or was it you were sending it a faulty Hint value?
If you send $hint.method2(brick house,b**** h***) one star missing on house it well come back b**c* h**s etc becuase by then all its doing is removing *'s and replacing them with letters.
Also as I said if you send it dodgy info and its gonna send you dodgy info back as in $hint.method2(brick house,R** G**** B***) --> R*i G*u** B** First 2 words simply replace *'s with matching letters from the answer word, the 3rd word looses a * becuase its replacing it with a letter from the 3rd answer word (which there isnt one)
|
|
|
|
Joined: Apr 2005
Posts: 9
Nutrimatic drinks dispenser
|
OP
Nutrimatic drinks dispenser
Joined: Apr 2005
Posts: 9 |
I was sending to it a faulty hint value. But it work great now. Thanks Dave! You're awesome!
|
|
|
|
|