Tudo que Kimoszin postou
-
Tibia API + Atualização
É só procurar no google cara, sempre aparece um site da microsoft com tudo oque você precisa. Não vou te passar a função, porque ela buga na hora de eu enviar.. (Eu uso a skin movel)
-
Tibia API + Atualização
Estude a logica de programação para desktop. Você tem que identificar o processo e depois mandar as mensagems para ele, simple. No proprio ReadProcessMemory já tem os parametros da função, é só ler e identificar.
-
Tibia API + Atualização
Não é só os endereços de memoria, tem que ver os packets também, eles mudaram. Eu aprendi VB.Net e C# sem tocar em uma apostila, curso ou qualquer coisa do tipo... só usei a logica que tinha do Delphi, mas tive ajuda do Robson nas coisas que eram bem diferentes.
- (Resolvido) Resultado do Evento de Scripting .. cadê ? :S
-
rvBot - Script - Functions
Isso mesmo, o pessoal pensa que algo free e que é distribuido para o bom uso é uma merda, só porque tem alguns bugs o pessoal já vem falando, envez de ajudar o desenvolvedor fica falando mais merda ainda. Infelizmente todo mundo só visa o lucro, ainda são poucos que mantém seus softwares gratuitamente e sempre atualizado. Sem mais.
-
Tibia API + Atualização
Não, quero que vocês pensem um pouquinho agora... Hora, não custa nada estudar um pouquinho pessoal
-
rvBot - Script - Functions
Ficou muito bom Robson, agora lua vai ficar melhor. Porque o pessoal não entenderia C#, eu acho... Parabéns pelo bot. Lua = megusta
-
SQM que fique Healando
\data\movements\scripts\healing.lua local config = { health = 10, delay = 5, storage = 2454 } function onStepIn(cid, item, position, fromPosition) setPlayerStorageValue(cid, config.storage, -1) Heal(cid) return TRUE end function onStepOut(cid, item, position, fromPosition) setPlayerStorageValue(cid, config.storage, 1) return TRUE end function Heal(cid) if getPlayerStorageValue(cid, config.storage) == -1 then doCreatureAddHealth(cid, config.health) doSendAnimatedText(getCreaturePosition(cid), "+ "..config.health.."", 30) addEvent(Heal, config.delay*1000, cid) end return TRUE end \data\movements\movements.xml <movevent type="StepIn" actionid="ACTION_ID" event="script" value="healing.lua"/> <movevent type="StepOut" actionid="ACTION_ID" event="script" value="healing.lua"/> OBS: Você deve adicionar uma actionId no tile que você quer que carregue, pelo map editor e ai substituir esse numero no ACTION_ID.
-
(resolvido) Falha no Globalevents.
local config = { playerCount = 2001, -- Global storage for counting the players left/entered in the event zombieCount = 2002, -- Global storage for counting the zombies in the event teleportActionId = 2000, -- Action id of the teleport needed for the movement script teleportPosition = {x = 959, y = 935, z = 7, stackpos = 1}, -- Where the teleport will be created teleportToPosition = {x = 1021, y = 826, z = 7}, -- Where the teleport will take you teleportId = 1387, -- Id of the teleport timeToStartEvent = 5, -- Minutes, after these minutes the teleport will be removed and the event will be declared started timeBetweenSpawns = 20, -- Seconds between each spawn of zombie zombieName = "event zombie", -- Name of the zombie that should be summoned playersNeededToStartEvent = 2, -- Players needed before the zombies can spawn. -- Should be the same as in the creaturescript! -- The zombies will spawn randomly inside this area fromPosition = {x = 1017, y = 817, z = 7}, -- top left cornor of the playground toPosition = {x = 1027, y = 827, z = 7}, -- bottom right cornor of the playground } function onTime() local tp = doCreateTeleport(config.teleportId, config.teleportToPosition, config.teleportPosition) doItemSetAttribute(tp, "aid", config.teleportActionId) doBroadcastMessage("Zombie event Começara em " .. config.timeToStartEvent .. " minutos! O portal será fechado quando o evento começar!", MESSAGE_STATUS_WARNING) setGlobalStorageValue(config.playerCount, 0) setGlobalStorageValue(config.zombieCount, 0) addEvent(startEvent, config.timeToStartEvent * 1000 * 60) print(getGlobalStorageValue(2001)) end function startEvent() local get = getThingfromPos(config.teleportPosition) if get.itemid == config.teleportId then doRemoveItem(get.uid, 1) end local fromp, top = config.fromPosition, config.toPosition if getGlobalStorageValue(config.playerCount) >= config.playersNeededToStartEvent then addEvent(spawnZombie, config.timeBetweenSpawns * 1000) doBroadcastMessage("Boa sorte aos Players participantes! O teleporte foi fechado!", MESSAGE_STATUS_WARNING) for x = fromp.x, top.x do for y = fromp.y, top.y do for z = fromp.z, top.z do areapos = {x = x, y = y, z = z, stackpos = 253} getPlayers = getThingfromPos(areapos) if isPlayer(getPlayers.uid) then doPlayerSendTextMessage(getPlayers.uid, MESSAGE_EVENT_ADVANCE, "O primeiro zombie irá aparecer em " .. config.timeBetweenSpawns .. " segundos! Boa Sorte!") end end end end else doBroadcastMessage("O evento Zombie não pôde iniciar devido a poucos jogadores participantes.\n Pelo menos" .. config.playersNeededToStartEvent .. " jogadores necessarios", MESSAGE_STATUS_WARNING) for x = fromp.x, top.x do for y = fromp.y, top.y do for z = fromp.z, top.z do areapos = {x = x, y = y, z = z, stackpos = 253} getPlayers = getThingfromPos(areapos) if isPlayer(getPlayers.uid) then doTeleportThing(getPlayers.uid, getTownTemplePosition(getPlayerTown(getPlayers.uid)), false) doSendMagicEffect(getPlayerPosition(getPlayers.uid), CONST_ME_TELEPORT) end end end end end end function spawnZombie() if getGlobalStorageValue(config.playerCount) >= 2 then pos = {x = math.random(config.fromPosition.x, config.toPosition.x), y = math.random(config.fromPosition.y, config.toPosition.y), z = math.random(config.fromPosition.z, config.toPosition.z)} doSummonCreature(config.zombieName, pos) doSendMagicEffect(pos, CONST_ME_MORTAREA) setGlobalStorageValue(config.zombieCount, getGlobalStorageValue(config.zombieCount)+1) doBroadcastMessage("A zombie has spawned! There is currently " .. getGlobalStorageValue(config.zombieCount) .. " zombies in the zombie event!", MESSAGE_STATUS_CONSOLE_RED) addEvent(spawnZombie, config.timeBetweenSpawns * 1000) end end
-
(resolvido) Falha no Globalevents.
Qual o erro? Poderia nos informar melhor!
-
Website [DUVIDA]
<a href="http://www.google.com/">
-
Pegando o endereço base com o Delphi.
Olá pessoal, apartir do update 9.1, a Cipsoft botou um novo sistema, que agora os programadores precisam pegar a base do endereço para o seu bot funcionar perfeitamente em computadores com sistemas operacionais Windows 7 e Windows Vista. Bom, foi um sistema falho... Declare nas uses: PsAPI Declare a função necessaria para pegar a base do endereço: function GetTibiaBaseAddress(ProcessID: Cardinal): Pointer; var Modules: Array of HMODULE; cbNeeded, i: Cardinal; ModuleInfo: TModuleInfo; ModuleName: Array [0 .. MAX_PATH] of Char; PHandle: THandle; begin Result := nil; SetLength(Modules, 1024); PHandle := OpenProcess(PROCESS_QUERY_INFORMATION + PROCESS_VM_READ, FALSE, ProcessID); if (PHandle <> 0) then begin EnumProcessModules(PHandle, @Modules[0], 1024 * SizeOf(HMODULE), cbNeeded); SetLength(Modules, cbNeeded div SizeOf(HMODULE)); for i := 0 to Length(Modules) - 1 do begin GetModuleBaseName(PHandle, Modules[i], ModuleName, SizeOf(ModuleName) ); if AnsiCompareText('Tibia.exe', ModuleName) = 0 then begin GetModuleInformation(PHandle, Modules[i], @ModuleInfo, SizeOf (ModuleInfo)); Result := ModuleInfo.lpBaseOfDll; CloseHandle(PHandle); Exit; end; end; end; end; Declare as variaveis: PH: THandle; PID, Thid: Dword; Offset: Integer; TibiaH: THandle Declare a função para ler os endereços de memoria: function ReadInteger(Address: Integer): Integer; var value: Integer; ler: Dword; begin Thid := GetWindowThreadProcessId(TibiaH, @PID); PH := OpenProcess(PROCESS_ALL_ACCESS, FALSE, PID); ReadProcessMemory(PH, Ptr(Address), @value, 4, ler); Result := value; end; Declare a função para pegar o ProcessID: function ProcessID: Integer; begin TibiaH := FindWindow('TibiaClient', nil); Thid := GetWindowThreadProcessId(TibiaH, @PID); PH := OpenProcess(PROCESS_ALL_ACCESS, FALSE, PID); Result := PID; end; Pronto, agora já podemos burlar o sistema da Cipsoft. Agora um simples exemplo de como você deve usar: Declare as consts: const adrXOR = $7ADFD0; adrMyHP = $943000; adrMyMana = $7AE024; Agora, declare a função para retornar o Health do seu character: function PlayerHealth: Integer; var HP: Integer; uXor: Integer; begin Offset := Integer(GetTibiaBaseAddress(ProcessID)); HP := ReadInteger((adrMyHP + Offset) - $400000); uXor := ReadInteger((adrXOR + Offset) - $400000); Result := HP xor uXor; end; Função para pegar a Mana do seu character: function PlayerMana: Integer; var Mana: Integer; uXor: Integer; begin Offset := Integer(GetTibiaBaseAddress(ProcessID)); Mana := ReadInteger((adrMyMana + Offset) - $400000); uXor := ReadInteger((adrXOR + Offset) - $400000); Result := Mana xor uXor; end; Vou deixar como o meu .pas ficou: Qualquer duvida, só postar.
-
Hamachi desgraçado
Já tentou reinstalar? Acho que ta na hora de formatar, só acho.
-
Reputation System
Eu atualizei com <=, mais acho que essa porra não foi '-'. Agora tá certo...
-
entao vc quer tchu...
Nossa, quer dizer que o cara rico da escola, já passo a linguiça em vocês? hm
-
Reputation System
É, dava para fazer como storage, mas queria me aprofundar mais, hoho. Sobre o Tile, sei lá oque eu tava pensando quando eu fiz, tinha ficado toda madrugada acordado '-' Já arrumei, valeu :]
-
[Ajuda] errozinho básico :P
É que muito rapido o respawn não pode acontecer, você sai da tela e mal cria o bixo, creio que causara muito lag... Então é sempre bom deixar intervalos maiores.
-
[Duvida]MultiClient & BOT's
X-Ray altera o client, a CipSoft nunca iria fazer uma verificação no seu client, seria desncesserio.
-
Acc nenhuma entra.
Qual o erro que retorna?
-
Acc nenhuma entra.
Mudou o nome da database no config.lua?
-
Open English
De casa? se ele conseguir se levantar da cama... já é uma vitória.
- Click
-
Parabéns a irmã do Vittu
Não entendo, pra que que vocês querem a foto dela se nunca vão ver? só uma punheta? Tibiano é foda.
-
Click
Você é o dono do site, porque você não se da pontos? '-'
-
Parabéns a irmã do Vittu
Ela é legal, já falei varias vezes com ela.