OTS
Wszystko o naszym Servie
Obecny czas to Pon 13:54, 19 Lis 2018

Fast Attack-7.6

 
Odpowiedz do tematu    Forum OTS Strona Główna -> SVN, Kody
Zobacz poprzedni temat :: Zobacz następny temat  

Autor Wiadomość
Mario Bross
Administrator



Dołączył: 14 Lut 2007
Posty: 162
Przeczytał: 0 tematów

Ostrzeżeń: 0/5


PostWysłany: Czw 0:01, 15 Lut 2007    Temat postu: Fast Attack-7.6

Otóż, tak zauważyłem, że jest tutaj na tym forum jedyny kod do fast attacku ale to "kulawy" skrypt ^^ a mimo, to nadal widuję tutaj prośby o fast attack do tibi 7.6 Razz więc chwilę poszukałem i znalazłem trochę inny kod niż zwykle, czyli zabawa w plikach source w game.cpp, game.h itp., tu się ustawia tylko w jednym pliku, też jest to trochę bardziej ubogi skrypt od wszystkich zazwyczaj pokazywanych, ale jednak działa i ustawia on szybkość ataku na wszystkie profesję :] więc chyba jest dobry Razz a łatwiejszy do wkompilowania.
Kod Pod Tibię 7.6
Dobrze zrobiony, działający pod wszystkie profesję i prosty do zrobienia "Fast Attack" pod tibię 7.6:

W game.cpp znajdujecie:



Cytat:
player->eventCheckAttacking = addEvent(makeTask(2000, std::bind2nd(std::mem_fun(&Game::checkCreatureAttacking), player->getID())));
By zrobić, szybszy atak zmniejszamy tę [b]2000 które mamy w linijce (niektórzy mogą mieć inaczej) na jeszcze mniejsze, jednak to jest "kulawy" (słaby) skrypt, gdyż w tedy wszystkie profesje będą walić tak samo szybko. Dlatego jeśli chcecie by np. knight walił inaczej niż sorc to zamieniacie ten (wyżej podany) kod na ten (niżej podany):



Cytat:
switch(player->getVocation())
{
case 1:
player->eventCheckAttacking = addEvent(makeTask(2000, std::bind2nd(std::mem_fun(&Game::checkCreatureAttacking), player->getID())));
break;
case 2:
player->eventCheckAttacking = addEvent(makeTask(2000, std::bind2nd(std::mem_fun(&Game::checkCreatureAttacking), player->getID())));
break;
case 3:
player->eventCheckAttacking = addEvent(makeTask(1500, std::bind2nd(std::mem_fun(&Game::checkCreatureAttacking), player->getID())));
break;
case 4:
player->eventCheckAttacking = addEvent(makeTask(1000, std::bind2nd(std::mem_fun(&Game::checkCreatureAttacking), player->getID())));
break;
default:
player->eventCheckAttacking = addEvent(makeTask(2000, std::bind2nd(std::mem_fun(&Game::checkCreatureAttacking), player->getID())));
break;
}

Pod słowem "break" obok słowa "case" macie numery od 1-4 i to są "profesje" (vocation)
1-sorcerer
2-druid
3-paladyn
4-knight
I w każdym kodzie danej profesji macie ustawioną szybkość ataku, np. w tym podanym kodzie knight ma podane 1000 czyli z tego co wiem 1 sekundę (raczej tak Razz) to jeśli chcesz możesz to zmienić ^^ I zmieniasz każdemu (ustawiasz) tak jak chcesz Razz zapisujesz i kod jest już gotowe Razz

_________________________________________________________________
Jednak jest też inna metoda, też nawet łatwa, ale ona chyba jest niestety trochę uboga ^^
Mianowicie:
Znajdujesz w pliku game.cpp


Cytat:
player->eventCheckAttacking = addEvent(makeTask(2000, std::bind2nd(std::mem_fun(&Game::checkCreatureAttacking), player->getID())));
Możliwe, że masz inną szybkość ataku ustawioną Razz i zamieniasz to na:


Cytat:
player->eventCheckAttacking = addEvent(makeTask(g_config.getGlobalNumber("attackspeed", 1500), std::bind2nd(std::mem_fun(&Game::checkCreatureAttacking), player->getID())));
Zapisujesz, wchodzisz w config.lua i dodajesz tam (najlepiej na samym dole) taką linijkę:


