Jump to content
xisto Community

The Cevt Mechanism Heres my take on the extensive core of Pika Bot.

Recommended Posts

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://forums.xisto.com/no_longer_exists/


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 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.


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




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.





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)



System Variables

























User Defined Variables

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



System Function

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


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



Share this post

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Create New...

Important Information

Terms of Use | Privacy Policy | Guidelines | We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.