![]() |
|
|
Narzędzia tematu | Wygląd tematu |
|
|
#1 |
|
PWJ Na 200%
Data dołączenia: Sep 2008
Skąd: Tczew
Posty: 1,384
Podziękowań: 35
Podziękowano mu 152 razy w 74 postach.
![]() ![]() ![]() ![]() ![]() ![]() |
Witam,
jako że w v0.15 udało mi się dodać dopracowanego skryptera chcę tu napisać nieco o skryptach. Same skrypty są pisane w języku C# dlatego przydadzą Wam się wszystkie umiejętności związane z programowaniem. http://si-szarp.pl/kurs/pierwszy-program Na tej stronie możecie znaleźć nieco porad dotyczących C#, możecie też do obróbki skryptów używać edytora takiego jak Notepad++(http://notepad-plus-plus.org/) Różnica jest taka, że nie dodajemy już "początku", czyli nasz kod zamiast wyglądać tak: Kod:
using System;
namespace LoL
{
class Lol
{
void LOL
{
core.Client.Process.Kill();
}
}
}
Kod:
core.Client.Process.Kill(); Sam jestem samoukiem, więc najprawdopodobniej będę często wstawiał skrypty do działu skrypty do analizy. Dzięki takiemu narzędziu mamy zawartą w tym całą potęgę platformy .NET, dlatego postaram się nieco opisać: Do każdego miejsca dostajemy się poprzez kropki np. core.Client. Zaczynamy od "core", czyli rdzenia całego bota: ![]() Jak widzimy mamy tu dostępne: Client - rzeczy odpowiedzialne za modyfikacje w kliencie czyli procesie gry Modules - moduły rdzenia, nie opiszę ich zbytnio, dodam tylko, że wpisując Kod:
core.Modules.EatFoodFromGround = true; Player - jak sama nazwa wskazuje - "Gracz" - mamy tam bardzo dużo rzeczy do zarządzania tym co robi gracz Idąc dalej, do "Client" możemy wybrać: ![]() AttackMode - typ ataku (Full Attack, Balanced, Full Defense), jak ustawić zapraszam do SetModes BattleList - bardzo przydatna rzecz - możemy tam znaleźć listę wszystkich stworzeń w pobliżu (obszar nieco ponad ekran + 2 poziomy (1 nad nami i 1 pod)) ![]() Jak widzimy mamy tutaj metodę GetCreatures - używamy jej w taki sposób Kod:
core.Client.BattleList.GetCreatures(); Kod:
Tibia.Objects.Creature[] potwory = core.Client.BattleList.GetCreatures(); Do tych stworzeń należy wszystko co możemy spotkać w Tibii, czyli: NPC/Gracze/Potwory (NPC i Potwory mają identyczne "Type", to oznacza, że nie można ich ze sobą rozróżnić za pomocą tej wartości) Tu odnosimy się do klasy Tibia.Objects.Creature - dzięki niej mamy bardzo dużo informacji dotyczących potwora ![]() Addon - to jak wiemy są addony, czyli dodatki do stroju, możemy je zmienić zapisując wartość za pomocą wartośći OutfitAddon: Kod:
.Addon = Tibia.Constants.OutfitAddon.None/First/Second/Both; Approach - jest to metoda (działanie), dzięki której postać idzie do losowej kratki obok potwora Kod:
.Approach(); Kod:
.Attack(); Kod:
.BodyColor = Tibia.Constants.OutfitColor.Red/Orange/Yellow/Green/Blue/Purple/Brown/Black/White/Pink/Grey/Peach Kod:
if (currentCreature.Direction == Tibia.Constants.Direction.Up/Left/Right/Down)
{
System.Windows.Forms.MessageBox.Show("Potwór patrzy tak");
}
Kod:
if (currentCreature.Distance() >= 10) //Dystans jest większy niż 10 kratek Kod:
Tibia.Objects.Location pewneMiejsce = new Tibia.Objects.Location(32887, 32578, 7); if (currentCreature.DistanceBetween(pewneMiejsce) >= 10) //Dystans jest większy niż 10 kratek Kod:
.FeetColor = Tibia.Constants.OutfitColor... Kod:
.Follow(); Kod:
.HeadColor = Tibia.Constants.OutfitColor... Kod:
if (currentCreature.HPBar <= 30) //Prawie trup Kod:
if (currentCreature.Id == core.Player.Id) //To ja Kod:
if (currentCreature.InParty()) //Jeśli stwór jest w Party else //Co jeśli nie jest IsBlocking - czy możemy przeniknąć przez stwora - tak jak wyżej IsReachable - czy możemy dojść do stwora "po prostej", czyli bez zmiany poziomu - tak jak wyżej IsSelf - sprawdza czy stwór nie jest graczem - tak jak wyżej IsWalking - sprawdza czy stwór się porusza - tak jak wyżej LegsColor - kolor nóg - tak jak w HeadColor, BodyColor, FeetColor Light - siła światła bijącego od stwora - możemy zmieniać od 0 do 27 lub za pomocą LightSize: Kod:
.Light = Tibia.Constants.LightSize.None/Torch/Full Kod:
.LightColor = Tibia.Constants.LightSize.Default/None/Orange/White Look - działa tak samo jak Look w kliencie, co tu opisywać Name - nie trzeba komentować OutfitType - rodzaj outfitu potwora - liczba Kod:
.OutfitType = Tibia.Constants.OutfitType.<Tu podajemy nazwę outfitu (ludzkiego bądź potwora) bez spacji> Skull - czaszka Kod:
.Skull = Tibia.Constants.Skull.None/White/Red/Black/Green/Yellow Kod:
if (currentCreature.Type == Tibia.Constants.CreatureType.NPC (również potwór)/Player) //Co jeśli tak WarIcon - ikonka podczas wojny Kod:
.WarIcon = Tibia.Constants.WarIcon.Blue/Green/None/Red W przykładach, gdzie podawałem zaczynając od kropek miałem na myśli "dostawianie do reszty", natomiast currentCreature to przykład Bogatsi o tą wiedzę możemy stworzyć prosty skrypt sprawdzający czy nie ma w pobliżu pewnego gracza Użyjemy pętli foreach Kod:
foreach (Tibia.Objects.Creature c in core.Client.BattleList.GetCreatures())
{
if (c.Name == "Omega Arek")
{
System.Media.SoundPlayer alert = new System.Media.SoundPlayer(System.Windows.Forms.Application.StartupPath + @"\alert.wav");
alert.Play();
}
}
Close - zamyka klienta Kod:
core.Client.Close(); .Say - możemy dzięki temu wypowiedzieć tekst lub utworzyć specjalną wiadomość Kod:
core.Client.Console.Say("wiadomość");
Ten kod z kolei będzie wypowiadać wiadomość na jednym z kanałów, zależnie jaki wybierzemy. Kod:
core.Client.Console.Say(ChatMessage.CreateChannelMessage("wiadomość", Tibia.Constants.ChatChannel.Guild/Party/Gamemaster/Tutor/RuleReport/Game/Trade/TradeRook/RealLife/Help/OwnPrivate));
Kod:
core.Client.Console.Say(ChatMessage.CreateNormalMessage("wiadomość", Tibia.Constants.SpeechType.Say/Whisper/Yell/PrivatePlayerToNPC));
Kod:
core.Client.Console.Say(ChatMessage.CreatePrivateMessage("wiadomość", "odbiorca"));
GetHotkey - zwraca nam Tibia.Objects.Hotkey - możemy dzięki temu modyfikować hotkeye. Mamy 36 hotkeyów (0-11 F1-F12, 12-23 Ctrl F1-F12, 24-35 Shift F1-F12) ![]() Możemy modyfikować Hotkeye bez deklarowania ich Kod:
core.Client.GetHotkey((byte)0).ObjectId = 3031; core.Client.GetHotkey((byte)0).ObjectUseType = HotkeyObjectUseType.UseOnTarget/UseOnSelf/WithCrosshairs; core.Client.GetHotkey((byte)0).Text = "lol"; core.Client.GetHotkey((byte)0).SendAutomatically = true; GetPlayer - zwraca nam Tibia.Objects.Player - możemy zrobić coś takiego: Kod:
Tibia.Objects.Player p = core.Client.GetPlayer(); Input - możemy dzięki temu klikać w okno Tibii oraz naciskać klawisze ![]() Ten kod klika we współrzędne 20x20 (na ekranie) Kod:
core.Client.Input.Click(20,20); Kod:
core.Client.Input.SendKey(Keys.F1); |
|
|
|
|
|
#2 |
|
PWJ Na 200%
Data dołączenia: Sep 2008
Skąd: Tczew
Posty: 1,384
Podziękowań: 35
Podziękowano mu 152 razy w 74 postach.
![]() ![]() ![]() ![]() ![]() ![]() |
Inventory - kolejna klasa - pozwala nam ona na operacje związane z inwentarzem postaci
![]() CountItems - liczy przedmioty, zwraca liczbę (int) Kod:
int liczbaZlota = core.Client.Inventory.CountItems(3031); Kod:
Tibia.Objects.Container mainBP = core.Client.Inventory.GetContainer((byte)0); Kod:
Tibia.Objects.Item[] mainBPItems = core.Client.Inventory.GetContainerItems((byte)0); Kod:
Tibia.Objects.Container[] containers = core.Client.Inventory.GetContainers(); Kod:
Tibia.Objects.Item itemwSlocie = core.Client.Inventory.GetItemInSlot(Tibia.Constants.SlotNumber.Head/Backpack/Necklace/Left/Right/Armor/Legs/Ring/Ammo/Feet); NumberContainers - numeruje kontenery - w nawiasie piszemy nazwę + "\\#" Kod:
core.Client.Inventory.NumberContainers("BP \\#");
Kod:
core.Client.Inventory.Stack(); Kod:
core.Client.Inventory.UseItem(266); Kod:
core.Client.Inventory.UseItem(266, (byte)0, core.Player.Id); UseItemOnTile - używa itemu na kratce, np. klucza na drzwiach Kod:
Tibia.Objects.Tile t = core.Client.Map.GetTile(new Location(33333,33333,7)); core.Client.Inventory.UseItemOnTile(1111, t); LastSeenId - liczba - id itemu, na który... LastSeenText - ciąg znaków (string) - text itemu, na który... LoggedIn - zwraca wartość, czy jesteśmy zalogowani Kod:
if (core.Client.LoggedIn) // Logout - muszę to komentować? Kod:
core.Client.Logout(); ![]() GetTile - zwraca kratkę (Tibia.Objects.Tile) w danym miejscu, jeden parametr - location Kod:
Tibia.Objects.Tile t = core.Client.Map.GetTile(new Location(33333,33333,7)); Kod:
Tibia.Objects.Tile[] t = core.Client.Map.GetTiles(); Kod:
Tibia.Objects.Tile[] floorWithPlayer = core.Client.Map.GetTilesOnSameFloor(); Kod:
Tibia.Objects.Tile playerTile = core.Client.Map.GetTileWithPlayer(); PlayerLocation - zwraca nam Location gracza Process - System.Diagnostics.Process - możemy tam się bawić takimi rzeczami jak priority, ale jej też nie opiszę - na potrzeby skryptów nic tam nie ma ProcessHandle - uchwyt procesu, jeśli będziemy używać WinAPI może się przydać SetModes - metoda pozwalająca ustawić nam AttackMode i FollowMode Kod:
core.Client.SetModes(Tibia.Constants.Attack.Balance/FullAttack/FullDefence, Tibia.Constants.Follow.DoNotFollow/FollowClose); Kod:
if (core.Client.Status == Tibia.Constants.LoginStatus.LoggedIn/NotLoggedIn/LoggingIn)
{
}
Kod:
core.Client.Statusbar = "Pozdrowienia od bottera"; VersionNumber - wersja Tibii jako numer (np. 860) Window - klasa pozwalająca na manipulację oknem Tibii ![]() Activate - aktywuje okno Tibii - powoduje, że okno będzie się znajdować na samej górze Flash - miga na pasku zadań IsActive - zwraca czy Tibia jest zaznaczona IsMaximized - czy Tibia jest zmaxymalizowana IsMinimized - czy jest zminimalizowana IsTopMost - czy będzie zawsze na wierzchu IsVisible - czy jest widoczna Maximize - maksymalizuje Tibię Minimize - minimalizuje Tibię Title - można tym edytować tytuł Tibii np. Kod:
if (core.Client.LoggedIn) core.Client.Window.Title = "Mam " + core.Player.Health.ToString() + " HP oraz " + core.Player.Mana.ToString() + " many."; else core.Client.Window.Title = "Wylogowany"; ![]() Addon - to jak wiemy są addony, czyli dodatki do stroju, możemy je zmienić zapisując wartość za pomocą wartośći OutfitAddon: Kod:
core.Player.Addon = Tibia.Constants.OutfitAddon.None/First/Second/Both; AxePercent - Procent wbitego skilla BodyColor - kolor ciała stworzenia, tu z pomocą przychodzi wartość OutfitColor, możemy ją ustawiać: Kod:
core.Player.BodyColor = Tibia.Constants.OutfitColor.Red/Orange/Yellow/Green/Blue/Purple/Brown/Black/White/Pink/Grey/Peach CapacityVisible - widoczne capacity gracza (to co widzimy w oknie Tibii) Club - Skill gracza w użyciu Obuchów ClubPercent - Procent wbitego skilla Direction - czyli kierunek w którym zwrócony jest potwór, tylko do odczytu, wartość jest zwracana za pomocą Tibia.Constants.Direction Kod:
if (core.Player.Direction == Tibia.Constants.Direction.Up/Left/Right/Down)
{
System.Windows.Forms.MessageBox.Show("Potwór patrzy tak");
}
DistanceBetween - zwraca nam dystans pomiędzy potworem a czymś innym, używając tego musimy podać miejsce do którego się odnosimy za pomocą Tibia.Objects.Location Kod:
Tibia.Objects.Location pewneMiejsce = new Tibia.Objects.Location(32887, 32578, 7); if (core.Player.DistanceBetween(pewneMiejsce) >= 10) //Dystans jest większy niż 10 kratek Experience - zdobyte doświadczenie FeetColor - kolor stóp - używamy tak samo jak BodyColor Kod:
core.Player.FeetColor = Tibia.Constants.OutfitColor... FishingPercent - Procent wbitego skilla Fist - Skill gracza w użyciu pięści FistPercent - Procent wbitego skilla GoTo - bardzo ciekawa metoda, pozwala nam na ruch postaci w dane miejsce Kod:
core.Player.GoTo = new Location(-1,-1,-1); Kod:
core.Player.HeadColor = Tibia.Constants.OutfitColor... HealthMax - maxymalny poziom życia gracza HPBar - procent HP - tylko do odczytu, choć w ramach zabawy można zmodyfikować, ale grozi debugiem Kod:
if (core.Player.HPBar <= 30) //Prawie trup IsSelf - sprawdza czy stwór nie jest graczem - tak jak wyżej IsWalking - sprawdza czy stwór się porusza - tak jak wyżej LegsColor - kolor nóg - tak jak w HeadColor, BodyColor, FeetColor Level - poziom gracza LevelPercent - procent wbitego poziomu Light - siła światła bijącego od stwora - możemy zmieniać od 0 do 27 lub za pomocą LightSize: Kod:
core.Player.Light = Tibia.Constants.LightSize.None/Torch/Full Kod:
core.Player.LightColor = Tibia.Constants.LightSize.Default/None/Orange/White MagicLevel - Skill gracza w użyciu Magii MagicLevelPercent - Procent wbitego skilla Mana - mana gracza ManaMax - maxymalny poziom many gracza Name - nie trzeba komentować OutfitType - rodzaj outfitu potwora - liczba Kod:
core.Player.OutfitType = Tibia.Constants.OutfitType.<Tu podajemy nazwę outfitu (ludzkiego bądź potwora) bez spacji> SetOutfit - pozwala nam ustawić outfit (tylko takie jakie ma odblokowana dana postać) Kod:
core.Player.SetOutfit(new Outfit((ushort)Tibia.Constants.OutfitType.CitizenMale, (byte)0, (byte)0, (byte)0, (byte)0, (byte)0)); ShieldingPercent - Procent wbitego skilla Skull - czaszka Kod:
core.Player.Skull = Tibia.Constants.Skull.None/White/Red/Black/Green/Yellow Stamina - ilość staminy gracza (minuty) Stop - zatrzymuje gracza (jeśli idzie) Kod:
core.Player.Stop(); SwordPercent - Procent wbitego skilla TargetId - Id celu, który atakuje gracz Turn - obraca gracza w daną stronę Kod:
core.Player.Turn(Tibia.Constants.Direction.Up); Kod:
core.Player.Turn(Tibia.Constants.Direction.UpLeft); WalkSpeed - 220 + (level * 2) WarIcon - ikonka podczas wojny Kod:
.WarIcon = Tibia.Constants.WarIcon.Blue/Green/None/Red X,Y,Z - współrzędne Właśnie przebrnęliśmy przez dość sporą dokumentację i poradnik, dzieki którym masz podstawy do stworzenia na prawdę zaawansowanych skryptów. Teraz tylko pisać + pytać na forum ;) |
|
|
|
|
|
#3 |
|
Beginner
Data dołączenia: Jul 2010
Posty: 42
Podziękowań: 1
Podziękowano mu 6 razy w 2 postach.
![]() |
Mini Poradnik ? Powinien się nazywać MEGA :D
Dzięki za to , pobawie się :) |
|
|
|
|
|
#4 |
|
Banned
Data dołączenia: May 2009
Posty: 19
Podziękowań: 0
Podziękowano mu 0 razy w 0 postach.
![]() |
Słuchaj mam sprawę. A więc, jak zrobić w programie (notepad ++) żeby pokazywał możliwe funkcje takie jak na obrazku (czy ty korzystasz z innego programu. Jeśli tak, to jakiego).
|
|
|
|
|
|
#5 |
|
PWJ Na 200%
Data dołączenia: Sep 2008
Skąd: Tczew
Posty: 1,384
Podziękowań: 35
Podziękowano mu 152 razy w 74 postach.
![]() ![]() ![]() ![]() ![]() ![]() |
Używam Visual Studio, możesz sobie zrobić projekt Tibiaapi i z tego robić
|
|
|
|
|
|
#6 |
|
Newbie
Data dołączenia: Aug 2010
Posty: 8
Podziękowań: 0
Podziękowano mu 0 razy w 0 postach.
![]() |
Ja mam takie pytanie związane z cavebotem, nie widziałem gdzie je napisać, to dałem je tutaj, otóz w elfie była opcja "walk" przy której bot przechodził przez ten WPT bez stawania, a w muttleybocie nie mogę nic takiego znaleźć, jest taka opcja? (I przy Stand, i przy Node bot staje na jakiś czas :/)
|
|
|
|
|
|
#7 |
|
Beginner
Data dołączenia: Feb 2009
Posty: 69
Podziękowań: 4
Podziękowano mu raz, w jednym poście.
![]() |
Też mam z tym problem - zawsze przystaje na 2 sek ;/
Pobociłbym a tu elfa nie ma ;/ muttley mi sie coś wali i po jakimś czasie zacina;/ |
|
|
|
|
|
#8 |
|
Newbie
Data dołączenia: Aug 2010
Posty: 8
Podziękowań: 0
Podziękowano mu 0 razy w 0 postach.
![]() |
@up dokładnie, niezależnie co robię po jakimś czasie wywala mi komunikat w deseń winodowsowego "aplikacja nie odpowiada" czy coś w tym stylu, ale trochę się różni, nie wiem ocb.
|
|
|
|
|
|
#9 |
|
Newbie
Data dołączenia: Jun 2010
Posty: 16
Podziękowań: 0
Podziękowano mu 0 razy w 0 postach.
![]() |
a nie można by zrobić tak żeby to piasło się jak w elfbocie xD ?
|
|
|
|
|
|
#10 |
|
Newbie
Data dołączenia: Mar 2010
Posty: 8
Podziękowań: 0
Podziękowano mu 0 razy w 0 postach.
![]() |
Że tak powiem nie, bo to jest pisane w innym języku. To jest w C# a elf w C++ podobno, NG Pascal
|
|
|
|
![]() |
| Tagi |
| miniporadnik, pisanie, porady, skryptów |
| Narzędzia tematu | |
| Wygląd tematu | |
|
|