Avatar billede thje Nybegynder
01. september 2001 - 02:32 Der er 3 kommentarer og
1 løsning

Flere terninger

Ok jeg var ikke så ferm til at få det her til at virke som jeg regnede med, så mine sidste points ryger på det her :(

Jeg har hentet killerchat v5.5 fra www.asp.dk og regnede med at jeg snildt kunne få den bot der var implanteret i chatten... Det jeg gerne vil have den til er at når der er en der skriver f.eks <botnavn> rul 1d10 eller 2d10 så skulle den \"rulle nogle terninger\" og spytte resultatet ud på siden, men jeg kan sq ikke lige se hvordan det skal gøres..

koden til botten består af 2 filer:
configuration.asp
<!-- #include file=\"configuration_skin.asp\" -->
<%
ChatTitle        = \"RPG online alpha version ( bot virker ikke som den skal )\" \'Chat-Rummets Navn. Du kan angive et blankt navn for at lukke rummet
MaxUsers          = 35 \'Max antal brugere
MaxPublicMessages = 30 \'Max antal offentlige beskedder
MaxPrivatMessages = 6 \'Max antal private beskedder
Systemname      = \"rum1\" \'PIL IKKE VED DENNE!!!
GemLog          = 0 \'1 = gem log, 0 = gem ikke log \'DER ER PT. FEJL I DENNE FUNKTION...PIL DERFOR IKKE!!!

\'------------------------------
\'Angiv bruger rettigheder
\'        0=nej | 1=ja
\'------------------------------

\'Indstillinger for messagepanel
AngivFarve    = 1 \'Må brugeren bruge farver på sin tekst
AngivFed    = 1 \'Må brugeren bruge fed tekst
AngivItallic    = 1 \'Må brugeren bruge itallic tekst

\'Indstillinger for userliste
ShowBrugerinfo    = 0 \'Må en almindelig bruger se info om andre brugere

\'------------------------------
\'Angiv op til 5 administratorer
\'------------------------------
AdminUsername1    = \"admin\"
AdminPassword1    = \"test\"
AdminImage1        = \"admin.jpg\"
AdminImageAlt1    = \"Administrator\"

AdminUsername2    = \"\"
AdminPassword2    = \"\"
AdminImage2        = \"\"
AdminImageAlt2    = \"\"

AdminUsername3    = \"\"
AdminPassword3    = \"\"
AdminImage3        = \"\"
AdminImageAlt3    = \"\"

AdminUsername4    = \"\"
AdminPassword4    = \"\"
AdminImage4        = \"\"
AdminImageAlt4    = \"\"

AdminUsername5    = \"\"
AdminPassword5    = \"\"
AdminImage5        = \"\"
AdminImageAlt5    = \"\"

\'------------------------------
\'Angiv chatbot indstillinger
\'------------------------------
\'System indstillinger for bot

Bot_ON_OFF    = \"ON\" \'Skal chat-botten være aktiv (BRUG ON/OFF)
Bot_Image    = \"dice_2.gif\" \'Angiv hvilket ikon botten skal bruge

\'personlige indstillinger for bot

Bot_Name        = \"Dicebot\" \'Hvad skal botten hedde
Bot_Age            = \"1601 år gammel\" \'Hvor gammel skal botten være
Bot_Sex            = \"Jeg er en bot\" \'Hvilket køn skal botten have
Bot_Home        = \"alle steder og ingen steder\" \'Hvor bor botten
Bot_FavoriteMusic    = \"Alt med terninger\" \'Hvilken slags musik kan botten bedst lide
Bot_FavoriteFood    = \"spillere som dig\" \'Hvad er bottens livret
Bot_Mood        = \"Glad :)\" \'Hvilket humør er botten i
Bot_Whatis        = \"Jeg er en robot der er designet til at kaste med terninger til online RPG..virker ikke endnu!\" \'Hvad er botten for noget
\'---------------------------------------------------------------
\'Du kan downloade og uploade nye personligheder til Cyberbob på:
\'                http://www.he-computers.dk/killerchat
\'---------------------------------------------------------------
%>

og bot_public.asp
<%
                    \'Pil ikke ved koden imellem disse linier!!!
                    \'=======================================
                    Function bot_public(bot_input, bot_output)
                   
                        If bot_spoken = \"\" Then
                                   
                                If InStr(LCase(Request(\"message\")), LCase(bot_input)) Then
                                    For x = MaxPublicMessages To 2 Step -1
                                        Application(\"\"& Systemname &\"_publicmessage_\" & x) = Application(\"\"& Systemname &\"_publicmessage_\" & x-1)
                                    Next
                                        PublicMessage = Server.HTMLEncode(Request(\"message\"))
                                        Application(\"\"& Systemname &\"_publicmessage_1\") = \"<b>\" & Session(\"\"& Systemname &\"_chatname\") & \" :</b> \"& Bstart & Istart &\"<font color=\'\" & Request(\"tekstfarve\") & \"\'>\" & PublicMessage & Bslut & Islut & \"</font>\"
                               
                                    For x = MaxPublicMessages To 2 Step -1
                                        Application(\"\"& Systemname &\"_publicmessage_\" & x) = Application(\"\"& Systemname &\"_publicmessage_\" & x-1)
                                    Next
                                        Application(\"\"& Systemname &\"_publicmessage_1\") = \"<b>\" & Bot_Name & \" :</b> \"& bot_output &\"</font>\"
                                    bot_spoken = 1
                                    Response.Redirect \"chat.asp?mode=publicmessages\"
                                End If
                               
                        End If
                       
                    End Function
                    \'=======================================
                    \'Herfra kan du oplære botten
                    \'=======================================
                    \'Sådan gøres det:
                    \'For hvert ord eller sætning som botten skal svare på laver du en linie som denne:
                    \'
                    \'                    bot_public \"X\", \"Y\"
                    \'
                    \'X = \"TEKST\" Det ord eller den sætning som botten skal svare på
                    \'Y = \"TEKST\" Den tekst som botten skal udskrive til chatten som svar på X
                    \'Bemærk at de øverste linier har 1. prioritet... Det vil sige at hvis du har disse linier:
                    \'
                    \'            bot_public \"hej\", \"Hej med dig :)\"   
                    \'            bot_public \"hej med dig\", \"Hej :)\"   
                    \'
                    \'Og brugeren indtaster \"Hej med dig\"
                    \'Vil botten svare \"Hej med dig :)\" fordi ordet hej indgår i den øverste linie
                    \'
                    \'Du kan også bruge globale varialber. Her er en liste over variablerne du kan bruge:
                    \'
                    \'Bot_Name
                    \'Bot_Age
                    \'Bot_Sex
                    \'Bot_Home
                    \'Bot_FavoriteMusic
                    \'Bot_FavoriteFood   
                    \'Bot_Mood
                    \'Bot_Whatis
                    \'Bot_Help
                    \'Bot_RollDice
                    \'
                    \'Der er i standard koden et eksempel på hvordan man indsætter variabler
                    \'=======================================

                    bot_public \"hej\", \"Hej med dig :)\"   
                    bot_public \"hvad er dit navn\", \"Jeg hedder \"& Bot_Name &\"\"    \'Bemærk at alle globale variabler skal stå mellem disse tegn: \"&  &\"
                    bot_public \"hvor gammel er du\", \"Jeg er \"& Bot_Age &\"\"
                    bot_public \"hvor bor du\", \"Jeg bor \"& Bot_Home &\"\"   
                    bot_public \"hvad er din livret\", \"jeg elsker at få \"& Bot_FavoriteFood &\" til morgenmad Bwahahaha!!!!!\"
                    bot_public \"hvad er du\", \"\"& Bot_Whatis &\"\"
                    bot_public \"er du dum\", \"My momma says stupid is as stupid does\"
                    bot_public \"hjælp\", \"Jeg kan svare på flg. ting.. hej, mit navn, min alder, hvor jeg bor, min livret, hvad jeg er, om jeg er dum\"
                    \'=======================================
                    \'Pil ikke ved koden herunder!!!
                    \'=======================================
                       
                        If bot_spoken = \"\" Then
                                   
                                If InStr(LCase(Request(\"message\")), LCase(bot_input)) Then
                                    For x = MaxPublicMessages To 2 Step -1
                                        Application(\"\"& Systemname &\"_publicmessage_\" & x) = Application(\"\"& Systemname &\"_publicmessage_\" & x-1)
                                    Next
                                        PublicMessage = Server.HTMLEncode(Request(\"message\"))
                                        Application(\"\"& Systemname &\"_publicmessage_1\") = \"<b>\" & Session(\"\"& Systemname &\"_chatname\") & \" :</b> \"& Bstart & Istart &\"<font color=\'\" & Request(\"tekstfarve\") & \"\'>\" & PublicMessage & Bslut & Islut & \"</font>\"
                               
                                    For x = MaxPublicMessages To 2 Step -1
                                        Application(\"\"& Systemname &\"_publicmessage_\" & x) = Application(\"\"& Systemname &\"_publicmessage_\" & x-1)
                                    Next
                                        Application(\"\"& Systemname &\"_publicmessage_1\") = \"<b>\" & Bot_Name & \" :</b> Jeg tror ikke rigtig jeg forstår?</font>\"
                                    bot_spoken = 1
                                    Response.Redirect \"chat.asp?mode=publicmessages\"
                                End If
                               
                        End If
                       
                    \'=======================================
%>

Hele scriptet kan hentes her http://www.asp.dk/sources.asp?mode=view_source&cat_id=10&id=1244&tech_id=1

Håber der er en hej der kan hjælpe mig.. eller give mig hints til hvordan det kan løses

kan kontaktes pr mail obelix@sonsoflight.dk eller icq 4215441

/Thomas
Avatar billede jbengtssonjensen Nybegynder
01. september 2001 - 03:44 #1
Alea jacta est...

OK, undskyld hvis jeg nedvurderer dine evner indenfor programmering, eller bare har misforstået dit spørgsmål. Nedenstående viser et eksempel på, hvordan du kan udskrive et vilkårligt tal mellem 1-10 eller 2-20. Du kan sætte koden ind i et tomt HTML-dokument og åbne det i en browser.

Eksempel med VBScript:
----------------------

<script language=\"VBScript\">
<!--
function dice(terning, antal)
    Dim s, t, b
    randomize
    s = Int((terning * Rnd) + antal)
    if antal > 1 then
      t = \"Resultat af slag med \" + antal + \" terninger\"
    else
      t = \"Resultat af slag med \" + antal + \" terning\"
    end if
    b = msgbox(s, 0, t)
end function
//-->
</script>
<form name=\"form1\" method=\"post\" action=\"\" onSubmit=\"call dice(10, document.form1.number.value)\">
  <p>Antal 10-sidede terninger</p>
  <select name=\"number\">
  <option value=\"1\">1</option>
  <option value=\"2\">2</option>
  </select>
  <p>
  <input type=\"submit\" name=\"Submit\" value=\"Submit\">
  </p>
</form>

Eksempel med ASP (kræver IIS ell. lign.):
-----------------------------------------

<%@Language=\"VBSCRIPT\"%>
<%option explicit%>
<%
function dice(terning, antal)
    Dim s, t, b \'dimensioner varianter
    randomize \'start nummergenerator
    s = Int((terning * Rnd) + antal) \'lav vilkårligt tal
    if antal > 1 then \'tjek om terning skal i ental/flertal
      t = \"Resultat af slag med \" + antal + \" terninger\"
    else
      t = \"Resultat af slag med \" + antal + \" terning\"
    end if
    dice = t & \": \" & s \'returner værdi
end function
%>
<form name=\"form1\" method=\"post\" action=\"<%=request(\"URL\")%>\">
  <p>Antal 10-sidede terninger</p>
  <select name=\"number\">
  <option value=\"1\">1</option>
  <option value=\"2\">2</option>
  </select>
  <p>
  <input type=\"submit\" name=\"Submit\" value=\"Submit\">
  </p>
</form>
<%
if request.form <> \"\" then
    Dim result
    result = dice(10, request.form(\"number\")) \'kald funktionen -- du kan hardkode 10-tallet, hvis det kun er aktuelt at slaa een type terninger
    response.write(\"<u>\" & result & \"</u>\")
end if
%>

Hjælper det?
Avatar billede thje Nybegynder
01. september 2001 - 09:38 #2
Det der har jeg prøvet og det virker ikke sammen med botten, får bare en fejl på siden så
Avatar billede zeptic Nybegynder
01. september 2001 - 10:32 #3
Hvis du allerede har en funktion, der laver terning-kastene, så vil jeg foreslå dig at tilføje følgende i din kode:

kast=rul_terning()  \' rul_terning skal så returnere en streng med resultatet af kastet
bot_public \"rul\", kast  \' hvor resultatet af kastet vises

Egentlig ville jeg hellere have skrevet bot_public \"rul\", rul_terning(), men jeg er ikke sikker på det virker.

Og så synes jeg lige du skal trække en del point fra dette spg., 485 er voldsomt mange. Jeg vil sige at 100 vil være mere en nok.

/zeptic
Avatar billede thje Nybegynder
02. september 2001 - 23:42 #4
jeg har fået en gammel ven til at fikse det for mig, så jeg snupper mine points igen
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester