简体   繁体   中英

Randomizing script for HexChat IRC Client, in Python or Perl

I have a hunch that the answer to this is embarassingly easy, but nonetheless I can't figure it out (the fact that I don't know any of these languages at all might be the case). What I need is a script which would work this way:

  1. First, you type command like !random and a number from the range 1-100 (the number would mean the probability of success in %) [like this: !random 78]
  2. Then, it would - basing on given probability - choose whether you succeeded or not [for example, with !random 78, there is 78% probability that the outcome would be "Success"]
  3. Then, it would show on a channel a public message what the outcome is ("Success" or "Failure")

I need this one for online text RPG sessions. Also sorry for my bad English.

How the code looks now:

    __module_name__ = "HexChat Randomiser"
    __module_version__ = "0.1"
    __module_description__ = "A randomiser for HexChat."
      
    import random
    import xchat

def callback(word, world_eol, userdata):
    number = word[1]
    if random_chance(number):
        print ("Success")
    else:
        print ("Failure")


    def random_chance(percent_chance):
        return random.randrange(1, 101) > (100 - percent_chance)


    xchat.hook_command("random", callback, help="/random <number>")

The error:

Traceback (most recent call last):
File "<string>", line 10, in callback
File "<string>", line 17, in random_chance
TypeError: unsupported operand type(s) for -: 'int' and 'str'

First you may want to have a look at the Python or Perl documentation for hexchat.

If you want to proceed in python I've wrote a small script to get you started:

import random
import xchat

def callback(word, world_eol, userdata):
    number = word[1]
    if random_chance(number):
        print "Success"
    else:
        print "Failure"


def random_chance(percent_chance):
    return random.randrange(1, 101) > (100 - int(percent_chance))
       

xchat.hook_command("random", callback, help="/random <number>")

You will have to get it to work in hexchat yourself. To load the script you will have to first save it some where then call the load command :

Load a script with given filename. /load will also work.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM