Ir para conteúdo

Pedriinz

Membro
  • Registro em

  • Última visita

Tudo que Pedriinz postou

  1. Poste o seu firstitems.lua localizado na pasta creaturescripts/scripts. Poste seu creaturescripts.xml
  2. Você declarou errado Não existe possibilidade disso da errado, poste seu arquivo firstitems.lua e creaturescripts.xml
  3. Uma opção é você utilizar esta função no mesmo script que entrega os primeiros items ao primeiro login do jogador no servidor, geralmente, firstitems.lua. Você pode adicionar isso (caso utilize 0.4 ou similar): doTeleportThing(cid, {x = 160, y = 54, z = 7}) Ou até mesmo (caso utilize 1.x+): player:teleportTo(Position(x,y,z)) Lembrando que isso é meio que uma "gambiarra", mas resolve o caso. Boa sorte
  4. Pedriinz postou uma resposta no tópico em Suporte Tibia OTServer
    @Fir3element, sua logica está correta, porém estou certo de que não seria o suficiente para barrar a entrada de novos jogadores caso seja um evento em uma sala ou algo do gênero. Precisamos de uma checagem mais "avançada" aqui. @Tópico Creio que uma das melhores formas de se realizar isso, é realizando uma checagem de quem está participando do evento em questão. Qual evento que é? Enfim, você pode setar em uma tabela o cid de cada personagem que entrar no evento, e junto com este CID o IP do mesmo. Ao tentar entrar outro personagem com o mesmo ip deverá ter uma checagem dentro desta tabela para verificar se já existe algum jogador com este IP dentro do evento. Como fazer: Primeiro você deve declarar uma tabela global onde ficará salvo os dados dos jogadores que entrarão no Evento. Aconselho fazer isso em uma lib. (Estarei assumindo aqui que você utiliza a versão 0.4 ou similar.) Crie ou coloque uma lib qualquer a seguinte declaração: CHECK_MC = { players_cache = { --[getPlayerGUID(cid)] = {ip = getPlayerIp(cid)} }, } Após feito isso, você deve adicionar nesta tabela todos os jogadores que entrarem no evento em questão. Entra no arquivo de entrada do evento e adicione o seguinte código: CHECK_MC.players_cache[getPlayerGUID(cid)] = {ip = getPlayerIp(cid)} PS: Caso o evento seja um teleport que vai aparecer para os jogadores entrar ou um tile, você pode adicionar esta linha no código do arquivo no movements, mas ou menos assim: function onStepIn(cid, item, position, fromPosition, toPosition) if not isPlayer(cid) then return true end doTeleportThing(cid, posiçãoDoEvento) CHECK_MC.players_cache[getPlayerGUID(cid)] = {ip = getPlayerIp(cid)} return true end Feito isso, nossa tabela já está adicionando o CID e o IP de cada jogador que entrou dentro do evento. Agora devemos adicionar no mesmo script da entrada do evento, uma checagem para ver se dentro da tabela, já não existe um jogador com o mesmo IP. faremos da seguinte forma: for k, v in pairs(CHECK_MC.players_cache) do if CHECK_MC.players_cache[k].ip == getPlayerIp(cid) then doPlayerSendCancel(cid, 'Você não pode entrar com MC neste evento!') return false end end Você deve adicionar esta checagem antes da ação de teleporta o jogador para dentro do evento. Em resumo o script de entrada para o evento ficaria mais ou menos assim: function onStepIn(cid, item, position, fromPosition, toPosition) if not isPlayer(cid) then return true end for k, v in pairs(CHECK_MC.players_cache) do if BATTLE_ENFORCE.players_cache[k].ip == getPlayerIp(cid) then doPlayerSendCancel(cid, 'Você não pode entrar com MC neste evento!') return false end end doTeleportThing(cid, posiçãoDoEvento) CHECK_MC.players_cache[getPlayerGUID(cid)] = {ip = getPlayerIp(cid)} return true end @Matk, arruma essa box code. Abraços e boa sorte!
  5. Pedriinz postou uma resposta no tópico em Playground (Off-topic)
    LKKKKKKKKKKKKKKK vodkart programando festa criança tb? opa ensina s2
  6. Pedriinz postou uma resposta no tópico em Playground (Off-topic)
    vai acreditar nessa? cai nao fi
  7. Pedriinz postou uma resposta no tópico em Playground (Off-topic)
    to calmu s2
  8. Pedriinz postou uma resposta no tópico em Playground (Off-topic)
    virgula de cu é rola mermao tu ta achando q aki é enem? vai toma no teu cu
  9. Pedriinz postou uma resposta no tópico em Playground (Off-topic)
    vodkart bloqueou o cara cuzao?
  10. local k = Tile(Position(x,x,x)):getItemById(item) if k then k:remove() end Adicione isso no script, assumindo que você utilizar versões 1.x
  11. Pedriinz postou uma resposta no tópico em Playground (Off-topic)
    mds guido tu é mt gay... me come?
  12. Substitua seu arquivo init.lua por este:
  13. Qual versão do tfs? Poste o arquivo: creaturescripts/scripts/others/playerdeath.lua
  14. Tente remover todas as linhas com o evento: death. E deixe apenas esta <event type="death" name="Playerdeath" event="script" value="playerdeath.lua"/> E teste.
  15. Pedriinz postou uma resposta no tópico em Suporte Tibia OTServer
    Fala @Pepeco, tudo bom, meu querido? Continue fazendo isso que você está fazendo! Isso vai lhe ajudar bastante na sua evolução, e não deixe que ninguém te desmotive ok!? Agora falando sobre o tópico, queria deixar umas dicas pra ti e espero que seja útil hehe. (Caso alguém saiba uma maneira melhor de fazer e possa explicar também seria uma ação humilde). No seu código em creaturescript você fez realizou a checagem utilizando um loop (for) pra alcançar o resultado... Não é legal utilizar o for dessa forma, então irei te mostrar aqui uma forma mais eficaz de realizar este tipo de checagem sem este loop. local exemple = { ["rotworm"] = exemple ["rat"] = exemple } function onKill(cid, target, lastHit) if not isPlayer(cid) and isPlayer(target) then -- 1 return true end if exemple[getCreatureName(target):lower()] then -- 2 --[[ O que o script irá fazer. aqui ]] end return true end Ou simplesmente: local exemple = { ["rotworm"] = exemple ["rat"] = exemple } function onKill(cid, target, lastHit) if not isMonster(target) then return true end if exemple[getCreatureName(target):lower()] then --[[ O que o script irá fazer. aqui ]] end return true end 1º Caso essas condições sejam saciadas, o script parará ali e irá retorna como "satisfeito", grosseiramente falando... ou seja, estará dizendo ao compilador que já teve seu retorno bem sucedido. 2º Realizei uma checagem procurando o nome da criatura que foi morta dentro da tabela, caso o nome seja o mesmo que está lá... então entrará dentro do if. Note que eu utilizei uma função para deixar a string em minusculo. getCreatureName(target):lower() Você pode realizar um teste com uma print: print(getCreatureName(target):lower()) Que irá sempre retorna o nome do monstro em minusculo. Então na tabela você pode colocar minusculo também. Gostaria de ressaltar também, que essa função é global da linguagem LUA como um todo. Exemplo: string.lower(string) print(string.lower("Hello, Lua user!")) >> hello, lua user! Fonte: http://lua-users.org/wiki/StringLibraryTutorial Lembrando que isso não é a melhor forma de realizar essa checagem, eu apenas te mostrei uma forma melhor de alcançar o mesmo resultado que você alcançou por meio de um LOOP (não recomendável.) A intenção deste post não é, e nunca foi tentar diminuir sua pessoa ou ofendê-lo! Eu apenas estou aqui tentando te ajudar a entender melhor LUA, assim como eu também estou estudando cada vez mais. Abraços, e continue assim! Reputado.
  16. Pedriinz postou uma resposta no tópico em Suporte Tibia OTServer
    Isso não é o que ele pediu :p.
  17. Pedriinz postou uma resposta no tópico em Formação de Equipe
    O que você precisa? Me adicione skype.
  18. Pedriinz postou uma resposta no tópico em Websites
    Já vi muitaaaaaaaas reclamações desse gesior ser cheio de falhas propositais... Mas obrigado por trazer até aqui, mas pra quem for utilizar, aconselho verificar primeiro todos os codigos deste.
  19. Pedriinz postou uma resposta no tópico em Playground (Off-topic)
    iscrevi
  20. Pedriinz postou uma resposta no tópico em Suporte Tibia OTServer
    O script está totalmente bagunçado e varias partes erradas. Irei corrigir boa parte e tentar informar o que estava errado e como poderia ficar melhor... daqui a pouco, edito. Edit: Eu nem li o que o script faz direito, apenas organizei e vi o que estava errado e partes que poderiam ser melhoradas e comentei. Teste, caso não funcione explique corretamente o que o script deve fazer. (detalhadamente) local config = { -- Não é preciso criar varias variaveis locais. Basta um em tabela. storage_guild = getGlobalStorageValue(123123), tempo = 5000, trono = {x=1003, y=1225, z=11, stackpos=1}, pos1 = getThingfromPos(trono), idtrono = 5915, cor = green, timenow = os.time(), temponotrono = timenow + tempo, } --[[ Função totalmente desnecessaria, já que ela só faz uma simples ação. function wait(trono) doCreateItem(idtrono,1,trono) end]] function onStepIn(cid, item, frompos, item2, pos, topos, words, param) if getPlayerGuildId(cid) ~= storage_guild then doSendMagicEffect(pos1,12) doBroadcastMessage("O Player [".. getCreatureName(cid) .."] está dominando o CastleWar! Se ele permanecer 5 minutos lá, sua guild será a nova dona do castelo!", cor) addEvent(function() doCreateItem(config.idtrono, 1, config.trono) end, config.tempo) end if os.time() == temponotrono and getPlayerGuildId(cid) ~= storage_guild then doBroadcastMessage("O Player [".. getCreatureName(cid) .."] dominou o castelo!", cor) end if getPlayerGuildId(cid) == storage_guild then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você já é dono do castelo!") end end
  21. Quando postar a spell também vejo possibilidade em ajudar.
  22. Não precisa cria variavel no .xml pra isso. Weapons ta aí pra isso
  23. Nesse caso acho que teria que fazer uma checagem na spell... Qual versão? Manda o codigo aí da magia...
  24. O problema é que seu servidor não tem essa função: doGuildAddEnemy.
  25. Wtf... cadê o codigo? Cadê informações sobre qual versão de distro etc...???

Informação Importante

Confirmação de Termo