Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
KCI II - Poradnik, ciąg dalszy.
#9
Rozpoczynając praktyki, zaczniemy od najprostszych rzeczy...
POWITANIA
Na razie zajmiemy się powitaniami, w przyszłości reakcjami na słowa i takie tam.
Reakcje na wejście użytkownika zapisane są w definicji def evOnUserJoined(), definicja wykorzystuje zmienną sUserName - jest to nick osoby wchodzącej.
W podstawowym skrypcie zawartość tej definicji wygląda następująco:

Kod:
print "UserJoined:", sUserName
#powitaj kogos na glownym
bot.say ("<b>witaj </b>" + sUserName)
#i daj -dwulinijkowe- info na priva! :)
bot.say_to("Jestem testowa wersja bota KCI 2.\nWitaj na chacie <b>NAZWA POKOJU</b> :)", sUserName)

Dzięki temu bot wita osoby wchodzące na czat tekstem "witaj NICK", jest taki miły, że powita nawet sam siebie Wink I tu od razu zabezpieczamy powitania, aby bot nie witał sam siebie, no chyba, że to schizofrenik i ma rozdwojenie jaźni, ale jeszcze o takim bocie nie słyszałem. Zmodyfikujmy część odpowiedzialną za powitanie użytkownika na głównym oknie czatu. Kasujemy linijkę bot.say ("<b>witaj </b>" + sUserName) i w jej miejsce wstawiamy:

Kod:
sNick = sUserName.lower()
if sNick == 'nazwabotapisanamalymiliterami':
    return
else:
    bot.say('Witaj <b>%s</b>'% sUserName)

Teraz po kolei:

sNick = sUserName.lower()
zmienna sNick zawiera teraz nick osoby wchodzącej do pokoju, ale pisany małymi literami, ułatwia to identyfikacje nicków, w których użyte są duże litery.
if sNick == 'nazwabotapisanamalymiliterami':
    return

kiedy bot zidentyfikuje swoją nazwę jako nick osoby wchodzącej, po prostu przerwie wykonywanie dalszych instrukcji.
else:
    bot.say('Witaj <b>%s</b>'% sUserName)

jeżeli nick będzie inny to bot powita naszego gościa tekstem "Witaj NICK". Tutaj wpisujemy powitania dla wszystkich! Jeżeli ktoś chcę prywatne powitania to trzeba dodać kilka linijek:

Kod:
sNick = sUserName.lower()
if sNick == 'nazwabotapisanamalymiliterami':
    return
elif sNick == 'nickspecjalny':
    bot.say('Cześć misiu ;* Dawno się nie widzieliśmy ;)')
else:
    bot.say('Witaj <b>%s</b>'% sUserName)

Znów wyjaśniamy:
if sNick == 'nazwabotapisanamalymiliterami':
    return

Nie muszę tłumaczyć...
elif sNick == 'nickspecjalny':
    bot.say('Cześć misiu ;* Dawno się nie widzieliśmy Wink')

elif to taka fuzja else i if, dzięki temu możemy dodać kolejny warunek do tej samej instrukcji, od teraz jeżeli chcemy dodać komuś prywatne powitanie dodajemy kolejny elif, który stawiamy zawsze po if i zawsze przed else.
Takich elifów możemy dać ile chcemy, pamiętajcie, że nick wpisujemy teraz małymi literami!
Podsumowując, przy if dajemy nick bota, potem elif'y dla powitań specjalnych, a na końcu else dla zwykłych użytkowników.
W dalszej kolejności bot wysyła na priv osoby wchodzącej dwu linijkowe info:
bot.say_to("Jestem testowa wersja bota KCI 2.\nWitaj na chacie <b>NAZWA POKOJU</b> Smile", sUserName)
Polecam to wywalić, bo tylko irytuje użytkowników ;P
Oczywiście powitania można sobie pokolorować, aby tego dokonać należy tekst zamieścić w tagach koloru (według definicji RGB), np. <#FF0000>Jakis tekst</#FF0000> dla koloru czerwonego. Pozostałe tagi, których możecie użyć:
<b></b> - pogrubienie
<i></i> - pochylenie
<u></u> - podkreślenie
Dla bardziej zaawansowanych użytkowników nie będzie tajemnicą, że w dość prosty sposób możemy stworzyć sobie powitania losowe. Ale o tym może kiedy indziej ;P

Cały kod, który należy wkleić i odpowiednio zmodyfikować w swoim skrypcie:

# Tworzymym nowa zmienna, ktora przechowa nick pisany malymi literami
sNick = sUserName.lower()
# Tworzymy instrukcje warunkową if dla nicka bota
if sNick == 'nazwabotapisanamalymiliterami':
    return
# elif dla powitan specjalnych, mozna dodac ich dosc duzo
elif sNick == 'nickspecjalny':
    bot.say('Czesc misiu ;* Dawno sie nie widzielismy Wink')
elif sNick == 'nickspecjalny2':
    bot.say('Siem Bro! <o2>')
# else to u nas powitania dla zwyklych uzytkownikow
else:
    bot.say('<#FF0000>Witaj</#FF0000> <b>%s</b>'% sUserName)

Przypominam, że znak # oznacza komentarz i bot nie bierze pod uwagę znaków, które znajdą się właśnie za # aż do końca linijki!
I pamiętajcie o wcięciach!
  


Wiadomości w tym wątku
KCI II - Poradnik, ciąg dalszy. - przez Xtiano - 26-08-2007, 01:06
Odp: KCI II - Poradnik, ciąg dalszy. - przez Smok - 26-08-2007, 10:06
Odp: KCI II - Poradnik, ciąg dalszy. - przez Xtiano - 27-08-2007, 01:30
Odp: KCI II - Poradnik, ciąg dalszy. - przez Smok - 27-08-2007, 12:15
Odp: KCI II - Poradnik, ciąg dalszy. - przez Xtiano - 27-08-2007, 19:29
Odp: KCI II - Poradnik, ciąg dalszy. - przez Xtiano - 27-08-2007, 22:08
Odp: KCI II - Poradnik, ciąg dalszy. - przez Xtiano - 01-09-2007, 00:57

Skocz do:


Użytkownicy przeglądający ten wątek:
1 gości