Jump to content
Vhaerun

Game::Bitefight

Recommended Posts

Salut!

Am inceput lucrul la un modul perl pentru bitefight . Momentan stie raid ( dar nu si atacuri ) , informatii despre cont si lucru . Ar urma sa ii adaug ceva optiuni pentru inventar , mesaje si atacuri .

Exemplu de cod :


use strict;
use warnings;
use Browser::Game::Bitefight;

my $account=Browser::Game::Bitefight->new(user => "user",pass => "parola",server => 2);

my %stats=$account->stats();

for my $key (keys %stats) {

print $key . " " . $stats{$key},"\n";

}

$account->lucru(2);

Metode

new

constructor .

* user => userul_tau ,

in loc de userul_tau vei pune numele contului

* pass => parola_ta ,

in loc de parola_ta vei pune parola contului

* server => [1,2,3,4,5,6,7,8]

aici vei alege numarul serverului tau

raid($TIMP)

iti trimite personajul in raid

- $TIMP trebuie sa se incadreze in limita timpului tau , ex : raid(10) pentru raid de zece minute

lucru($TIMP)

iti pune personajul la lucru

- $TIMP reprezinta numarul de ore ce vor fi lucrate , $TIMP trebuie sa fie in intervalul [0,8] , ex: lucru(2) pentru doua ore de lucru .

stats

intoarce un hash ce contine unele informatii despre personajul tau : aur , pietre , pozitie in clasament , forta , dex , etc .

timp_raid

intoarce timpul ramas de raid

Cand voi mai avea ceva timp o sa mai lucrez la el . Ar fi ok daca l-ati testa si voi,poate gasiti ceva ce mie mi-a scapat .

Modulele sunt urmatoarele :

Browser::Game


package Browser::Game;

sub new {

my $class=shift;
my $object={};
my %args=@_;

$object->{account}=Game::Account->new();
map { $object->{account}->field($_,$args{$_}) } keys %args;

bless($object,$class);
return $object;

}

1;

Browser::Game::Bitefight


package Browser::Game::Bitefight;

@ISA=qw(Browser::Game);

use strict;
use warnings;
use Browser::Game;
use Browser::Game::Account;
use WWW::Mechanize;


my $mech=WWW::Mechanize->new();

sub new {

my $class=shift;
my $self=$class->SUPER::new(@_);
bless($self,$class);
$self->___login();
return $self;

}

sub lucru {

my $self=shift;
my $timp=shift;
my $key;
my $value;

if($timp !~ /^\d+$/ || ($timp < 0 || $timp > 8)) {
die "folosire functie lucru : lucru(VALOARE) , VALOARE trebuie sa fie numar , 0 < VALOARE < 9\n";
}

$mech->get("http://s@{[$self->{account}->field('server')]}.bitefight.ro/bite/city.php?typ=2");

my $content=$mech->content;

if($content=~/td class=\"tdn\"><select name=\"(\w+)\"/gi) {
$key=$1;
}

while($content=~/<option value=\"(\w{32})\">(\d) ore/gi) {
if($2==$timp) {
$value=$1;
last;
}
}

$mech->submit_form(with_fields => { $key => $value });

}

sub ___login {

my $self=shift;

$mech->agent_alias("Windows IE 6");
my $login_page="http://s@{[$self->{account}->field('server')]}.bitefight.ro/bite/login.php";

$mech->get($login_page);

$mech->form_number(1);
$mech->field("user",$self->{account}->field("user"));
$mech->field("pass",$self->{account}->field("pass"));
$mech->click();

if(!$mech->success()) {
print "Eroare la login!!!\n";
print $mech->content,"\n";
$self->dump();
die "Eroare la login\n";
}

$mech->get("http://s@{[$self->{account}->field('server')]}.bitefight.ro/bite/uebersicht.php?&web_redirected=1");

}


sub content {

my $self=shift;
return $mech->content();

}

sub dump_content {

my $self=shift;
$mech->save_content("temp.html");

}

sub dump {

my $self=shift;

foreach my $val ($self->{account}->fields()) {
print "$val " . $self->{account}->field($val),"\n";
}

}

sub stats {

my $self=shift;
my %stats;
my @stats=qw(For?? Ap?rare Dexteritate Rezisten?? Carism? Experien?? Via??);
$mech->get("http://s@{[$self->{account}->field('server')]}.bitefight.ro/bite/uebersicht.php");

my $content=$mech->content;

if($content=~/<tr><td>Aurul t.*?:<\/td><td>([0-9\.]+)\s+<img src/i) {
$stats{"aur"}=$1;
}
if($content=~/Pietre ale Iadului<\/a>:<\/td><td>(\d+)\s+<img src/i) {
$stats{"iad"}=$1;
}
if($content=~/<tr><td>Clasament:<\/td><td>(\d+)<\/td><\/tr>/i) {
$stats{"loc"}=$1;
}

for my $val(@stats) {
#if($content=~/$val.*?class=\"fontsmall\">\s*\((\d+)\)<\/span><\/td><\/tr>/gi) {

if($content=~/$val.*?class=\"fontsmall\">\s*\((\d+.*?)\)<\/span><\/td><\/tr>/gi) {
$stats{$val}=$1;
}
}

$stats{"raid"}=$self->timp_raid();

return %stats;

}



