-
Total de itens
631 -
Registro em
-
Última visita
-
Dias Ganhos
13
Tudo que jhon992 postou
-
É mesmo lordbug99, ja concertei valeu ae por ajudar. Ta 100% funcional agora, pelo menos espero que esteja
-
Vai nos seu "data/movements/scripts" duplica um arquivo e nomeia para "tptrainer" sem as aspas, nele cole: local posTemple = {x=2456, y=2465, z=7} -- posição do templo local hras = 1 -- quantidade maxima de hras function onStepIn(cid, item, position, fromPosition) parameters = {cid = cid, item = item, pos = getCreaturePosition(cid)} addEvent(tpTemple, 3600000*hras, parameters) end function tpTemple(parameters) if isPlayer(parameters.cid) then if (parameters.pos.x == getCreaturePosition(parameters.cid).x and parameters.pos.y == getCreaturePosition(parameters.cid).y and parameters.pos.z == getCreaturePosition(parameters.cid).z) then doTeleportThing(parameters.cid, posTemple) doSendMagicEffect(posTemple, CONST_ME_MAGIC_BLUE) doPlayerSendTextMessage(parameters.cid, MESSAGE_STATUS_CONSOLE_BLUE, "Voce ultrapassou o tempo máximo estipulado de "..hras.." nos Trainers.") end end end Agora abra, "data/movements/movements.xml" e cole a tag: <movevent type="StepIn" actionid="14000" event="script" value="tptrainer.lua"/> Último passo, vai nos tiles do seu trainer e coloca o actionid 14000 em todos!
-
Primeiro vai em "data/actions/scripts" duplique um arquivo e nomeie para "addtutor" sem aspas e nele cole: function onUse(cid, item, fromPosition, itemEx, toPosition) local days = 7 -- dias que durarão o tutor local effect = 30 -- effect ao receber tutor local storage = 34537 -- não mexa doRemoveItem(item.uid, 1) doSendMagicEffect(getPlayerPosition(cid), effect) setPlayerGroupId(cid, 2) doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "Agora você é Tutor por "..days.." dias.") exhaustion.set(cid, storage, days * 86400) setPlayerStorageValue(cid, 102076,1) return TRUE end E em "data/actions/actions.xml" cole a tag: <action itemid="id do item" script="addtutor.lua"/> Agora para finalizar, vai em "data/creaturescripts/scripts/login" abra-o e cole a tag: if ((exhaustion.check(cid, 34537) == FALSE) and (getPlayerStorageValue(cid, 102076) == 1)) then setPlayerGroupId(cid, 1) doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "Seu dias de Tutor acabaram.") setPlayerStorageValue(cid, 102076, 0) end
-
Assim tu vai entender melhor: redSkullLength = 30 * 24 * 60 * 60 blackSkullLength = 45 * 24 * 60 * 60 No redSkullLength e no blackSkullLength muda apenas a primeira parte se quiser apenas alterar os dias, 30 = 30 dias. Muda como desejar. Ou seja, no script acima o red dura 30 dias e o black 45 dias. Se quiser 24 hras ou menos usa assim: redSkullLength = 24 * 60 * 60 blackSkullLength = 22 * 60 * 60 E muda o 24 como quiser. Ou seja, no script acima o red dura 24 hras e o black 22 hras. É isso aew, acho que esta bem explicado. Créditos pro @Epyrus!
-
@All, valeu pelos elogios e criticas. Nem quero me aprofundar no ramo de spriter, só precisei de sprites de armas, procurei por tudo e não encontrei dae criei minhas próprias, então resolvi disponibilizar para se alguém tiver procurando também e quiser usar e editar ficar avontade.
-
[Creaturescript] Simple Reputation System !
tópico respondeu ao jhon992 de jhon992 em Globalevents e Spells
Desculpe @Trivelatos é que tinha dado um bug na edição, então tive e editar tudo denovo e tinha esquecido a última parte mais ja corrigi. Para funcionar o comando adiciona a última tag do script no seus talkactions. Desculpa aew! -
vai na pasta "data/npc/scripts" e duplica um arquivo aew nomeia para "passDoor" sem aspas, abre e cola: local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) local talkState = {} 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 onCreatureSayCallback(cid, type, msg) local storageDoor = 7234 -- storage que vai ser utilizado na door if not npcHandler:isFocused(cid) then return false end local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid if (msgcontains(msg, "yes")) then selfSay("Muito bem, para isso você terá que me responder qual é a linguagem dos Orcs!", cid) talkState[talkUser] = 1 end if (msgcontains(msg, "kruga") and talkState[talkUser] == 1) then selfSay("Voce acertou, muito bem, agora voce poderá passar pela porta!", cid) setPlayerStorageValue(cid, storageDoor, 1) return true end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) Agora em "data/npc" duplique um arquivo xml desses, nomeie para "nome do npc" e cole: <?xml version="1.0" encoding="UTF-8"?> <npc name="nome do npc" script="passDoor.lua" walkinterval="2000" floorchange="0"> <health now="999999" max="999999"/> <look type="407" corpse="2212"/> <parameters> <parameter key="message_greet" value="Oh, Eu sabia que voce viria |PLAYERNAME|. Voce quer encontrar os Elfos correto?"/> </parameters> </npc> Agora vai com seu mapa editor crie uma porta no local desejado "id da porta : 1225" e coloque o action id : 7234 nela.
-
deve ter onlogin sim. Vai na pasta "data/creaturescripts/scripts/login.lua" abre e verifica se tem: doPlayerAddPremiumDays Sóh remover dae. Se não tiver abre seu "data/creaturescripts/creaturescripts.xml" procura se tem mais algum arquivo que seja do type="login", então encontre o arquivo correspondente na pasta scripts denovo e verifica se tem: doPlayerAddPremiumDays Se tiver remove e pronto! créditos pro lordbug99.
-
[Creaturescript] Simple Reputation System !
tópico respondeu ao jhon992 de jhon992 em Globalevents e Spells
Valeu a e @Vodkart pelo elogio e a dica. Nem percebi que não precisava dos dois if, porque a primeira vez que fiz o script não usei isPlayer(target), dae fui testar e reparei que qualquer monstro concedia rep+ asjida. Então fui e adicionei nas duas parte da configuração que precisava verificar se era player. Valeu pela dica tambem @lordbug99 nem tinha estudado o getCreatureSkullType, tinha deduzido que quem tivesse skull era pk então desculpa pelo erro ao galera. -
[23:57:36.844] (Luadoplayeradditem) Player Not Found
tópico respondeu ao pounkan de jhon992 em Lixeira Pública
Ta aew: local arena = { frompos = {x=32499, y=32369, z=7}, topos = {x=32567, y=32418, z=7}, exit = {x=32370, y=32231, z=5} } function onKill(cid, target, lastHit) if (isPlayer(cid) == TRUE) then if (isInArea(getPlayerPosition(target), arena.frompos, arena.topos)) then doPlayerAddItem(cid, 2160,10) end end return TRUE end -
Vai na pasta "data/npc/" duplica um arquivo aew e renomeia para Changer, e nele cole: <?xml version="1.0" encoding="UTF-8"?> <npc name="Changer" script="changer.lua" walkinterval="2000" floorchange="0"> <health now="999999" max="999999"/> <look type="301" corpse="2212"/> <parameters> <parameter key="message_greet" value="Você pode trocar 10 life crystal por {1 item de refinar} com chance de falha. Pode trocar 7 itens de refinar com falha por {1 item de refinar 100%}. E 5 itens de refinar 100% por {1 item que consede atributos}."/> </parameters> </npc> Agora abre a pasta "data/npc/scripts" duplica um arquivo e nomeia para changer, e nele cola: --<Script by jhon992>-- local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) local talkState = {} local pos = {x=2456, y=2462, z=7} -- Posição que player sera teleportado ao terminar consulta. local efectHeal = 28 -- efeito do heal 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 creatureSayCallback(cid, type, msg) if(not npcHandler:isFocused(cid)) then return false end local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid if (msgcontains(msg, '1 item de refinar') or msgcontains(msg, 'item de refinar') or msgcontains(msg, 'refinar')) then if (doPlayerRemoveItem(cid, 2177, 10)) then doPlayerAddItem(cid, 8304, 1) return TRUE else selfSay('Você não possui 10 life crystals.', cid) return TRUE end return TRUE end if (msgcontains(msg, '1 item de refinar 100%') or msgcontains(msg, 'item de refinar 100%') or msgcontains(msg, 'refinar 100%') or msgcontains(msg, 'refinar 100')) then if (doPlayerRemoveItem(cid, 8304, 7)) then doPlayerAddItem(cid, 8306, 1) return TRUE else selfSay('Você não possui 7 itens de refinar com falha.', cid) return TRUE end return TRUE end if (msgcontains(msg, '1 item que consede atributos') or msgcontains(msg, '1 item que consede atributo') or msgcontains(msg, 'item que consede atributo') or msgcontains(msg, 'item atributo') or msgcontains(msg, 'atributo')) then if (doPlayerRemoveItem(cid, 8306, 5)) then doPlayerAddItem(cid, 8300, 1) return TRUE else selfSay('Você não possui 5 itens de refinar 100%.', cid) return TRUE end return TRUE end if (msgcontains(msg, 'no')) then return true end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new())
-
Em "data/globalevensts/globalevents.xml" cola: <globalevent name="raid" interval="18000" event="script" value="raid.lua"/> Ali em interval é o tempo da invação equivalente a segundos, cada 1 minuto = 60 interval. Ou seja, 18000 = 5 horas Na pasta "globalevents/scripts" duplica um arquivo e nomeia para "rad" sem as aspas e nele cola: function onThink(interval, lastExecution, thinkInterval) local pos = {x=2456, y=2462, z=7} -- Posição que monstro vai nascer local monster = "Grynch Clan Goblin" -- Monstro que é pra criar doBroadcastMessage("Ocorreu invação de Grynch Clan Goblin na cidade!") doCreateMonster(monster, pos) return true end Ali em cima edita a posição do respaw e pode editar a mensagem tbm, ou remove a linha da msg. Se quiser mais monstros é sóh ir criando varios arquivos sóh muda os nomes e as tags no globalevents.xml!
- 3 respostas
-
- grynch clan goblins como faze
- tibia
- (e 1 mais)
-
Troca por esse: 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) return TRUE end else if(isInArray({9, 10, 11, 12}, getPlayerVocation(cid))) then -- id das vocações que esta quando vip doPlayerSetVocation(cid,getPlayerVocation(cid)-4) return TRUE end end return TRUE end
-
tenta substituir teus spells.xml por um outro. Vi um cara que fez isso em outro fórum e funcionou, só não tenho o link.
-
Isso aew é na distro do servidor. É no arquivo player.ccp, procura por: void Player::manageAccount(const std::string &text) E por ali tu edita!
-
Sóh muda o script rad.lua: function removeMonster(pid) if (isMonster(pid) == true) then doRemoveCreature(pid) end end function onThink(interval, lastExecution, thinkInterval) local pos = {x=2456, y=2462, z=7} -- Posição que monstro vai nascer local monster = "Morgaroth" -- Boss que é pra criar local tempo = 60000 * 10 -- troque apenas o numero 10, que será o minuto para o monstro sumir doBroadcastMessage("Invação de Morgaroth ao leste da cidade!") pid = doCreateMonster(monster, pos) addEvent(removeMonster, 6000, pid) return true end
-
[Creaturescript] Simple Reputation System !
tópico respondeu ao jhon992 de jhon992 em Globalevents e Spells
Claro que funciona, não fala se tu não sabe usar corretamente! Se tiver dúvida me pergunta, não juga sem saber usar. -
achei esse aqui: http://www.xtibia.com/forum/topic/73983-npc-addon/ sóh que é pra addon 1 e addon2 então vais te que adaptar!
-
Em "data/globalevensts/globalevents.xml" cola: <globalevent name="raid" interval="604800" event="script" value="raid.lua"/> Ali em interval é o tempo da invação equivalente a segundos, cada 1 minuto = 60 interval. Na pasta "globalevents/scripts" duplica um arquivo e nomeia para "rad" sem as aspas e nele cola: function onThink(interval, lastExecution, thinkInterval) local pos = {x=2456, y=2462, z=7} -- Posição que monstro vai nascer local monster = "Morgaroth" -- Boss que é pra criar doBroadcastMessage("Invação de Morgaroth ao leste da cidade!") doCreateMonster(monster, pos) return true end Ali em cima edita o monstro e a posição do respaw e pode editar a mensagem tbm. Se quiser mais monstros é sóh ir criando varios arquivos sóh muda os nomes e as tags no globalevents.xml!
-
Sóh adicionar as tags quest no outfits.xml. Essas números são os storages que o player deve ter para usar essa outfit, assim tu pode for pra ganhar outfit ao falar com npc ou ao completar uma quest e para o player começar com uma certa outfit sóh poem sem essa tag quest. <outfit id="1" quest="40851"> <list gender="0" lookType="129" name="Citizen"/> <list gender="1" lookType="129" name="Citizen"/> </outfit> <outfit id="2" quest="40852"> <list gender="0" lookType="207" name="Knight"/> <list gender="1" lookType="207" name="Knight"/> </outfit> <outfit id="3" quest="40853"> <list gender="0" lookType="213" name="Warrior"/> <list gender="1" lookType="213" name="Warrior"/> </outfit>
-
Existe essa função isVip no teu sistema de vip? se tiver troca esse script por esse mais organizado e manda o erro que der: function onStepIn(cid, item, position, fromPosition) local tileConfig = { kickPos = fromPosition, kickEffect = CONST_ME_POFF, kickMsg = "Voce Prescisa De Uma Vip Account Para Acessar Essa Area.", enterMsg = "Bem Vindo a Area Vip", enterEffect = CONST_ME_MAGIC_RED, } if (isPlayer(cid) == true) then if (isVip(cid) == false) then doTeleportThing(cid, tileConfig.kickPos) doSendMagicEffect(tileConfig.kickPos, tileConfig.kickEffect) doPlayerPopupFYI(cid, tileConfig.kickmsg) doPlayerPopupFYI(cid, tileConfig.kickMsg) return TRUE end doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, tileConfig.enterMsg) doSendMagicEffect(position, tileConfig.enterEffect) return TRUE end end
-
Troca a linha: doPlayerSendTextMessage(cid,21," You opened your Box 1 and received a "..e.nm.."") Por: doCreatureSay(cid, "You opened your Box 1 and received a "..e.nm.."", TALKTYPE_ORANGE_1)
-
[Creaturescript] Simple Reputation System !
tópico respondeu ao jhon992 de jhon992 em Globalevents e Spells
Andei estudando um pouco. E muito obrigado pelo elogio, isso me faz cada vez querer crescer mais! -
Sistema de Rep+ para seu OT : http://www.xtibia.com/forum/topic/173892-creaturescript-simple-reputation-system/
-
[Creaturescript] Simple Reputation System !
tópico respondeu ao jhon992 de jhon992 em Globalevents e Spells
Desculpa aew, nem tinha visto isso, dupliquei a parte ali e esqueci de editar.
-
Quem Está Navegando 0 membros estão online
- Nenhum usuário registrado visualizando esta página.