[Release]Anti-Compose Bot NPC

09/18/2009 21:34 funhacker#1
Intro
I said I would do this release a few days ago but kept putting it off so here it is.

Release Function:
This release will make the main compose NPC of EO (Market-Aderes) randomly decide to move to locations near him. This should prevent the Auto-Compose Bot that has made some things unfair for other players.

Future Updates:
I will be working on an app that you will assign NPC ID values to which in turn it will assign the random move script to this NPC. There will also be a maintenance app that will change the random locations of the NPC spawn to ones within the NPC location.

Rar File Contents:
RandomMoveComposer(App):
Update Application that will run an SQL script on your database
MySQL Devart Library Extensions

200(EudComposer-Aderes)(Spreadsheet):
Spreadsheet for the EudComposer containing cq_action/task/npc and locations

ReadMe:
I have included a console app that will run the SQL script for a local server you will need the following:
Code:
[B][U]Account[/U][/B]
Login: test
Password: test
Host: 127.0.0.1

[B][U]Database[/U][/B]
Name: my

[B][U]Tables[/U][/B]
name:
cq_action
cq_task
cq_npc
I have also included an editble version of this NPC in a spreadsheet most of it's just sum values so all you have to do is change 1 ID and it will change the rest. (highlighted by the gray box).
There are a list of 12 different locations the NPC will randomly move to from time to time you can add more or edit these how ever you wish.

