Welcome Guest ( Log In | Register )



 
Reply to this topicStart new topic
> The Cevt Mechanism, Here's my take on the extensive core of Pika Bot.
turbopowerdmaxst...
post Jan 17 2007, 08:44 PM
Post #1


Premium Member
Group Icon

Group: [HOSTED]
Posts: 392
Joined: 16-February 06
From: Kolkata, India
Member No.: 11,322



This post is a part of the Work in Progress guide for Pika Bot. I would appreciate any help in the making of this guide (Criticism and Ideas are extremely welcome). Please note, that this guide is meant to target begginers and the not so begginers alike. If you want to try your hands on Pika Bot, navigate here http://ntek.astahost.com/products/pikabot

What is Pika Bot?
Pika Bot is a Yahoo! Messenger Protocol based client which can automate your session on Yahoo!

Non-Greek Definition
Basically, its a chatter bot

What can I do with Pika Bot?
The most common use of the bot is to respond to Instant & Chat messages. But, with the power of the CEVT mechanism, you can do much more complex operations. You can make the bot leave a room in response to a message 'Say Bye Bot' or make the bot notify about the status changes of your buddies or yourself. These are just some examples. You can find out more by experimenting with the Bot Maker.

The CEVT Mechanism
Short for Conditions, Effects, Variables & Triggers, the CEVT mechanims is what gives Pika Bot the real flexibility.
Think of it in the sense, if something happens, I'll do this. Every action that is to be done, follows the same basic principle, where we take an action (an Effect) in response to an event (a Condition). Take a look at the following lines:-
    If somebody sends me a message, I'll say Hi.
    If somebody sends me a message Hello, I'll say Hi.
    If Brad sends me a message containing Hello, I'll say Sup Brad?.

Let us examine the first line: "If somebody sends me a message" is the condition here and "I'll say Hi" is the effect. We can break the conditions and effects to further simplify the working of the CEVT mechanism. When we ask questions such as, who sends me a message, we get the answer 'somebody'. This somebody is the value for our condition parameter 'Who Sends Message'. Similarily, the effect part is composed of what message I'll send, 'Hi' which accounts for the effect parameter 'Message'.

Simple enough, lets take a look on the second line. Here we have an added parameter to the condition, Message = Hello. Notice, how in the first case this parameter could be read as Message = Anything. In the third line, there's a specific answer to the Who sends message question, Brad. Again, the earlier lines could be thought of as Sender = Anybody.

This was just meant for imparting a general idea on the Condition & Effect method of doing things. You maybe wondering what the Trigger part does. The trigger is what actually links conditions and effects together. To comprehend its actual benefits, think of the scenario when you have multiple Conditions attributing to an effect or Multiple effects being run in response to a Condition. Simple One to One relation between Conditions & Effects can't aid this problem. The trigger mechanism also allows reusability of existing conditions and effects, as the same condition or effect can be used in multiple triggers.

The chaining of two conditions or two effects is done with either of the operator 'AND', 'OR'. Notice how the operators work differently for the two. While, two conditions joined with an 'AND' will run an effect only when both the conditions are TRUE, two effects joined by 'AND' imply that both will be run when the condition is TRUE. In case of the 'OR' operator, an effect will be run when either of the two conditions is set to TRUE, on the other hand, two effects joined by 'OR' will result in either of them (based on randomization) being executed.

Variables
Variables act as storage vaults for values. Any String inside the %s is considered a variable, for example %ChatRoomName%. Using variables inside the parameters, will result in their values replacing their place. For example:- A message, "Welcome to %ChatRoomName%", will be sent as Welcome to Macintosh:1 when the user is in the room Macintosh:1. Pika Bot has a lot of global variables, whose values are updated throughout the application runtime and support for custom variables of types, Integer, String & Boolean.

QUOTE

The following is the list of the Conditions, Effects and system variables supported by Pika Bot in its current release.

Conditions:-

Buddy Attributes
Comes Online -> Fired when one of your buddy signs in.
Goes Offline -> Fired when one of your buddy signs out.
Status Changes -> Fired when the status of one of your buddies changes.

Self Attributes
Come Online -> Fired when you sign in.
Go Offline -> Fired when you go offline.
Join Room -> Fired when you join a room.
Leave Room -> Fired when you leave a room.
Before I Leave Room -> Fired just before you exit a room.
Status Changes -> Fired when your status message changes.

Chat Attributes
Some one Joins Room -> Fired when a user joins a chat room.
Someone Leaves Room -> Fired when a user leaves a chat room
Someone Sends a Normal Chat Message -> Fired when a user send a Normal (i.e non Emotes and Think Text).
Someone Sends a Think Text Chat Message -> Fired when a Think Text is sent in a chat room.
Someone Sends a Emote Chat Message -> Fired when a user sends an Emote Chat Message.
Someone Sends a Chat Message -> Fired when either of the above three is true
User In Chat Room -> Fired as long as a user is in the room.