sub timp_raid {

my $self=shift;
my $available;
my $content;
$mech->get("http://s@{[$self->{account}->field('server')]}.bitefight.ro/bite/robbery.php");

$content=$mech->content;

while($content=~/<option value=\"\w{32}\">(\d+)\sminute<\/option>/gi) {
$available=$1;
}

return $available;

}

sub raid {

my $self=shift;
my $timp=shift;
my $content;
my $value;

$mech->get("http://s@{[$self->{account}->field('server')]}.bitefight.ro/bite/robbery.php");
$content=$mech->content;

while($content=~/<option value=\"(\w{32})\">(\d+)\sminute<\/option>/gi) {
if($2==$timp) {
$value=$1;
last;
}
}

if(defined $value) {
$mech->submit_form(with_fields => { "mission[1]" => $value });
}
else {
print "$value e nedefinit. S-ar putea sa nu mai ai timp de raid !\n";
}

}



1;

Browser::Game::Account


package Game::Account;

use strict;
use warnings;

sub new {

my $class=shift;
my $object={};
bless($object,$class);
return $object;

}

sub field {

my $self=shift;
my $key=shift;
if(@_) {
my $val=shift;
return $self->{$key}=$val;
}
return $self->{$key};

}

sub delete_field {

my $self=shift;
my $key=shift;
delete $self->{$key};

}

sub fields {

my $self=shift;
return keys %{ $self };

}

1;

Link to comment
Share on other sites

Hai mah nu ma ajuta nimeni...plz... :(:(:(

Nu. Un scriptkiddie in plus nu ajuta cu nimic.

In plus, Vhaerun a si specificat (in caz ca nu iti dai singur seama) limbajul in care e facut. Daca nu stii sa rulezi un astfel de script, probabil nici nu meriti sa il folosesti (asta nu inseamna ca daca stii sa il rulezi, il meriti/intelegi).

Link to comment
Share on other sites

Hai mah nu ma ajuta nimeni...plz... :(:(:(

Nu. Un scriptkiddie in plus nu ajuta cu nimic.

In plus, Vhaerun a si specificat (in caz ca nu iti dai singur seama) limbajul in care e facut. Daca nu stii sa rulezi un astfel de script, probabil nici nu meriti sa il folosesti (asta nu inseamna ca daca stii sa il rulezi, il meriti/intelegi).

dar voi nu stiti sa ajutati pe cei care nu stiu?? dai repede ca dute pe google si invata lafel de repede puteai spune ce trebe sa faca

Link to comment
Share on other sites

Nu poti sa impui ajutorul, daca vrea cineva te ajuta, daca nu...te rogi degeaba.

Dupa cum a formulat intrebarea e clar ca nu prea are habar cu ce se mananca perl'ul si nici atat un modul cu alte cuvinte baza canci, deci inainte sa invete cum sa foloseasca modulul lui Vhaerun ar trebui sa invete sa foloseasca perl'ul. Probabil de aia nu i-a raspuns nimeni.

Link to comment
Share on other sites

Hai mah nu ma ajuta nimeni...plz... :(:(:(

Nu. Un scriptkiddie in plus nu ajuta cu nimic.

In plus, Vhaerun a si specificat (in caz ca nu iti dai singur seama) limbajul in care e facut. Daca nu stii sa rulezi un astfel de script, probabil nici nu meriti sa il folosesti (asta nu inseamna ca daca stii sa il rulezi, il meriti/intelegi).

dar voi nu stiti sa ajutati pe cei care nu stiu?? dai repede ca dute pe google si invata lafel de repede puteai spune ce trebe sa faca

De ce Dj-Xplood ? Nici tu nu stii sa il folosesti ? :P

Link to comment
Share on other sites

Nu te ajuta nimeni pentru ca nu ne plac lenesi . Pariu ca multi aveti "roate" folositi udp.pl si habar n-aveti ca-i un script perl .

Daca luai o linie din cod macar si cautai pe google spre exemplu

use strict;

vedeai imediat Perl .

Continuai cu un search pentru ce este Perl . Perl is a dynamic programming language created by Larry Wall and first released in 1987.

Asa aflai si la ce foloseste , cum se foloste , exemple de cod ..

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
×
  • Create New...