Ir para conteúdo

Laastzn

Membro
  • Registro em

  • Última visita

Histórico de Curtidas

  1. Gostei
    Laastzn recebeu reputação de Pedroquessada em [URGENTE] Temple position is wrong. Contact with the administration   
    quando voce cria o char fica normal? loga normal? so da esse erro quando morre? 
     
    Se for, é só voce mudar no sample, o town que o player vai nascer. no caso é o 1 
    em config.php se nao me engano la tem newplayer town. tu poem 1 tbm, e configura no remeres o town 1 a posicao la do temple. muda tbm no config.lua o newplayertown pra 1 ! 
     
    qualquer coisa posta ae  !
  2. Gostei
    Laastzn recebeu reputação de Malvera OT em [Resolvido] Duvidas ( TFS ) \ ( DB )   
    Mas não dava esses erros quando eu usava a distro do Real Server, ai eu mudei pro TFS 0.4 e deu esses erros. 
  3. Gostei
    Laastzn deu reputação a Luquinha em [Resolvido] Script, Treiner.   
    Vamos lá ,vá em movements.xml e adicione isso

     
    <movevent type="StepIn" actionid="25000" event="script" value="autokick.lua"/> <movevent type="StepOut" actionid="25000" event="script" value="autokick.lua"/>  
    Agora em movements/scripts crie um arquivo chamado autokick.lua e adicione isso dentro
     

    events1,events2= {},{} local config = {tempo = 15,storage = 20000 } function onStepIn(cid, item, frompos, topos) if isPlayer(cid) and getPlayerStorageValue(cid, config.storage) <= 0 then doPlayerSendTextMessage(cid, 22, "[Trainer]: Movimente-se a cada " .. config.tempo .. " minutos, caso contrário, seu char será levado ao templo.") setPlayerStorageValue(cid, config.storage, 1) events1[getPlayerGUID(cid)] = addEvent(setPlayerStorageValue, config.tempo*60*1000-1000, cid, config.storage, -1) events2[getPlayerGUID(cid)] = addEvent(doTeleportThing, config.tempo*60*1000-500, cid, getTownTemplePosition(getPlayerTown(cid))) end return true end function onStepOut(cid, item, frompos, topos) if isPlayer(cid) and getPlayerStorageValue(cid, config.storage) >= 1 then setPlayerStorageValue(cid, config.storage, -1) doPlayerSendTextMessage(cid, 23, "System kick off!") stopEvent(events1[getPlayerGUID(cid)]) stopEvent(events2[getPlayerGUID(cid)]) end return true end  
     
    Explicação ,em local config = {tempo = 15
    Em 15 é o tempo em minutos 
    Agora abra o MAP EDITOR e coloque no TILE dos trainers o action id 25000
     
     
     
     
     

    Agora eu conheço outro sistema que pode ser configurado no config.lua e eu posso criar um script da frase e você configura o tempo lá no config.lua, eu posso te ajudar !
    Se quiser só falar.
  4. Gostei
    Laastzn deu reputação a Sociopata em Instalando Zombie Event   
    Bem hj vou estar postando o ZOMBIE EVENT q eu uso no meu server sem erros nem nada..

    Testado em tfs 0.3 pra mais
    Testado em 8.54,8.60






    COMANDOS




    INSTALAÇÃO

    data/creaturescripts/scripts/zombie/onattack.lua


    function loseOnZombieArena(cid) kickPlayerFromZombiesArea(cid) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "BOOM! You are dead.") local players = getZombiesEventPlayers() if(#players <= 1) then local winner = players[1] if(winner) then doPlayerAddItem(winner, 2157, 5, true) doPlayerAddItem(winner, 6119, 1, true) doPlayerSendTextMessage(winner, MESSAGE_STATUS_CONSOLE_BLUE, "You won zombies arena event.") doBroadcastMessage("After " .. os.time() - getPlayerZombiesEventStatus(winner) .. " seconds of fight " .. getCreatureName(winner) .. " won Zombie Arena Event in game versus " .. getStorage(ZE_ZOMBIES_SPAWNED) .. " zombies!") kickPlayerFromZombiesArea(winner) else doBroadcastMessage("Zombie arena event finished! No one win?!?!?! WTF!") end doSetStorage(ZE_STATUS, 0) doSetStorage(ZE_PLAYERS_NUMBER, ZE_DEFAULT_NUMBER_OF_PLAYERS) doSetStorage(ZE_ZOMBIES_TO_SPAWN, 0) doSetStorage(ZE_ZOMBIES_SPAWNED, 0) local width = (math.max(ZE_spawnFromPosition.x, ZE_spawnToPosition.x) - math.min(ZE_spawnFromPosition.x, ZE_spawnToPosition.x)) / 2 + 1 local height = (math.max(ZE_spawnFromPosition.y, ZE_spawnToPosition.y) - math.min(ZE_spawnFromPosition.y, ZE_spawnToPosition.y)) / 2 + 1 local centerPos = {x=math.min(ZE_spawnFromPosition.x, ZE_spawnToPosition.x)+width,y=math.min(ZE_spawnFromPosition.y, ZE_spawnToPosition.y)+height,z=ZE_spawnFromPosition.z} for z = math.min(ZE_spawnFromPosition.z, ZE_spawnToPosition.z), math.max(ZE_spawnFromPosition.z, ZE_spawnToPosition.z) do centerPos.z = z for i, uid in pairs(getSpectators(centerPos, width, height, false)) do if(isMonster(uid)) then doRemoveCreature(uid) end end end end end function onStatsChange(target, cid, changetype, combat, value) if((cid and isMonster(cid) and getCreatureName(cid) == "Zombie Event") or (isInRange(getThingPosition(target), ZE_spawnFromPosition, ZE_spawnToPosition) and changetype == STATSCHANGE_HEALTHLOSS and math.abs(value) >= getCreatureHealth(target))) then doCreatureAddHealth(target, getCreatureMaxHealth(target)) loseOnZombieArena(target) return false end return true end /data/creaturescripts/scripts/zombie/ondeath.lua function onDeath(cid) setZombiesToSpawnCount(getZombiesToSpawnCount() + 2) doCreatureSay(cid, "I'll be back!", 19) return true end /data/creaturescripts/scripts/zombie/onthink.lua function onThink(cid) local target = getCreatureTarget(cid) if(target ~= 0 and not isPlayer(target)) then doRemoveCreature(target) end return true end /data/creaturescripts/scripts/login.lua add: registerCreatureEvent(cid, "ZombieAttack") /data/globalevents/scripts/zombie/onstartup.lua function onStartup() db.executeQuery("UPDATE `player_storage` SET `value` = 0 WHERE `key` = " .. ZE_isOnZombieArea .. ";") doSetStorage(ZE_STATUS, 0) doSetStorage(ZE_PLAYERS_NUMBER, ZE_DEFAULT_NUMBER_OF_PLAYERS) doSetStorage(ZE_ZOMBIES_TO_SPAWN, 0) doSetStorage(ZE_ZOMBIES_SPAWNED, 0) addZombiesEventBlockEnterPosition() return true end /data/globalevents/scripts/zombie/onthink.lua function onThink(interval, lastExecution, thinkInterval) if(getStorage(ZE_STATUS) == 2) then setZombiesToSpawnCount(getZombiesToSpawnCount()+1) local players = getZombiesEventPlayers() for i=1, getZombiesToSpawnCount() * 2 do if(getZombiesToSpawnCount() > 0 and spawnNewZombie()) then setZombiesToSpawnCount(getZombiesToSpawnCount()-1) end end end return true end /data/lib/zombie_event.lua -- CONFIG ZE_DEFAULT_NUMBER_OF_PLAYERS = 5 ZE_ACCESS_TO_IGNORE_ARENA = 3 -- POSITIONS ZE_blockEnterItemPosition = {x= 873, y=997, z=7} ZE_enterPosition = {x = 1638, y = 1530, z = 7} ZE_kickPosition = {x=874, y=994, z=7} ZE_spawnFromPosition = {x = 1617, y = 1514, z = 7} ZE_spawnToPosition = {x = 1671, y = 1565, z = 7} -- ITEM IDS ZE_blockEnterItemID = 2700 -- STORAGES -- - player ZE_isOnZombieArea = 34370 -- - global ZE_STATUS = 34370 -- =< 0 - off, 1 - waiting for players, 2 - is running ZE_PLAYERS_NUMBER = 34371 ZE_ZOMBIES_TO_SPAWN = 34372 ZE_ZOMBIES_SPAWNED = 34373 -- FUNCTION function setZombiesEventPlayersLimit(value) doSetStorage(ZE_PLAYERS_NUMBER, value) end function getZombiesEventPlayersLimit() return getStorage(ZE_PLAYERS_NUMBER) end function addPlayerToZombiesArea(cid) doSendMagicEffect(getThingPosition(cid), CONST_ME_TELEPORT) doTeleportThing(cid, ZE_enterPosition, true) doSendMagicEffect(getThingPosition(cid), CONST_ME_TELEPORT) if(getPlayerAccess(cid) < ZE_ACCESS_TO_IGNORE_ARENA) then setPlayerZombiesEventStatus(cid, os.time()) end end function kickPlayerFromZombiesArea(cid) doSendMagicEffect(getThingPosition(cid), CONST_ME_TELEPORT) doTeleportThing(cid, ZE_kickPosition, true) doSendMagicEffect(getThingPosition(cid), CONST_ME_TELEPORT) setPlayerZombiesEventStatus(cid, 0) end function getPlayerZombiesEventStatus(cid) return getCreatureStorage(cid, ZE_isOnZombieArea) end function setPlayerZombiesEventStatus(cid, value) doCreatureSetStorage(cid, ZE_isOnZombieArea, value) end function getZombiesEventPlayers() local players = {} for i, cid in pairs(getPlayersOnline()) do if(getPlayerZombiesEventStatus(cid) > 0) then table.insert(players, cid) end end return players end function getZombiesCount() return getStorage(ZE_ZOMBIES_SPAWNED) end function addZombiesCount() doSetStorage(ZE_ZOMBIES_SPAWNED, getStorage(ZE_ZOMBIES_SPAWNED)+1) end function resetZombiesCount() doSetStorage(ZE_ZOMBIES_SPAWNED, 0) end function getZombiesToSpawnCount() return getStorage(ZE_ZOMBIES_TO_SPAWN) end function setZombiesToSpawnCount(count) doSetStorage(ZE_ZOMBIES_TO_SPAWN, count) end function addZombiesEventBlockEnterPosition() if(getTileItemById(ZE_blockEnterItemPosition, ZE_blockEnterItemID).uid == 0) then doCreateItem(ZE_blockEnterItemID, 1, ZE_blockEnterItemPosition) end end function removeZombiesEventBlockEnterPosition() local item = getTileItemById(ZE_blockEnterItemPosition, ZE_blockEnterItemID) if(item.uid ~= 0) then doRemoveItem(item.uid) end end function spawnNewZombie() local posx = {} local posy = {} local posz = {} local pir = {} for i=1, 5 do local posx_tmp = math.random(ZE_spawnFromPosition.x ,ZE_spawnToPosition.x) local posy_tmp = math.random(ZE_spawnFromPosition.y ,ZE_spawnToPosition.y) local posz_tmp = math.random(ZE_spawnFromPosition.z ,ZE_spawnToPosition.z) local pir_tmp = 0 local spec = getSpectators({x=posx_tmp, y=posy_tmp, z=posz_tmp}, 3, 3, false) if(spec and #spec > 0) then for z, pid in pairs(spec) do if(isPlayer(pid)) then pir_tmp = pir_tmp + 1 end end end posx[i] = posx_tmp posy[i] = posy_tmp posz[i] = posz_tmp pir[i] = pir_tmp end local lowest_i = 1 for i=2, 5 do if(pir[i] < pir[lowest_i]) then lowest_i = i end end local ret = (type(doCreateMonster("Zombie Event", {x=posx[lowest_i], y=posy[lowest_i], z=posz[lowest_i]}, false)) == 'number') if(ret) then addZombiesCount() end return ret end /data/movements/scripts/zombie/onenter.lua function onStepIn(cid, item, position, lastPosition, fromPosition, toPosition, actor) if(not isPlayer(cid)) then return true end if(getPlayerAccess(cid) >= ZE_ACCESS_TO_IGNORE_ARENA) then addPlayerToZombiesArea(cid) elseif(#getZombiesEventPlayers() < getZombiesEventPlayersLimit() and getStorage(ZE_STATUS) == 1) then addPlayerToZombiesArea(cid) local players_on_arena_count = #getZombiesEventPlayers() if(players_on_arena_count == getZombiesEventPlayersLimit()) then addZombiesEventBlockEnterPosition() doSetStorage(ZE_STATUS, 2) doBroadcastMessage("Zombie Arena Event started.") else doBroadcastMessage(getCreatureName(cid) .. " has entered a Zombie Arena. We still need " .. getZombiesEventPlayersLimit() - players_on_arena_count .. " players.") end else doTeleportThing(cid, fromPosition, true) addZombiesEventBlockEnterPosition() end return true end /data/talkactions/scripts/zombie/onsay.lua function onSay(cid, words, param, channel) if(getStorage(ZE_STATUS) ~= 2) then local players_on_arena_count = #getZombiesEventPlayers() if(param == 'force') then if(players_on_arena_count > 0) then setZombiesEventPlayersLimit(players_on_arena_count ) addZombiesEventBlockEnterPosition() doSetStorage(ZE_STATUS, 2) doBroadcastMessage("Zombie Arena Event started.") doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Zombies event started.") else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Cannot start Zombies event. There is no players on arena.") end else if(param ~= '' and tonumber(param) > 0) then setZombiesEventPlayersLimit(tonumber(param)) end removeZombiesEventBlockEnterPosition() doSetStorage(ZE_STATUS, 1) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Event started.") doPlayerBroadcastMessage(cid, "Zombie Arena Event teleport is opened. We are waiting for " .. getZombiesEventPlayersLimit() - players_on_arena_count .. " players to start.") end else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Zombies event is already running.") end return true end AGR EM XMLS /data/creaturescripts/creaturescripts.xml <event type="think" name="ZombieThink" event="script" value="zombie/onthink.lua"/> <event type="statschange" name="ZombieAttack" event="script" value="zombie/onattack.lua"/> <event type="death" name="ZombieDeath" event="script" value="zombie/ondeath.lua"/> /data/globalevents/globalevents.xml TFS 0.3 <globalevent name="ZombieGlobalThink" interval="5" event="script" value="zombie/onthink.lua"/> <globalevent name="ZombieGlobalStartup" type="start" event="script" value="zombie/onstartup.lua"/> TFS 0.4 <globalevent name="ZombieGlobalThink" interval="5000" event="script" value="zombie/onthink.lua"/> <globalevent name="ZombieGlobalStartup" type="start" event="script" value="zombie/onstartup.lua"/> /data/movements/movements.xml <movevent type="StepIn" actionid="5555" event="script" value="zombie/onenter.lua"/> /data/talkactions/talkactions.xml <talkaction log="yes" words="/zombiestart" access="4" event="script" value="zombie/onsay.lua"/> /data/monster/zombie_event.xml <monster name="Zombie Event" nameDescription="an event zombie" race="undead" experience="480" speed="170" manacost="0"> <health now="20000" max="20000"/> <look type="311" corpse="9875"/> <targetchange interval="5000" chance="50"/> <strategy attack="100" defense="0"/> <flags> <flag summonable="0"/> <flag attackable="1"/> <flag hostile="1"/> <flag illusionable="0"/> <flag convinceable="0"/> <flag pushable="0"/> <flag canpushitems="1"/> <flag canpushcreatures="1"/> <flag targetdistance="1"/> <flag staticattack="90"/> <flag runonhealth="0"/> </flags> <attacks> <attack name="melee" interval="1000" min="-1500" max="-2350"/> </attacks> <defenses armor="0" defense="0"/> <immunities> <immunity paralyze="1"/> <immunity invisible="1"/> <immunity fire="1"/> <immunity energy="1"/> <immunity poison="1"/> </immunities> <voices interval="5000" chance="10"> <voice sentence="You wont last long!"/> <voice sentence="Mmmmh.. braains!"/> </voices> <script> <event name="ZombieThink"/> <event name="ZombieDeath"/> </script> <loot> </loot> </monster> /data/monster/monsters.xml


    Créditos
    PhoOwned 99%
    Sociopata 1%

    Bem é isso por favor antes de postar erros vejam se fizeram os procedimento de modo correto, por que eu uso isso RLs usam e nunca tiveram problema, e tbm so pra lembrar vcs precisam ter a arena tradicional do Zombie Event para garantir o funcionamento em 100% e pelo amor de deus n coloquem em ot com TFS menor que 0.3.
    OBRIGADO A TODOS E POR FAVOR COMENTEM
    <monster name="Zombie Event" file="zombie_event.xml"/>
  5. Gostei
    Laastzn deu reputação a Luquinha em [Resolvido] Pedido (guildshopsystem   
    Você quer a pagina , eu tenho uma aqui ai é só você alterar as coisas.



  6. Gostei
    Laastzn deu reputação a porxmex em shop.lua para tfs 0.4 !   
    Bomm uso tfs, 0.4 FIX---
     
     
     
  7. Gostei
    Laastzn deu reputação a Luquinha em Erro compilação tfs 0.4 dev c++   
    faltando a lib crypto++
    tente este dev-cpp: DOWNLOAD

    ah, e da onde tu arranjou essa source?
  8. Gostei
    Laastzn recebeu reputação de hellsserv15 em ERROS NO TFS 0.4 COMPILADO   
    Facil, se tive-se perguntado no SKype tinha te respondido rs. 
     
     
    no config.lua pesquise por worldType

    Deve que vai estár assim
     
     worldType = "pvp"

    mude para

    worldType = "open" !  
     
    __
    Te ajudei ? REP + 
  9. Gostei
    Laastzn deu reputação a Renato em [TibiaAPI] Player (Tutorial)   
    Ola Tbnet!

    Aqui vou trazer para vocês algumas funções do player, as bem básicas.
    Para que possam usar em seus bots!
    Lembrando que usarei exemplos com a variável "p"

    Dim p As PlayerSe o seu for player As Player, edite todos os p. por player.
    p.Mana - se refere á mana do player, você pode usálo em um mana restore com timer e if.

    Exemplo em if:

    If p.Mana <= TextBox1.Text ThenSe a mana do player for menor ou igual ao texto do TextBox1, então..
    p.Health - se refere ao health do player, você pode usárlo em um Heal com timer e if

    Exemplo em if:

    If p.Health <= TextBox1.Text ThenSe a hp do player for menor ou igual ao texto do TextBox1, então..
    p.TargetId - se refere ao target do player, ou seja, o player ou bixo que ele está atacando.

    Exemplo em if:

    If p.TargetId = 0Se o target do player for igual a 0 (0 é o valor dado quando o player não está atacando ninguém)

    If p.Target > 0 Se o target do player for maior que 0 (1 ou mais é o valor dado quando o player está atacando alguém)
    p.Walk - se refere á onde o player andar.

    Exemplo em ação:

    p.Walk(Direction.Down) Player mova para baixo.

    p.Walk(Direction.Up) Player mova para cima.

    p.Walk(Direction.Left) Player mova para esquerda.

    p.Walk(Direction.Right) Player mova para direita.
    //usando em um botão por exemplo no event click, ao clicar no botão o player irá andar um sqm para a direção definida.

    p.Turn - se refere para onde o player está virado.

    Exemplo em ação:

    p.Turn(Direction.Down) Player vire para baixo.
    //não tem segredo, é igual o Walk só que aqui ele vai virar e não dar.

    p.BlackSquare - se refere ao ataque contra você [o quadrado preto]

    Exemplo em if:

    If p.BlackSquare = 1 Then Se o 'blacksquare' for igual a 1 então.. (1 é quando alguém atacou você, seja player ou monstro)

    If p.BlackSquare = 0 Then Se o blacksquare for igual a 0 então... (0 é quando ninguém está te atacando, seja player ou monstro)
    p.Capacity - se refere ao 'cap' do personagel

    Exemplo em if:

    If p.Capacity <= TextBox1.Text Se o cap do player foi menor ou igual ao texto do textbox1 então..
    // da pra fazer um alert usando Process.Start("C:\...\tibiabotsnet.wav") ou My.Computer.Audio.Play(Application.StartupPath & "\tibiabotsnet.wav")


    • Skill

    Valor bruto:
    p.Level - Se refere ao level do player.
    p.Stamina - Se refere á stamina do player.
    p.Axe - Se refere ao axe skill do player.
    p.Club - Se refere ao club skill do player.
    p.Sword - Se refere ao sword skill do player.
    p.MagicLevel - Se refere ao magic level skill do player.
    p.Fist - Se refere ao fist skill do player.
    p.Fishing - Se refere ao fishing skill do player
    p.Shielding - Se refere ao shielding skill do player

    Valor porcentagem:
    p.LevelPercent - Se refere á valor da porcentagem do level.
    p.AxePercent - Se refere á valor da porcentagem do axe fighting.
    p.ClubPercent - Se refere á valor da porcentagem do club fighting
    p.SwordPercent - Se refere á valor da porcentagem do sword fighting.
    p.MagicLevelPercent - Se refere á valor da porcentagem do magic level.
    p.FistPercent - Se refere á valor da porcentagem do fist fighting.
    p.FishingPercent - Se refere á valor da porcentagem do fishing.
    p.ShieldingPercent - Se refere á valor da porcentagem do shielding.

    //com isto da pra você simular o skill do player no bot, parecido com o FerumbrasBot.

    • Posições.

    p.Location - Se refere á localização do personagem.

    Valores:
    p.Location.X - Se refere á localização X do personagem (x é a coordenada horizontal)
    p.Location.Y - Se refere á localização Y do personagem (y é a coordenada vertical)
    p.Location.Z - Se refere á localização Z do personagem (z é o floor, "andar")


    //da pra criar um tipo de "verificar coordenadas" no seu bot, em tempo real usando timer (Label1.Text = p.Location.X & p.Location.Y & p.Location.Z) e no load do form (Timer1.Start())

    • Set Outfit

    Cores:
    p.HeadColor - Se refere á cor do cabelo.
    p.BodyColor - Se refere á cor da camisa.
    p.LegsColor - se refere á cor da calça.
    p.FeetColor - Se refere á cor do 'tenis'.

    //da pra mudar a cor usando este exemplo em uma ação: p.HeadColor = Tibia.Constants.OutfitColor.Black

    Outfit:
    p.OutfitType - Se refere ao type do outfit do player.

    //da pra mudar o outfit usando este exemplo em uma ação: p.OutfitType = OutfitType.AssassinMale ou p.OutfitType = OutfitType.Demon

    Addon:
    p.Addon - Se refere ao addon do player.

    //da pra trocar o addon usando este exemplo em uma ação: p.Addon = OutfitAddon.Addon1 ou p.Addon = OutfitAddon.Addon2 ou p.Addon = OutfitAddon.Both

    • Executando uma Ação

    Is:
    p.IsAttacking() - o player está full attack.
    p.IsBlocking - o player está full block.
    p.IsReachable() - se o player está na tela.
    p.IsSelf() - não sei oque é.
    p.IsVisible - se o player está visível.
    p.IsWalking - se o player está andando.


    Por enquanto é isso!
  10. Gostei
    Laastzn deu reputação a yurinho190 em [DUVIDAS] Criações !   
    mano attacker tem sim aki no fórum, pode procurar! e o sistema de Norte Sul Leste Oeste é vc add um domainupdown com esses textos, 2 labels com texto inicial 0 e coloca um timer pra quando o texto selecionado for "Sul" o texto da label se alterar pra 1 e caso "Norte" pra -1 e coloca no botão de Add waypoint: loc.Y = p.Location.Y + Label1.Text
    o resto vc descobre, aliás ja q te ajudei, me da +rep

    sobre a foto:
    No form que aparece essa mensagem provavelmente estpa escrito assim:
    Private Sub Form4_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    c = ClientChooser.ShowBox()
    p = c.GetPlayer()

    é só apagar q a mensagem vai parar de aparecer.

    só to te ajudando pq eu comecei igual vc e a galera aqui é muito gente boa e me ajudou muito, principalmente o Kimoszin e o Augusto.

Informação Importante

Confirmação de Termo