You can turn the spreadsheet into a working SQL by replacing the following (using ctrl+h)
Quote:
[TAB]@' -> '
[TAB]@[TAB] -> ,'
[TAB]$' -> '
[TAB]$[TAB] -> [SPACE]
[TAB]* -> ),
*[TAB] -> (
[TAB] -> ,
Make sure to do it in that order or you can make some problems for yourself.
This is pretty much how I code everything makes things much more faster and easier to edit when you come back to it.

If need be I can post a full guide on the concepts of using Excel to code your database edits for EO.

SQL Script
Code:
delete from cq_action
where
id >= 4007360 and id <= 4007382;

delete from cq_task
where
id >= 4007360 and id <= 4007382;

delete from cq_npc
where
id = 200;

insert into cq_action
values
(4007360,4007361,0,101,0,'Hi %user_name what would you like to do?'),
(4007361,4007362,0,102,0,'[Compose~Pet] 4007364'),
(4007362,4007363,0,104,0,'0 0 0'),
(4007363,0,0,120,0,''),
(4007364,0,0,1046,37,''),
(4007365,4007366,4007370,121,0,'1 3'),
(4007366,0,0,122,0,'4007367 4007368 4007369'),
(4007367,0,0,122,0,'4007370 4007371 4007372 4007373'),
(4007368,0,0,122,0,'4007374 4007375 4007376 4007377'),
(4007369,0,0,122,0,'4007378 4007379 4007380 4007381'),
(4007370,4007360,4007365,121,0,'2 3'),
(4007371,4007360,0,301,200,'1000 315 448'),
(4007372,4007360,0,301,200,'1000 316 443'),
(4007373,4007360,0,301,200,'1000 312 440'),
(4007374,4007360,0,301,200,'1000 320 444'),
(4007375,4007360,0,301,200,'1000 323 450'),
(4007376,4007360,0,301,200,'1000 319 454'),
(4007377,4007360,0,301,200,'1000 313 452'),
(4007378,4007360,0,301,200,'1000 317 455'),
(4007379,4007360,0,301,200,'1000 320 453'),
(4007380,4007360,0,301,200,'1000 309 453'),
(4007381,4007360,0,301,200,'1000 312 456'),
(4007382,4007360,0,301,200,'1000 316 455');

insert into cq_task
(id,id_next)
values
(4007365,4007365),
(4007367,4007367),
(4007370,4007370),
(4007374,4007374),
(4007378,4007378),
(4007368,4007368),
(4007371,4007371),
(4007375,4007375),
(4007379,4007379),
(4007369,4007369),
(4007372,4007372),
(4007376,4007376),
(4007380,4007380),
(4007373,4007373),
(4007377,4007377),
(4007381,4007381),
(4007364,4007364);

insert into cq_npc
(id,name,type,lookface,mapid,cellx,celly,task0,data2,data3,sort,size_front,size_back,size_left,size_right)
values
(200,'Composer',29,12040,1000,315,448,4007365,5,5,1,3,3,3,3);
09/19/2009 04:16 Necron33#2
I wonder how this works, however, one thing is, writing tracers for the NPC by fetching it's X and Y coordinates won't be hard, it works for now, kind of annoying for any composer.
09/19/2009 12:07 funhacker#3
Quote:
Originally Posted by Necron33 View Post
I wonder how this works, however, one thing is, writing tracers for the NPC by fetching it's X and Y coordinates won't be hard, it works for now, kind of annoying for any composer.
This is just a basic version of how you can do this. The one that will be in acme will be much more advanced code that not many people would understand how to edit for their needs. This wont be too anoying for a everyday composer as the window for composing stays up until you close it. This will just stop people from starting a auto-compose bot and keep it going as you need to buy more compose items.
09/19/2009 16:13 badboy r4c3r#4
so how do i use this i open then i get (Name) has encountered a problem a need to close, any certain things we should know

ahhh just got it, lol i dont have test and test as user and password , i have changed to something totaly different

could some 1 post the sql files plz, as changing my user and pass back to test and test would be inconvenient.

Quote:
If need be I can post a full guide on the concepts of using Excel to code your database edits for EO.
yes please beacuse i cant seem to make a working sql from what u posted. ill check again when i get back
09/19/2009 19:23 King_Arthur#5
Quote:
Originally Posted by badboy r4c3r View Post
so how do i use this i open then i get (Name) has encountered a problem a need to close, any certain things we should know

ahhh just got it, lol i dont have test and test as user and password , i have changed to something totaly different

could some 1 post the sql files plz, as changing my user and pass back to test and test would be inconvenient.
You don't need to change any users and passwords. He has told you what you need to make for this to work:
Code:
Account
Login: test
Password: test
Host: 127.0.0.1

Database
Name: my

Tables
name:
cq_action
cq_task
cq_npc
So in simplest form you could do:
Code:
GRANT ALL PRIVILEGES my.* to 'test'@'localhost' IDENTIFIED BY 'test';
09/19/2009 21:21 badboy r4c3r#6
Quote:
Originally Posted by King_Arthur View Post
You don't need to change any users and passwords. He has told you what you need to make for this to work:
Code:
Account
Login: test
Password: test
Host: 127.0.0.1

Database
Name: my

Tables
name:
cq_action
cq_task
cq_npc
So in simplest form you could do:
Code:
GRANT ALL PRIVILEGES my.* to 'test'@'localhost' IDENTIFIED BY 'test';
ok i made a user test and pass test and granted all privileges but the app still give error
Do i have to move the files to a certain place or does that matter.
l[Only registered and activated users can see links. Click Here To Register...]
09/19/2009 21:34 funhacker#7
Code:
delete from cq_action
where
id >= 4007360 and id <= 4007382;

delete from cq_task
where
id >= 4007360 and id <= 4007382;

delete from cq_npc
where
id = 200;

insert into cq_action
values
(4007360,4007361,0,101,0,'Hi %user_name what would you like to do?'),
(4007361,4007362,0,102,0,'[Compose~Pet] 4007364'),
(4007362,4007363,0,104,0,'0 0 0'),
(4007363,0,0,120,0,''),
(4007364,0,0,1046,37,''),
(4007365,4007366,4007370,121,0,'1 3'),
(4007366,0,0,122,0,'4007367 4007368 4007369'),
(4007367,0,0,122,0,'4007370 4007371 4007372 4007373'),
(4007368,0,0,122,0,'4007374 4007375 4007376 4007377'),
(4007369,0,0,122,0,'4007378 4007379 4007380 4007381'),
(4007370,4007360,4007365,121,0,'2 3'),
(4007371,4007360,0,301,200,'1000 315 448'),
(4007372,4007360,0,301,200,'1000 316 443'),
(4007373,4007360,0,301,200,'1000 312 440'),
(4007374,4007360,0,301,200,'1000 320 444'),
(4007375,4007360,0,301,200,'1000 323 450'),
(4007376,4007360,0,301,200,'1000 319 454'),
(4007377,4007360,0,301,200,'1000 313 452'),
(4007378,4007360,0,301,200,'1000 317 455'),
(4007379,4007360,0,301,200,'1000 320 453'),
(4007380,4007360,0,301,200,'1000 309 453'),
(4007381,4007360,0,301,200,'1000 312 456'),
(4007382,4007360,0,301,200,'1000 316 455');

insert into cq_task
(id,id_next)
values
(4007365,4007365),
(4007367,4007367),
(4007370,4007370),
(4007374,4007374),
(4007378,4007378),
(4007368,4007368),
(4007371,4007371),
(4007375,4007375),
(4007379,4007379),
(4007369,4007369),
(4007372,4007372),
(4007376,4007376),
(4007380,4007380),
(4007373,4007373),
(4007377,4007377),
(4007381,4007381),
(4007364,4007364);

insert into cq_npc
(id,name,type,lookface,mapid,cellx,celly,task0,data2,data3,sort,size_front,size_back,size_left,size_right)
values
(200,'Composer',29,12040,1000,315,448,4007365,5,5,1,3,3,3,3);
09/20/2009 14:21 badboy r4c3r#8
well after using this sql my composers dont work.
09/20/2009 19:52 funhacker#9
Quote:
Originally Posted by badboy r4c3r View Post
well after using this sql my composers dont work.
It is possible you do not have your cq_task setup like I do. Set values for min pk sex etc all to the common values it makes scripts like these much easier.
09/23/2009 16:16 zuikislol#10
funhacker, could you please post a full guide how to set all this prgram up, because i dont unmderstand any of it, you havent explained where i have to extract any of those rar files you uploaded, so please just make a step by step little guide so everyone can understand it, thanks
09/23/2009 19:29 funhacker#11
Application:

1. Download
2. Check This list:
Quote:
Originally Posted by funhacker
ReadMe:
I have included a console app that will run the SQL script for a local server you will need the following:
Code:
Account
Login: test
Password: test
Host: 127.0.0.1

Database
Name: my

Tables
name:
cq_action
cq_task
cq_npc
3. Double click app
4. There is no 4 you just finished.

Excel file:
1. Read the Readme in my post:
Quote:
Originally Posted by funhacker
I have also included an editble version of this NPC in a spreadsheet most of it's just sum values so all you have to do is change 1 ID and it will change the rest. (highlighted by the gray box).
There are a list of 12 different locations the NPC will randomly move to from time to time you can add more or edit these how ever you wish.

You can turn the spreadsheet into a working SQL by replacing the following (using ctrl+h)
Quote:
[TAB]@' -> '
[TAB]@[TAB] -> ,'
[TAB]$' -> '
[TAB]$[TAB] -> [SPACE]
[TAB]* -> ),
*[TAB] -> (
[TAB] -> ,
Make sure to do it in that order or you can make some problems for yourself.
This is pretty much how I code everything makes things much more faster and easier to edit when you come back to it.
2. There is no 2 you are done.

SQLFile:
1. Highlight SQL Script in code box in my post:
Quote:
Originally Posted by funhacker
Code:
delete from cq_action
where
id >= 4007360 and id <= 4007382;

delete from cq_task
where
id >= 4007360 and id <= 4007382;

delete from cq_npc
where
id = 200;

insert into cq_action
values
(4007360,4007361,0,101,0,'Hi %user_name what would you like to do?'),
(4007361,4007362,0,102,0,'[Compose~Pet] 4007364'),
(4007362,4007363,0,104,0,'0 0 0'),
(4007363,0,0,120,0,''),
(4007364,0,0,1046,37,''),
(4007365,4007366,4007370,121,0,'1 3'),
(4007366,0,0,122,0,'4007367 4007368 4007369'),
(4007367,0,0,122,0,'4007370 4007371 4007372 4007373'),
(4007368,0,0,122,0,'4007374 4007375 4007376 4007377'),
(4007369,0,0,122,0,'4007378 4007379 4007380 4007381'),
(4007370,4007360,4007365,121,0,'2 3'),
(4007371,4007360,0,301,200,'1000 315 448'),
(4007372,4007360,0,301,200,'1000 316 443'),
(4007373,4007360,0,301,200,'1000 312 440'),
(4007374,4007360,0,301,200,'1000 320 444'),
(4007375,4007360,0,301,200,'1000 323 450'),
(4007376,4007360,0,301,200,'1000 319 454'),
(4007377,4007360,0,301,200,'1000 313 452'),
(4007378,4007360,0,301,200,'1000 317 455'),
(4007379,4007360,0,301,200,'1000 320 453'),
(4007380,4007360,0,301,200,'1000 309 453'),
(4007381,4007360,0,301,200,'1000 312 456'),
(4007382,4007360,0,301,200,'1000 316 455');

insert into cq_task
(id,id_next)
values
(4007365,4007365),
(4007367,4007367),
(4007370,4007370),
(4007374,4007374),
(4007378,4007378),
(4007368,4007368),
(4007371,4007371),
(4007375,4007375),
(4007379,4007379),
(4007369,4007369),
(4007372,4007372),
(4007376,4007376),
(4007380,4007380),
(4007373,4007373),
(4007377,4007377),
(4007381,4007381),
(4007364,4007364);

insert into cq_npc
(id,name,type,lookface,mapid,cellx,celly,task0,data2,data3,sort,size_front,size_back,size_left,size_right)
values
(200,'Composer',29,12040,1000,315,448,4007365,5,5,1,3,3,3,3);
2.Press ctrl+c
3.Open Navicat (or any GUI MySQL application)
4.Double Click your server connection.
5.Double click your Database.
6.Open Query/Console for Database
7.Press ctrl+v.
8.Press Enter/Run(If using query)
9.There is no 9 you are done.
09/23/2009 20:08 zuikislol#12
thank you

im sorry again funhacker but still dont get it, yoiu have made both of your guides as understandable as for you but not for me, me compared to you, im the noob here, so please make another short guide, my problems is: i have run the sql script everything if fine, all i need to know is where i have to put the RandomMoveComposer(App) and the 200(EudComposer-Aderes)(Spreadsheet) and what do i have to do with them, then do i have to make a user in my databse as test with password test? and if i've missed something for me to add then please tell me, thank you
09/24/2009 15:57 funhacker#13
Each upload is a Different option. If you have ran the SQL Script there is no need to use the other files. The application there atm is just a program that will run the script for you. The excel file is for advanced users that wish to see how to make SQL files much easier and to edit the existing one without alot of work.
09/24/2009 18:24 zuikislol#14
so what u're saying is that i dont need anything else i just had to run the sql script? and how will that stop the auto composing bot?

well the auto composing bot still works, so what have i done worng, i have only run the script, and made a user test,test, bd:my, tables action, task, nps, after i runned your script the composer didnt work, so i have to add the missing numbers in the cq_task, now the composer works and the auto compose bot work, what im i missing?
09/24/2009 20:56 funhacker#15
First thing you are missing is this: [Only registered and activated users can see links. Click Here To Register...]

Second thing the NPC will not move first time it is clicked this has more of an affect whilst on an active server with a few people using the composer at a time it will make your composer move locations only a few cells at a time. This means when the compose bot goes to start it will fail because the NPC is in the a different spot.