Cytat:
-- attackspeed
attackspeed = 100
______________________________________________________________
@Edit
O dziwo, po chwili szukania, znalazłem najpopularniejszy sposób kompilowania fast attacku ^^ czyli jak wiadomo więcej zabawy przy kompilacji, ale póxniej wszystko się konfiguruje w config.lua :] więc proszę, oto i kod Razz
Po 1: Lepiej zróbcie zapasowy plik ots'a :]
Po 2: Kod jest pod 7.6 i jest testowany na Devland i YurOTS, reszta nie wiadomo Razz:

W game.cpp znajdujecie:


Cytat:
creature->eventCheckAttacking = addEvent(makeTask(2000, std::bind2nd(std::mem_fun(&Game::checkCreatureAttacking), id)));

I zamieniacie to na:


Cytat:
Player* player = dynamic_cast<Player*>(creature);
if (player->vocation == 0) {
int speed = int(g_config.NO_VOC_SPEED * 1000);
creature->eventCheckAttacking = addEvent(makeTask(speed, std::bind2nd(std::mem_fun(&Game::checkCreatureAtta cking), id)));
}
else if (player->vocation == 1) {
int speed = int(g_config.SORC_SPEED * 1000);
creature->eventCheckAttacking = addEvent(makeTask(speed, std::bind2nd(std::mem_fun(&Game::checkCreatureAtta cking), id)));
}
else if (player->vocation == 2) {
int speed = int(g_config.DRUID_SPEED * 1000);
creature->eventCheckAttacking = addEvent(makeTask(speed, std::bind2nd(std::mem_fun(&Game::checkCreatureAtta cking), id)));
}
else if (player->vocation == 3) {
int speed = int(g_config.PALLY_SPEED * 1000);
creature->eventCheckAttacking = addEvent(makeTask(speed, std::bind2nd(std::mem_fun(&Game::checkCreatureAtta cking), id)));
}
else if (player->vocation == 4) {
int speed = int(g_config.KNIGHT_SPEED * 1000);
creature->eventCheckAttacking = addEvent(makeTask(speed, std::bind2nd(std::mem_fun(&Game::checkCreatureAtta cking), id)));
}
else { //change the 2000 to whatever you want; 2000 = 2 seconds per attack
creature->eventCheckAttacking = addEvent(makeTask(2000, std::bind2nd(std::mem_fun(&Game::checkCreatureAtta cking), id)));
}
In game.h

Teraz w game.h znajdujecie:


Cytat:
void creatureTurn(Creature *creature, Direction dir);
POD tym wklejacie:


Cytat:
static double NO_VOC_SPEED, SORC_SPEED, DRUID_SPEED, PALLY_SPEED, KNIGHT_SPEED;

Teraz w luascript.cpp znajdujecie:


Cytat:
if (lua_dofile(luaState, filename))
return false;
I POD tym wklejacie:


Cytat:
NO_VOC_SPEED = atof(getGlobalStringField("speed", 1, "2.0").c_str());
SORC_SPEED = atof(getGlobalStringField("speed", 2, "2.0").c_str());
DRUID_SPEED = atof(getGlobalStringField("speed", 3, "2.0").c_str());
PALLY_SPEED = atof(getGlobalStringField("speed", 4, "2.0").c_str());
KNIGHT_SPEED = atof(getGlobalStringField("speed", 5, "2.0").c_str());


W luascript.h znajdujecie:


Cytat:
LuaScript();
~LuaScript();

I POD tym wklejacie:


Cytat:
double NO_VOC_SPEED;
double SORC_SPEED;
double DRUID_SPEED;
double PALLY_SPEED;
double KNIGHT_SPEED;

Zapisujecie, otwieracie config.lua, po czym najlepiej na samym dole dodajecie taką linijkę:


Cytat:
-- speed of attack in seconds (no-voc, sorc, druid, pally, knight)
speed = {"2.5", "2.0", "2.0", "1.5", "1.0"}
I w config.lua, w tej linijce ustawiacie "szybkość" ataku u danych profesji (im mniej, tym szybszy atak ^^)

Oczywiście, możesz sobie ustawić, szybkość ataku jaką chcesz ^^
Można oczywiście również łączyć te sposoby.

