Ir para conteúdo

tozinho123

Campones
  • Total de itens

    61
  • Registro em

  • Última visita

Tudo que tozinho123 postou

  1. tozinho123

    Duvida Sobre Npcs

    tipo assim, quando voce quer fazer alguma coisa com o cara que executo a action vc usa o CID, exemplo: doCreatureSay(cid, "lalaal", TALKTYPE_ORANGE_1) ou getCreaturePosition(cid) ou doCreatureAddHealth(cid, 20) mais e quando eu quero fazer isso com um npc que eu estou falando?exemplo: doCreatureSay(self?, "lalala", TALKTYPE_ORANGE_1) getCreaturePosition(npc?) doCreatureAddHealth(nao sei mais oq inventar?, 20) rsrs se alguem souber ajuda plz :smile_positivo: grato desde ja
  2. caraio veio, se seu ot nao tem nada, nao tem nen pasta porque voce continua com ele? procure na seção download de otservers e baixa um qui funcione direito :smile_positivo:
  3. se for xml é só voce passar a pasta players pro novo distro, e se for sql passa a database pro outro distro, agora se seu server for xml e voce quiser passar pra sql nao tem como, pelo menos nao que eu saiba ;S
  4. no script do seu npc, no item que ele vende, ao inves de doPlayerRemoveMoney(cid, 5000) bote: doPlayerRemoveItem(cid, 9298, 1) Em Rosa: a quantia de GPS que ele ira tirar do player (mais nao sera necessario que voce vai substituir essa parte) Em Azul: o id do item que voce quer que ele receba inves do gp tradicional Em Verde: a quantia do item que ele ira receber, por exemplo se for 10 scarab coins voce bota doPlayerRemoveItem(cid, ID DA SCARAB,10)
  5. deve ser meio complicado de fazer, mais se alguem souber ajuda ae plz :smile_positivo: é o seguinte, quero uma função que ao pisar nun teleport ou ao puxar uma alavanca limpe todos os itens,monstros,fields em fim tudo que estiver em uma area (que eu possa determinar qual é), grato desde ja :positive:
  6. puta qui pario nunca pensei que alguem fosse tao genio assim, e o melhor, compartilha tudo com o pessoal do x tibia, noobinhu vc é foda xD edit mas ou como funciona se tipo, 2 jogadores botarem uma golden legs a venda e um outro pedir pra compra, de qual jogador ele ira vender?
  7. voce tem que dizer qual seu server e qual a versão dele, mas vou tentar te ajudar... local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) local talkState = {} local moneyTo = {} local playerTo = {} function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end function onThink() npcHandler:onThink() end local function isValidMoney(money) if isNumber(money) == TRUE and money > 0 and money < 999999999 then return TRUE end return FALSE end function creatureSayCallback(cid, type, msg) if(not npcHandler:isFocused(cid)) then return false end if msgcontains(msg, 'help') or msgcontains(msg, 'offer') then selfSay("You can check the {balance} of your bank account, {deposit} money or {withdraw} it. You can also {transfer} money to other characters, provided that they have a vocation.", cid) talkState[cid] = 0 ----------------------------------------------------------------- ---------------------------- Balance (stan) --------------------- ----------------------------------------------------------------- elseif msgcontains(msg, 'balance') or msgcontains(msg, 'Balance') then selfSay('Your account balance is '..getPlayerBalance(cid)..' gold.', cid) talkState[cid] = 0 ----------------------------------------------------------------- ---------------------------- Help (pomoc) ----------------------- ----------------------------------------------------------------- elseif msgcontains(msg, 'basic functions') then selfSay('You can check the {balance{ of your bank account, Pdeposit{ money or Pwithdraw{ it. You can also {transfer} money to othercharacters, provided that they have a vocation.', cid) talkState[cid] = 0 elseif msgcontains(msg, 'advanced functions') then selfSay('Renting a house has never been this easy. Simply make a bid for an auction. We will check immediately if you haveenough money.', cid) talkState[cid] = 0 ----------------------------------------------------------------- ---------------------------- Deposit (wplata) ------------------- ----------------------------------------------------------------- elseif msgcontains(msg, 'deposit all') then moneyTo[cid] = getPlayerMoney(cid) if moneyTo[cid] < 1 then selfSay('You don\'t have any money to deposit in you inventory..', cid) talkState[cid] = 0 else selfSay('Would you really like to deposit '..moneyTo[cid]..' gold?', cid) talkState[cid] = 2 end elseif msgcontains(msg, 'deposit') then selfSay("Please tell me how much gold it is you would like to deposit.", cid) talkState[cid] = 1 elseif talkState[cid] == 1 then moneyTo[cid] = tonumber(msg) if isValidMoney(moneyTo[cid]) == TRUE then selfSay('Would you really like to deposit '..moneyTo[cid]..' gold?', cid) talkState[cid] = 2 else selfSay('Is isnt valid amount of gold to deposit.', cid) talkState[cid] = 0 end elseif talkState[cid] == 2 then if msgcontains(msg, 'yes') then if doPlayerDepositMoney(cid, moneyTo[cid]) then selfSay('Alright, we have added the amount of '..moneyTo[cid]..' gold to your balance. You can withdraw your money anytime you want to. Your account balance is ' .. getPlayerBalance(cid) .. '.', cid) else selfSay('You do not have enough gold.', cid) end elseif msgcontains(msg, 'no') then selfSay('As you wish. Is there something else I can do for you?', cid) end talkState[cid] = 0 ----------------------------------------------------------------- ---------------------------- Withdraw (wyplata) ----------------- ----------------------------------------------------------------- elseif msgcontains(msg, 'withdraw') then numero = tonumber(msg) if isValidMoney(numero) == TRUE then selfSay('Are you sure you wish to withdraw '..numero..' gold from your bank account?', cid) talkState[cid] = 7 else selfSay("Please tell me how much gold you would like to withdraw.", cid) talkState[cid] = 20 end elseif talkState[cid] == 20 then moneyTo[cid] = tonumber(msg) if isValidMoney(moneyTo[cid]) == TRUE then selfSay('Are you sure you wish to withdraw '..moneyTo[cid]..' gold from your bank account?', cid) talkState[cid] = 7 else selfSay('Is isnt valid amount of gold to withdraw.', cid) talkState[cid] = 0 end elseif talkState[cid] == 7 then if msgcontains(msg, 'yes') then if doPlayerWithdrawMoney(cid, moneyTo[cid]) ~= TRUE then selfSay('There is not enough gold on your account. Your account balance is '..getPlayerBalance(cid)..'. Please tell me the amount of gold coins you would like to withdraw.', cid) else selfSay('Here you are, ' .. moneyTo[cid] .. ' gold. Please let me know if there is something else I can do for you.', cid) talkState[cid] = 0 end elseif msgcontains(msg, 'no') then selfSay('As you wish. Is there something else I can do for you?', cid) talkState[cid] = 0 end ----------------------------------------------------------------- ---------------------------- Transfer (przelew) ----------------- ----------------------------------------------------------------- elseif msgcontains(msg, 'transfer') then selfSay("Please tell me the amount of gold you would like to transfer.", cid) talkState[cid] = 11 elseif talkState[cid] == 11 then moneyTo[cid] = tonumber(msg) if isValidMoney(moneyTo[cid]) == TRUE then selfSay('Who would you like transfer '..moneyTo[cid]..' gold to?', cid) talkState[cid] = 12 else selfSay('Is isnt valid amount of gold to transfer.', cid) talkState[cid] = 0 end elseif talkState[cid] == 12 then playerTo[cid] = msg if getCreatureName(cid) == playerTo[cid] then selfSay('Ekhm, You want transfer money to yourself? Its impossible!', cid) talkState[cid] = 0 return TRUE end if playerExists(playerTo[cid]) then selfSay('So you would like to transfer ' .. moneyTo[cid] .. ' gold to "' .. playerTo[cid] .. '" ?', cid) talkState[cid] = 13 else selfSay('Player with name "' .. playerTo[cid] .. '" doesnt exist.', cid) talkState[cid] = 0 end elseif talkState[cid] == 13 then if msgcontains(msg, 'yes') then if getPlayerBalance(cid) < moneyTo[cid] then selfSay('You dont have enought money on your bank account.', cid) return TRUE end if doPlayerTransferMoneyTo(cid, playerTo[cid], moneyTo[cid]) ~= TRUE then selfSay('This player does not exist on this world or have no vocation.', cid) else selfSay('You have transferred ' .. moneyTo[cid] .. ' gold to "' .. playerTo[cid] ..' ".', cid) playerTo[cid] = nil end elseif msgcontains(msg, 'no') then selfSay('As you wish. Is there something else I can do for you?', cid) end talkState[cid] = 0 end return TRUE end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) OBS: esse script não é meu, peguei de um forum americano espero ter ajudado :smile_positivo:
  8. vo tenta faze se consegui edito
  9. Titulo ilegal, reportado
  10. eu acho que conseguiria fazer, vou tentar e qualquer coisa posto qui edit: function onUse(cid, tileitem, fromPosition, toPosition) local randoms = {[4] = math.random(-4, 4), [5] = math.random(-5, 5) } if item.itemid == [color="#0000FF"]9242[/color] then [color="#FF00FF"]doSummonCreature([color="#00FF00"]Demon[/color], {x = posa.x + randoms[4], y = posa.y + randoms[5], z = posa.z}) doSummonCreature([color="#00FF00"]Demon[/color], {x = posa.x + randoms[4], y = posa.y + randoms[5], z = posa.z})[/color] doTransformItem(item.uid, [color="#696969"]9241[/color]) elseif item.itemid == [color="#696969"]9241[/color] then doPlayerSendTextMessage(cid, 25, "O [color="#FFFF00"]xxxx[/color] esta inativo agora, retornara ao normal em menos de 1 hora.") end return FALSE end Em Azul: Id do primeiro item (o que ira ser transformado) Em Rosa: Os monstros que o item ira sumonar, no caso eu coloquei 2 monstros (demons), caso queira acresentar mais algum monstro só adicione doSummonCreature(Demon, {x = posa.x + randoms[4], y = posa.y + randoms[5], z = posa.z}) em baixo do que esta em rosa. Em Verde: o nome dos monstros a serem sumonados Em Cinza: Id do item transformado Em Amarelo: Nome do Item (se quiser pode mudar a frase...) agora em itens.xml, procura o item 9241 e adcione logo abaixo: <attribute key="decayTo" value="9242"/> <attribute key="duration" value="3600"/> </item> OBS: fiz esse script postando nesse topico, nao testei e nao sei se funciona, qualquer coisa poste aqui :smile_positivo:
  11. voce pode usar ACTION IDs e add event, por exemplo: function onUse(cid, fromPosition, toPosition) local function checkStone(stonepos) local stone = getThingfromPos(stonepos) if getstone.itemid ~= [color="#FF00FF"]1354[/color] then doCreateItem([color="#FF00FF"]1354[/color],1,stonepos) end stonepos = [color="#0000FF"]{x=548, y=363, z=11, stackpos=1}[/color] getstone = getThingfromPos(stonepos) if item.uid == [color="#FF8C00"]2016[/color] then -- alavanca 1 doSetItemActionId(getstone.uid, [color="#FFFF00"]5555[/color]) elseif item.uid == [color="#FF0000"]2017[/color] and getstone.actionid == [color="#FFFF00"]5555 [/color]then -- alavanca 2 doRemoveItem(getstone,1) addEvent(checkStone, [color="#00FF00"]1200000[/color]) else doPlayerSendTextMessage(cid, 25, "Voce tem que usar a primeira alavanca antes de remover a pedra.") end return FALSE end Em Rosa: é o id da pedra Em Azul: é a posição da pedra Em Laranja: é o uniqueid da alavanca 1 Em Vermelho: é o uniqueid da alavanca 2 Em Amarelo: é o action id que a stone vai ter(pro script reconhecer se ela pode ser removida ou não) Em Verde: é o tempo que voce quer que a stone reapareça(no caso coloquei 20 minutos) fiz esse script com duas alavancas, se prescisar de mais e nao souber colocalas posta aqui que eu te do um help OBS: eu fiz o script postando esse topico, nao testei e nao sei se funciona qualquer coisa poste aqui :smile_positivo:
  12. oiaa funciono mesmo oSAKPpkosakopsakopsa tyy :smile_positivo:
  13. ele quer saber qual seu server e qual a versão dele
  14. primeiramente ola pessoal do xtibia, queria saber como mudar a configuração dos posts para aparecerem na pagina sem prescisar fica clicando... ex.:
  15. sim ambos tem create porque cria a ponte e retira as bordas ou vice versa, mesmo assim muito obrigado vou adptar isso ao meu script :smile_positivo:
  16. ok: function onUse(cid, item, fromPosition, itemEx, toPosition) piece1pos = {x=502, y=466, z=8, stackpos=0} piece2pos = {x=503, y=466, z=8, stackpos=0} piece3pos = {x=504, y=466, z=8, stackpos=0} piece4pos = {x=502, y=466, z=8, stackpos=0} piece5pos = {x=502, y=466, z=8, stackpos=1} piece6pos = {x=504, y=466, z=8, stackpos=0} piece7pos = {x=504, y=466, z=8, stackpos=1} piece8pos = {x=503, y=466, z=8, stackpos=0} getpiece1 = getThingfromPos(piece1pos) getpiece2 = getThingfromPos(piece2pos) getpiece3 = getThingfromPos(piece3pos) getpiece4 = getThingfromPos(piece4pos) getpiece5 = getThingfromPos(piece5pos) getpiece6 = getThingfromPos(piece6pos) getpiece7 = getThingfromPos(piece7pos) getpiece8 = getThingfromPos(piece8pos) if item.itemid == 1945 and getpiece1.itemid == 5770 then doRemoveItem(getpiece1.uid,1) doRemoveItem(getpiece2.uid,1) doRemoveItem(getpiece3.uid,1) doCreateItem(4616,1,piece8pos) doCreateItem(9021,1,piece4pos) doCreateItem(4645,1,piece5pos) doCreateItem(9021,1,piece6pos) doCreateItem(4647,1,piece7pos) doTransformItem(item.uid,item.itemid+1) else end if item.itemid == 1946 and getpiece4.itemid == 9021 then doCreateItem(5770,1,piece1pos) doCreateItem(5770,1,piece2pos) doCreateItem(5770,1,piece3pos) doRemoveItem(getpiece5.uid,1) doRemoveItem(getpiece7.uid,1) doTransformItem(item.uid,item.itemid-1) else end if item.itemid == 1945 and getpiece4.itemid == 9021 then doCreateItem(5770,1,piece1pos) doCreateItem(5770,1,piece2pos) doCreateItem(5770,1,piece3pos) doRemoveItem(getpiece5.uid,1) doRemoveItem(getpiece7.uid,1) doTransformItem(item.uid,item.itemid+1) else end if item.itemid == 1946 and getpiece1.itemid == 5770 then doRemoveItem(getpiece1.uid,1) doRemoveItem(getpiece2.uid,1) doRemoveItem(getpiece3.uid,1) doCreateItem(4616,1,piece8pos) doCreateItem(9021,1,piece4pos) doCreateItem(4645,1,piece5pos) doCreateItem(9021,1,piece6pos) doCreateItem(4647,1,piece7pos) doTransformItem(item.uid,item.itemid-1) else end return TRUE end
  17. que bom que gostou ;D
  18. escreva o que voce prescisa aqui no forum e talvez eu possa te ajudar...
  19. ta muito bom, mais faltou as funções doTargetCombatHealth, doAreaCombatHealth, doTargetCombatMana e doAreaCombatMana
  20. vo tenta fazer se consegui posto aqui
  21. ola pessoal x tibiano, eu venho aqui para pedir um script da ponte do sewer gate de rook (aquela de area free), em que voce puxa a switch a ponte aparece, e puxa denovo ela some, eu fiz a minha versão deste script e ele funciona perfeitamente, porem se tem algum player em cima da ponte e usa a alavanca, o player fica preso na agua agradeço se puderem me ajudar ty :smile_positivo:
  22. humm acho que teria sim, vou tentar fazer pra vc e posto aqui edit: terminei espero que goste :smile_positivo: Death.xml --entre na pasta data/npcs copie algum arquivo, renomeie pra death e cole isso dentro: <?xml version="1.0" encoding="UTF-8"?> <npc name="Death" script="data/npc/scripts/Death.lua" walkinterval="2000" floorchange="0"> <health now="100" max="100"/> <look type="9" head="20" body="30" legs="40" feet="50"/> <parameters> <parameter key="message_greet" value="Ola |PLAYERNAME| voce gostaria de encomendar sua morte?" /> </parameters> </npc> Script do Npc -- entre na pasta data/npcs/scripts copie algum arquivo, renomeie para death e cole isso dentro local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end function onThink() npcHandler:onThink() end function killPlayer(cid, message, keywords, parameters, node) if(not npcHandler:isFocused(cid)) then return false end pos = getCreaturePosition(cid) health = getCreatureHealth(cid) maxhealth = getCreatureMaxHealth(cid) if isPlayer(cid) == TRUE then doCreatureAddHealth(cid, -maxhealth - health) npcHandler:say("Ate a proxima vida |PLAYERNAME|!", cid) else npcHandler:say("Voce não é digno de morrer pelas minhas mãos.", cid) end keywordHandler:moveUp(1) return true end local node1 = keywordHandler:addKeyword({'yes'}, killPlayer, {dead = 1}) npcHandler:addModule(FocusModule:new())
  23. pois é, é o que eu estou querendo saber faz tempo e parece que ninguem aqui sabe, se sabe nao ajuda :mellow:
  24. qual é o problema, voce abri o ot e os outros nao conseguem logar ou nen da pra abri o ot?, seja mais especifico...
  25. olha cara, eu nao posso responder sua duvida ate porque nao mecho com mysql, mas se o sqlite (que é bem mais facil de se mecher) esta funcionando perfeitamente, pra que trocar pra mysql?, database mysql é complicada de se mecher e é mais pra otservers grandes, eu te aconselho a ficar com sqlite :smile_positivo:
  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...