Ir para conteúdo

jhon992

Conde
  • Total de itens

    631
  • Registro em

  • Última visita

  • Dias Ganhos

    13

Tudo que jhon992 postou

  1. As notas você deve fazer que nem na primeira situação, usando o Dat Editor. Primeiro testa no seu otserv quando você junta 1000 Dollars e clica neles que sprite aparece, após isso tens que achar a sprite correspondente no Dat Editor e substituir pelo sprite que você deseja! Ja o moves seria muito complicado, eu nem sei como fazer. Mais acho que os caras devem ter feito um bag com o nome "moves" e colocar para não poder mover ela, e dentro delas colocaram runas com esses determinados sprites, e cada vez que trocasse de pokemon essa bag mudaria. Acho que a logica é essa. Mais nem sei como fazer. =/
  2. Me matei um pokin pra faze esse script, mais ta aew a parte que eu fiz pelo menos. Fiz apenas a parte de talkactions que é mais a minha aréa, dae a parte das quest's tens que encontrar outro scripter pra faze pra ti. Vai em "data/talkactions/talkactions.xml" e poem a tag: <talkaction words="!reset" script="reset.lua"/> Agora entre na pasta "talkactions/scripts" duplique algum arquivo dessa pasta e renomeie para "reset" sem as aspas, e nele cole: -- <Script by jhon992> -- function onSay(cid, words, param, channel) if (param ~= "mixedpromo" and param ~= "spinpromo" and param ~= "sacredpromo" and param ~= "supremepromo" and param ~= "forgottenpromo" and param ~= "novapromo") then doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT,"Incorrect parameter.") return TRUE end local config = { mixedlvl = 10000, -- level para resetar mixed spinlvl = 60000, -- level para resetar spin sacredlvl = 95000, -- level para resetar sacred supremelvl = 310000, -- level para resetar supreme forgottenlvl = 550000, -- level para resetar forgotten novalvl = 715000, -- level para resetar nova vocationMixed = 5, -- id vocação mixed vocationSpin = 6, -- id vocação spin vocationSacred = 7, -- id vocação sacred vocationSupreme = 11, -- id vocação supreme vocationForgotten = 12, -- id vocação forgotten vocationNova = 13, -- id vocação nova lvlreset = 8, -- level apos resetar primeiras vocações lvlSacred = 30000, -- level apos resetar vocação sacred lvlNew = 100000, -- level apos resetar útimas 3 vocações player = getPlayerGUID(cid), -- não mexa! pz = "no", -- players precisam estar em protection zone para usar? ("yes" or "no"). battle = "yes", -- players deve estar sem battle ("yes" or "no") premium = "no" -- se precisa ser premium account ("yes" or "no") } if(config.pz == "yes") and (getTilePzInfo(getCreaturePosition(cid)) == FALSE) then doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT,"You should be in the protection zone for use.") return TRUE end if(config.premium == "yes") and (not isPremium(cid)) then doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "Only players with premium account can use.") return TRUE end if(config.battle == "yes") and (getCreatureCondition(cid, CONDITION_INFIGHT) == TRUE) then doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "You can not use in battle.") return TRUE end if (param == "mixedpromo") then if (getPlayerVocation(cid) == 1 or getPlayerVocation(cid) == 2 or getPlayerVocation(cid) == 3 or getPlayerVocation(cid) == 4) then if (getPlayerLevel(cid) >= config.mixedlvl) then doPlayerSetVocation(cid, config.vocationMixed) doRemoveCreature(cid) db.executeQuery("UPDATE `players` SET `level` = "..config.lvlreset..", `experience` = 0 WHERE `id` = "..config.player) return TRUE else doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT,"You need level "..config.mixedlvl..".") return TRUE end else doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT,"You don't have vocation for this reset.") return TRUE end end if (param == "spinpromo") then if (getPlayerVocation(cid) == 5) then if (getPlayerLevel(cid) >= config.spinlvl) then doPlayerSetVocation(cid, config.vocationSpin) doRemoveCreature(cid) db.executeQuery("UPDATE `players` SET `level` = "..config.lvlreset..", `experience` = 0 WHERE `id` = "..config.player) else doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT,"You need level "..config.spinlvl..".") return TRUE end else doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT,"You don't have vocation for this reset.") return TRUE end end if (param == "sacredpromo") then if (getPlayerVocation(cid) == 6) then if (getPlayerLevel(cid) >= config.sacredlvl) then doPlayerSetVocation(cid, config.vocationSacred) doRemoveCreature(cid) db.executeQuery("UPDATE `players` SET `level` = "..config.lvlSacred..", `experience` = 0 WHERE `id` = "..config.player) else doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT,"You need level "..config.sacredlvl..".") return TRUE end else doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT,"You don't have vocation for this reset.") return TRUE end end if (param == "supremepromo") then if (getPlayerVocation(cid) == 10) then if (getPlayerLevel(cid) >= config.supremedlvl) then doPlayerSetVocation(cid, config.vocationSupreme) doRemoveCreature(cid) db.executeQuery("UPDATE `players` SET `level` = "..config.lvlNew..", `experience` = 0 WHERE `id` = "..config.player) else doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT,"You need level "..config.supremelvl..".") return TRUE end else doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT,"You don't have vocation for this reset.") return TRUE end end if (param == "forgottenpromo") then if (getPlayerVocation(cid) == 11) then if (getPlayerLevel(cid) >= config.forgottenlvl) then doPlayerSetVocation(cid, config.vocationForgotten) doRemoveCreature(cid) db.executeQuery("UPDATE `players` SET `level` = "..config.lvlNew..", `experience` = 0 WHERE `id` = "..config.player) else doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT,"You need level "..config.forgottenlvl..".") return TRUE end else doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT,"You don't have vocation for this reset.") return TRUE end end if (param == "novapromo") then if (getPlayerVocation(cid) == 12) then if (getPlayerLevel(cid) >= config.novalvl) then doPlayerSetVocation(cid, config.vocationNova) doRemoveCreature(cid) db.executeQuery("UPDATE `players` SET `level` = "..config.lvlNew..", `experience` = 0 WHERE `id` = "..config.player) else doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT,"You need level "..config.novalvl..".") return TRUE end else doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT,"You don't have vocation for this reset.") return TRUE end end return TRUE end Deixei bem configurável pra você configurar como se achar melhor. Explicando como funciona: Resolvi fazer tudo em um script só, então não tinha como eu por para identificar apenas aqueles parâmetros que tu queria, se eu fizesse daquele jeito teria que fazer vários scripts diferentes. Então vai funcionar da seguinte forma, tens que falar "!reset mixedpromo" ou "!reset spinpromo" sem as aspas, e assim por diante. Espero ter te ajudado um pouco, e é isso aew!
  3. jhon992

    Server Save

    Faiz assim esse globalSaveEnable = true, poem = false. Agora vai em "data/globalevents/globalevents.xml" e se nãe existir essa tag ainda então crie: <globalevent name="save" interval="3600" event="script" value="save.lua"/> O interval vai ser = o tempo em segundos para o save! Agora na pasta "data/globalevents/scripts" duplique algum arquivo e nomeie para "save" sem as aspas e nele cole: local config = { broadcast = {120, 30}, shallow = "no", delay = 120, events = 30 } config.shallow = getBooleanFromString(config.shallow) local function executeSave(seconds) if(isInArray(config.broadcast, seconds)) then local text = "" if(not config.shallow) then text = "Full s" else text = "S" end text = text .. "erver save within " .. seconds .. " seconds, please mind it may freeze!" doBroadcastMessage(text) end if(seconds > 0) then addEvent(executeSave, config.events * 1000, seconds - config.events) else doSaveServer(config.shallow) end end function onThink(interval, lastExecution, thinkInterval) if(table.maxn(config.broadcast) == 0) then doSaveServer(config.shallow) else executeSave(config.delay) end return true end É isso aew, espero ter ajudado
  4. Demorei mais terminei, achei até legal a weapon =) Vai em "dat/creaturescripts/creaturescripts.xml" poem a tag: <event type="attack" name="SwordPar" event="script" value="sworpar.lua"/> Agora abra a pasta "creaturescripts/scripts", encontre o seu arquivo login.lua abra e cole a tag: registerCreatureEvent(cid, "SwordPar") Agora o principal, copie e cole um arquivo dessa mesma pasta e renomeie para "swordpar" sem as aspas e nele cole: -- <Script by jhon992> -- local weaponpar = 2377 -- id do item que dara paralize local chancepar = 5 -- chance de ocorrer o paralize (10 = 10%, 20 = 20%, 30 = 30%, 1 = 1%, 5 = 5%) e assim por diante local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_BLOCKARMOR, 1) setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatFormula(combat, COMBAT_FORMULA_SKILL, 1, 0, 1, 0) -- aqui edita os valores pro dano de paralize, vai mudando ae e testando até achar o desejado local condition = createConditionObject(CONDITION_PARALYZE) setConditionParam(condition, CONDITION_PARAM_TICKS, 20000) -- aqui vai o tempo de paralyze, 1000 = 1 segundo setConditionFormula(condition, -0.9, 0, -0.9, 0) setCombatCondition(combat, condition) function onAttack(cid, target) if ((getCreaturePosition(target).x == getCreaturePosition(cid).x or getCreaturePosition(target).x == getCreaturePosition(cid).x+1 or getCreaturePosition(target).x == getCreaturePosition(cid).x-1) and (getCreaturePosition(target).y == getCreaturePosition(cid).y or getCreaturePosition(target).y == getCreaturePosition(cid).y+1 or getCreaturePosition(target).y == getCreaturePosition(cid).y-1)) then if (getPlayerSlotItem(cid, 5).itemid == weaponpar or getPlayerSlotItem(cid, 6).itemid == weaponpar) then if (math.random(1,100) > (100 - chancepar)) then doPlayerSendTextMessage(cid, 23, getCreatureName(target).." has paralized.") doAddCondition(target, condition) return true else return true end end end return true end é isso aew, espero te ajudar e ajudar muitos outros com a mesma dúvida. =)
  5. Isso é meio complicadinho de ensinar, primeiro você deve baixar um Dat Editor e pesquisa tutoriais de como usar. Vo deixar um link de um tutorial pra te dar uma clareada: http://www.xtibia.com/forum/topic/164402-aprendendo-usar-dat-editor/ Vou explicar mais ou menos agora: Você deve baixar o Dat Editor(procure na seção de downloads que encontrara), depois abrir os arquivos Dat e Spr de seu cliente do pokemon nele. Após você ira procurar o item que é essa pokebola na parte esquerda desse programa, ao achar você deve dar um import nas sprites do monstro que você quer adicionar. Depois sigua esse tutorial : http://www.xtibia.com/forum/topic/38886-criando-monstros-dat-editor/ Espero ter te ajudado!
  6. aqui tem um tutorial bom pra explicar isso, que funciona tanto pra poketibia quanto pra qualquer otserv. Ta aew o link: http://www.xtibia.com/forum/topic/154428-criando-novos-pokes-ou-monsters-tibia-em-geral/
  7. ta aew: function onSay(cid, words, param, channel) local cargas = 5 if (getCreatureSkullType(cid) == SKULL_BLACK) then if (getPlayerItemCount(cid, 10064) > 0 and getPlayerStorageValue(cid, 102065) == cargas) then doCreatureSetSkullType(cid, SKULL_NONE) doPlayerRemoveItem(cid, 10064, 1) doPlayerSendTextMessage(cid, 25, "Black Skull Retirada.") doSendMagicEffect(getPlayerPosition(cid), CONST_ME_HOLYDAMAGE) setPlayerStorageValue(cid, 102065,0) return true end if getPlayerItemCount(cid, 10064) > 0 then doCreatureSetSkullType(cid, SKULL_NONE) doPlayerSendTextMessage(cid, 25, "Black Skull Retirada.") doSendMagicEffect(getPlayerPosition(cid), CONST_ME_HOLYDAMAGE) setPlayerStorageValue(cid, 102065, getPlayerStorageValue(cid, 102065)+1) else doPlayerSendTextMessage(cid, 25, "Voce precisa Do Iten Vip Para Remover Skull!") end end if (getCreatureSkullType(cid) == SKULL_RED) then if (getPlayerItemCount(cid, 10064) > 0 and getPlayerStorageValue(cid, 102065) == cargas) then doCreatureSetSkullType(cid, SKULL_NONE) doPlayerRemoveItem(cid, 10064, 1) doPlayerSendTextMessage(cid, 25, "Red Skull Retirada.") doSendMagicEffect(getPlayerPosition(cid), CONST_ME_HOLYDAMAGE) setPlayerStorageValue(cid, 102065,0) return true end if getPlayerItemCount(cid, 10064) > 0 then doCreatureSetSkullType(cid, SKULL_NONE) doPlayerSendTextMessage(cid, 25, "Red Skull Retirada.") doSendMagicEffect(getPlayerPosition(cid), CONST_ME_HOLYDAMAGE) setPlayerStorageValue(cid, 102065, getPlayerStorageValue(cid, 102065)+1) else doPlayerSendTextMessage(cid, 25, "Voce precisa Do Iten Vip Para Remover Skull!") end end if (getCreatureSkullType(cid) == SKULL_NONE) then doPlayerSendTextMessage(cid, 25, "Voce Nao Tem Mas Nem Uma Skull Para Retirar!") doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF) end return TRUE end
  8. o teu script ta certo só falta colocar no "actions.xml" a tag: <action uniqueid="50102" event="script" value="nomedoteuscript.lua"/> e na alavanca com o mapa editor poem o id "50102". E configura as posições corretas que ficarão os itens no scripts. Se puder passar todas as posições, Exemplo: posição item 1 : (x = 10, y = 20, z = 6) posição item2 : (x = 50, y = 30, z = 5) . . posição playerTeleportado: (x= 100, y = 50, z = 7) Eu configuro pra ti, é sóh passar!
  9. que merda hdasdsahu, vai diminuindo os exp ali do script e vai testando até achar o certo. Muda as tags desse tipo: doPlayerSetExperienceRate(cid, 90) -- diminiu o 90, o 65 e assim por diante. --multiplicam absurdamente, era pra dar 3600 exp mas ta dando 378000 regra de 3: 90*3600 = 378000*x x = 324000 / 378000 x = 0.85 então o primeiro: doPlayerSetExperienceRate(cid, 90) troca pra doPlayerSetExperienceRate(cid, 0.85) vê se funciona e me avisa. Se funcionar vais te que m falar quanto de xp que ta dando a cada estagio e quando que era pra dar.
  10. o meu acontecia um problema parecido, quando eu editava algum player direto pela database e depois logava esse player e soltava uma magia qualquer, dava um frezze imenso e caia o servidor. Tenta usa uma database limpa só pra teste.
  11. vi isso sóh em codigo nas sources, ta aew o link: http://www.xtibia.com/forum/topic/139627-autostacking-items/
  12. malz aew, meu google crome não tava abrindo spoiler mais resolvi. Ta aew te script nem testei ainda se der ero me avisa: function onSay(cid, words, param, channel) if (getCreatureSkullType(cid) == SKULL_BLACK) then if (getPlayerItemCount(cid, 10064) > 0 and getPlayerStorageValue(cid, 102065) == 1) then doCreatureSetSkullType(cid, SKULL_NONE) doPlayerRemoveItem(cid, 10064, 1) doPlayerSendTextMessage(cid, 25, "Black Skull Retirada.") doSendMagicEffect(getPlayerPosition(cid), CONST_ME_HOLYDAMAGE) setPlayerStorageValue(cid, 102065,0) return true end if getPlayerItemCount(cid, 10064) > 0 then doCreatureSetSkullType(cid, SKULL_NONE) doPlayerSendTextMessage(cid, 25, "Black Skull Retirada.") doSendMagicEffect(getPlayerPosition(cid), CONST_ME_HOLYDAMAGE) setPlayerStorageValue(cid, 102065,1) else doPlayerSendTextMessage(cid, 25, "Voce precisa Do Iten Vip Para Remover Skull!") end end if (getCreatureSkullType(cid) == SKULL_RED) then if (getPlayerItemCount(cid, 10064) > 0 and getPlayerStorageValue(cid, 102065) == 1) then doCreatureSetSkullType(cid, SKULL_NONE) doPlayerRemoveItem(cid, 10064, 1) doPlayerSendTextMessage(cid, 25, "Red Skull Retirada.") doSendMagicEffect(getPlayerPosition(cid), CONST_ME_HOLYDAMAGE) setPlayerStorageValue(cid, 102065,0) return true end if getPlayerItemCount(cid, 10064) > 0 then doCreatureSetSkullType(cid, SKULL_NONE) doPlayerSendTextMessage(cid, 25, "Red Skull Retirada.") doSendMagicEffect(getPlayerPosition(cid), CONST_ME_HOLYDAMAGE) setPlayerStorageValue(cid, 102065,1) else doPlayerSendTextMessage(cid, 25, "Voce precisa Do Iten Vip Para Remover Skull!") end end if (getCreatureSkullType(cid) == SKULL_NONE) then doPlayerSendTextMessage(cid, 25, "Voce Nao Tem Mas Nem Uma Skull Para Retirar!") doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF) end return TRUE end
  13. peguei o segundo paragrafo e traduzi: O comprimento do crânio vermelho = 4 * 17 * 17 * 17 O comprimento do crânio preto = 4 * 24 * 60 * 60 Frags diária Para Red Skull = 5 Frags semanais para Red Skull = 25 Frags mensal Para Red Skull = 100 Frags diária Para Black Skull = Frags diária para Red Skull Frags semanal Para Black Skull = Frags semanais para Red Skull Frags mensal Para Black Skull = Frags mensal Para Red Skull Frags diária ao banimento = Frags diária Para Caveira Vermelha Frags semanal ao banimento = Frags semanais para Red Skull mensal Frag Banishment sto Frags = Red Skull Para mensal Saúde Morte com caveira preta = 100 Mana Morte com caveira preta = 35 use Black Skull = true use Handler Frag = true avançados Lista Frag = false então troca a parte das Frags diária Para Red Skull = 5 e poem 10, que automaticamente o black skull vai ser 20!
  14. poem essa tag no teu script login.lua na pasta "data/creaturescripts/scripts" : if (getPlayerAccess(cid) > 0) then doPlayerSetExperienceRate(cid, 0) end
  15. tenta isso: function onLogin(cid) if isPremium(cid) ~= FALSE then if (getPlayerLevel(cid) <= 50) then doPlayerSetExperienceRate(cid, 90) end if (getPlayerLevel(cid) >= 51 and getPlayerLevel(cid) <= 100) then doPlayerSetExperienceRate(cid, 65) end if (getPlayerLevel(cid) >= 101 and getPlayerLevel(cid) <= 200) then doPlayerSetExperienceRate(cid, 52) end if (getPlayerLevel(cid) >= 201 and getPlayerLevel(cid) <= 300) then doPlayerSetExperienceRate(cid, 39) end if (getPlayerLevel(cid) >= 301 and getPlayerLevel(cid) <= 350) then doPlayerSetExperienceRate(cid, 26) end if (getPlayerLevel(cid) >= 351 and getPlayerLevel(cid) <= 400) then doPlayerSetExperienceRate(cid, 13) end if (getPlayerLevel(cid) > 400) then doPlayerSetExperienceRate(cid, 9) end end return TRUE end
  16. abre a sua database com o sqlstudio, depois vai na tabela de accounts, depois clica na aba Data e vai clicando no icone de "negativo vermelho - Delete select row (%s)" até apagar todas as contas e pronto.
  17. tens que criar um storege para verificar se o script foi executado uma vez, dae na segunda vez tu remove o item e zera o storage. Se não entendeu me passa teu script que eu arrumo pra ti!
  18. design ta incrível parabéns! E obrigado por disponibilizar pra galera Rep+
  19. um script desse tipo nem tem sentido, usa o premium time msm então ou explica melhor oque tu quer.
  20. tens que posta o sistema de reset que tu usa, dae alguem pode te ajudar.
  21. jhon992

    Tile

    toca esse que vai funcionar então Bhost: function onStepIn(cid, item, position, fromPosition) level = 50 if getPlayerLevel(cid) >= level then doTeleportThing(cid, fromPosition, true) doSendMagicEffect(getThingPos(cid), CONST_ME_MAGIC_BLUE) doPlayerSendCancel(cid,"You Need level " .. level .. " or more this pass.") end return TRUE end
  22. crair uma arquivo na pasata "data/creaturescripts/scripts/" com o nome de "vippromotion" e cole: function onLogin(cid) if (isVip(cid) == true) if(isInArray({5, 6, 7, 8}, getPlayerVocation(cid))) then -- id das vocações que ira voltar doPlayerSetVocation(cid,getPlayerVocation(cid)+4) end elseif isVip(cid) == FALSE and getVipDays(cid) == 0 then if(isInArray({9, 10, 11, 12}, getPlayerVocation(cid))) then -- id das vocações que esta quando vip doPlayerSetVocation(cid,getPlayerVocation(cid)-4) end end return TRUE end depois vai em "data/creaturescripts/creaturescripts.xml" e cole essa tag: <event type="login" name="VipPromotion" script="vippromotion.lua"/> é isso aew =)
  • Quem Está Navegando   0 membros estão online

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