Private Message Attributes
New PM Arrives from Buddy -> Fired when one of your contacts sends a PM.
New PM Arrives from Non Buddy -> Fired when someone not in your buddy list sends you a PM.
New PM Arrives from Ignored User -> Fired when an Ignored User tries to PM you.
New PM Arrives from Non Ignored User -> Fired when a Non-Ignored user PMs you.
New PM Arrives -> Fired when anyone sends u a PM.
I Send PM -> Fired when you send someone a PM

Variable Attributes
Value Equals -> Fired when a variable equals the specified value.



QUOTE

Effects

General Effects
Pause -> Pauses the Bot Engine for the specified no. of seconds.

Chat Room Effects
Join Room -> Joins the specified chat room.
Leave Room -> Leaves the current room.
Send Chat Message -> Send a Chat Message.

Private Message Effects
Send PM -> Send a PM to the specified user.

Variable Effects
Set Value -> Set the value of the variable.
Increment -> Increments the value of an Integer Variable.
Decrement -> Decrements the value of an Integer Variable.
Inverse -> Toggles the state of a boolean variable (True/False)




QUOTE

System Variables

ChatRoomName
ChatUserCount
MyUserID
MyNickName
MyStatus
Month
Year
Day
Hour
Minute
Second
LastPMer
LastCMer
Date
Time
OnOffBuddy
StatusChangedBuddy
BuddyStatus
JoinUserName
JoinUserNick
LeftUserName
LeftUserNick


User Defined Variables
Pika Bot also supports creation, manupulation & validation of user defined variables of types(Integer, String & Boolean).



QUOTE

System Function
Random Number -> Generates a Random Number in the specified range.


QUOTE

Besides, being a Yahoo! Bot, Pika Bot includes quite a few of the basic Yahoo! Features. Full feature listing is given below:-

Log In to Yahoo! Messenger Protocol v 12
Send / Receive Private Message
Join Yahoo! Public Rooms
Send / Receive Chat Messages
Ignore / Un Ignore Yahoo IDs
Add / Remove Buddies
Deny Buddies / Others
Filter Room Join Messages
Font / Color Formatting
Fade / Alternate Color Text (GUI for fade color development not employed)
Smileys (All Yahoo! Smileys (Default + Hidden) + few extra smileys)
Inbuilt Browser using IE Active X Component
View Profiles
Display Profiles in chat Rooms
Events, Trigger, Condition based response engine
Online /Offline Buddy Notification
Buddy Status Display
Block Add Requests
Block Messages (Private) from Friends/ Non-Friends/All
Prefetched Yahoo Chat Room Listing (US, Germany, France, India etc)
Bot Maker
Online Update (Now can be done even when Offline)
Automatic Server Selection


Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic

Collapse

> Similar Topics

Topics Topics
  1. Laptop Slowing Down?(14)
  2. Howto: Change Graphical Login To Text(3)
  3. Configuring Apache On Fedora Core 3 For Userdir(2)
  4. Sign Up For Microsoft's New Mail(8)
  5. Intel Core 2 Duo(10)
  6. Crisis Core: Final Fantasy VII(5)
  7. The Sleeping Giant Of Intel Has Now Arisen!(10)
  8. Backup Problem In Cpanel(13)
  9. Fedora Core 5 Under Virtual Pc(5)
  10. Aspiring Guitarists?(0)
  11. New Website...(5)
  12. Problem With Fedora Core 5 Installation(14)
  13. Scientists Taken Aback By 2k Year Old Computing Mechanism(7)
  14. Tutorial: Build Pure CSS Using Online Tools - Part 2(0)
  15. Using Ndiswrapper In Fedora Core 6(4)
  1. Liberal Media(3)
  2. Fedora Core 6 Install Problem(6)
  3. P.A. Semi's PWRficient Processors Breaks Core 2 Duo 65w!(17)
  4. Intel's Teraflops Processor(8)
  5. Here's Thaantje(0)
  6. Intel Centrino Duo (core Duo?) T2050 1.6ghz(8)
  7. Setting Up Fedora Core For Web Hosting(0)
  8. Armored Core(0)
  9. Overclocking Core 2 Quad(4)
  10. Quad Core Processors, Are They Important?(8)
  11. Is The Core Image Possible On Radeon 9200 Mobile?(0)
  12. Strange Error When Trying To Install Fedora Core 9(6)
  13. Keyboard Video Mouse Switch(2)


 



- Lo-Fi Version Time is now: 14th October 2008 - 01:06 PM