Do tego potrzebna jest wiedza o kompilacji

Ps- Jeśli, Ci coś nie wychodzi, lub nie działa, albo nie wiesz jak to zrobić, to trudno, próbuj dalej Very Happy 1 i 2 Skrypt jest zrobiony (albo napisany) przez Killavusa z tibi.org.pl ( w tym linku podany jest również kod na Niekończące się bolty Very Happy)
Link-Fast attack i Niekończące się bolty.

Dla Leniwych !!!
OTS'y z fast attack'iem:
[link widoczny dla zalogowanych] ---Illusion
[link widoczny dla zalogowanych] ---Devland
[link widoczny dla zalogowanych] ---Domeria


Post został pochwalony 0 razy
Powrót do góry
Zobacz profil autora

Autor Wiadomość
Boczek
Moderator



Dołączył: 15 Lut 2007
Posty: 96
Przeczytał: 0 tematów

Ostrzeżeń: 0/5
Skąd: Z domu


PostWysłany: Czw 22:25, 15 Lut 2007    Temat postu:

Własnie moglbys zrobic fast atack na tym otsie chociaz taki jakis slaby

Post został pochwalony 0 razy
Powrót do góry
Zobacz profil autora

Autor Wiadomość
Mario Bross
Administrator



Dołączył: 14 Lut 2007
Posty: 162
Przeczytał: 0 tematów

Ostrzeżeń: 0/5


PostWysłany: Czw 22:29, 15 Lut 2007    Temat postu:

No właśnie w Your OTSie to jest bardzo trudno jutro coś pokombnuje ^^

Post został pochwalony 0 razy
Powrót do góry
Zobacz profil autora

Autor Wiadomość
Boczek
Moderator



Dołączył: 15 Lut 2007
Posty: 96
Przeczytał: 0 tematów

Ostrzeżeń: 0/5
Skąd: Z domu


PostWysłany: Czw 22:30, 15 Lut 2007    Temat postu:

ja na tibia.org.pl widzialem kiedys do youots fast atack poszukam puznij ale niema nic za darmo no dobrta dla ciebie za free

Post został pochwalony 0 razy
Powrót do góry
Zobacz profil autora

Autor Wiadomość
Mario Bross
Administrator



Dołączył: 14 Lut 2007
Posty: 162
Przeczytał: 0 tematów

Ostrzeżeń: 0/5


PostWysłany: Czw 22:34, 15 Lut 2007    Temat postu:

No to dam ci tutora Razz

Post został pochwalony 0 razy
Powrót do góry
Zobacz profil autora

Autor Wiadomość
Boczek
Moderator



Dołączył: 15 Lut 2007
Posty: 96
Przeczytał: 0 tematów

Ostrzeżeń: 0/5
Skąd: Z domu


PostWysłany: Czw 22:36, 15 Lut 2007    Temat postu:

dobra trzmam cie za jenzyk

Post został pochwalony 0 razy
Powrót do góry
Zobacz profil autora

Autor Wiadomość
Mario Bross
Administrator



Dołączył: 14 Lut 2007
Posty: 162
Przeczytał: 0 tematów

Ostrzeżeń: 0/5


PostWysłany: Czw 22:43, 15 Lut 2007    Temat postu:

Dobra Dobra Razz

Post został pochwalony 0 razy
Powrót do góry
Zobacz profil autora

Autor Wiadomość
czester
Gość







PostWysłany: Czw 19:39, 17 Maj 2007    Temat postu:

kto pomoze mi w tym ots zrobic i skod sciognoć youots jesli ktos by mugł mi pomuc to niek napisze mi na gg co 8016383 ;/ prosze niekt ktoś poda mi te liki aby zrobic swego ots i tesz aby byl dobry poradnik co Smile
Powrót do góry

Wyświetl posty z ostatnich:   
Odpowiedz do tematu    Forum OTS Strona Główna -> SVN, Kody Wszystkie czasy w strefie EET (Europa)
Strona 1 z 1

 
Skocz do:  
Możesz pisać nowe tematy
Możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach

fora.pl - załóż własne forum dyskusyjne za darmo
Powered by phpBB © 2001, 2002 phpBB Group.
Theme Designed By ArthurStyle
Regulamin