-
Total de itens
631 -
Registro em
-
Última visita
-
Dias Ganhos
13
Tudo que jhon992 postou
-
Acho que adicionando uma linha de comando que quando usa a sd cria outra funciona. local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TARGETCASTERORTOPMOST, true) setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA) setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_SUDDENDEATH) setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -1.8, -19, -1, -28, 5, 4, 4.23, 7.34) function onCastSpell(cid, var) doPlayerAddItem(cid, 2268) return doCombat(cid, combat, var) end Só muda a sd pra vender em 1 carga e ja era =)
-
Em action/script duplica um arquivo e nomeia para "mountquest1" nele cole: function onUse(cid, item, fromPosition, itemEx, toPosition) local effect = 30 -- efeito no char local storage = 34530 -- não mexa! if(getPlayerStorageValue(cid, 34530) > 0) then doPlayerSendTextMessage(cid, 25, "Voçê ja fez esta quest.") return TRUE end doPlayerAddMount(cid, ID) -- coloque o id da montaria desejada. doPlayerSendTextMessage(cid, 25, "Voçê ganhou uma nova montaria.") doSendMagicEffect(getPlayerPosition(cid), effect) return TRUE end Agora em action.xml cole a tag: <action actionid="2999" event="script" value="mountquest1.lua"/> E com o Mapa Editor, vai no baú desejado e poem o actionid=2999! Não esquece de alterar o id da mount no script mountquest1. ID's Mounts: ['widow queen'] = {id = 1} ['racing bird'] = {id = 2} ['war bear'] = {id = 3} ['black sheep'] = {id = 4} ['midnight panther'] = {id = 5} ['draptor'] = {id = 6} ['titanica'] = {id = 7} ['tin lizard'] = {id = 8} ['blazebringer'] = {id = 9} ['rapid boar'] = {id = 10} ['stampor'] = {id = 11} ['undead cavebear'] = {id = 12} E você pode fazer quantas quest's de mounts desejar tomando base nesse script.
-
Que isso to aqui pra ajudar, precisar de alguma explicação é sóh da um toque.
-
Acho que uma forma seria colocar outfil por vocação. Se quiser ta aew o script do Vodkart. Vai em data/creaturescripts/scripts, duplica um arquivo e nomeia para "vocation_out" sem as aspas e nele cole: --[[ By Vodkart ]]-- local config={ {outfit={138,130,140,132},voc={0,1,5},storage=40850}, -- sorcer {outfit={148,144,149,145},voc={0,2,6},storage=40851}, -- druid {outfit={156,152,150,146},voc={0,3,7},storage=40852}, -- pally {outfit={139,131,137,129},voc={0,4,8},storage=40853} -- knight } function onLogin(cid) for a =1,#config do if isInArray(config[a].voc, getPlayerVocation(cid)) and getPlayerStorageValue(cid, config[a].storage) == -1 then setPlayerStorageValue(cid, config[a].storage, 1) for i = 1, #config[a].outfit do doPlayerAddOutfit(cid, config[a].outfit[i], 3) end break end end return TRUE end E em data/creaturescripts/creaturescripts.xml cole a tag: <event type="login" name="Out" script="vocation_out.lua"/> Agora basta ir nas outfit desejado no arquivo outfit.xml e colocar a tag: <outfit id="1" quest="40851"> 40850 - sorcer 40851 - druid 40852 - pally 40853 - knight
-
Da para usar esse tipo de código em um Creaturescript! Existem varios tipos posiveis de creaturescripts. Alguns tipos: onDeath -- executa ao morrer. onAttack -- executa ao atacar. onCombat -- semelhante ao onAttack. onLogin -- executa ao logar. Para criar esse tipo de script, primeiramente vai na pasta data/creaturescripts/scripts e duplica um arquivo e salve com "nomedesejado"; Você vai fazer uma função "onDeath"(ao morrer), para ativar esse seu script. Code vai ficar mais ou menos assim: 1 function onDeath(cid, corpse, killer) 2 if getPlayerLevel(cid) >= 1 then 3 mh = doPlayerAddItem(cid,5943,1) 4 doSetItemSpecialDescription(mh,"This is the heart of ".. getPlayerName(cid) ..", killed at level ".. getPlayerLevel(cid) .." by ".. getPlayerName(killer) ..".") 5 end 6 return true 7 end Numerei as linhas pare melhor intendimento. Linha 1 = Inicio da função onDeath, essa linha recebe algumas informações do player que morreu, como seu id, o id do player que matou e o corpse. '' 2 = Iniciase um if onde verifica se o level do player morto era maior ou igual a 1. Se for verdadeiro, o script executa as linhas 3 e 4, senão pula direto a linha 5. '' 3 = Adiciona um item com o id 5943 ao player morto e salva o uid do item na variavel "mh". '' 4 = Adiciona o texto ao item. "This is the heart of ".. retorna nome do morto ..", killed at level ".. retorna level do morto .." by ".. retorna nome do matador .."." '' 5 = Finaliza o if que se iniciou na linha 2. '' 6 = Retorna a função ao character, sempre use return no final dos seus scripts. '' 7 = Finaliza a função onDeath. Acho que esta bem explicadinho, por fim para funcionamento do seu script precisa adicionar 2 tags: 1º No "creaturescripts.xml" 2º No arquivo "login.lua" Vai em data/creaturescripts/creaturescripts.xml e cole a tag: <event type="death" name="QualquerNome" event="script" value="nomedesejado.lua"/> O nome desejado é o nome com qual você salvou o script. Agora em data/creaturescripts/scripts/login.lua, sempre antes do último return true: registerCreatureEvent(cid, "QualquerNome") QualquerNome é o nome que você adicionou na tag do creaturescripts.xml. Acho que é isso aew, espero ter ajudado. E para auciliar em seus scripts sempre use uma lista de funções como essa: http://www.xtibia.com/forum/topic/138081-lualista-de-funcoes/ E procure por tutoriais e scripts como sua base;
-
[Creaturescript] Simple Reputation System !
tópico respondeu ao jhon992 de jhon992 em Globalevents e Spells
Fiz pra 8.6, os ot's 8.00 não tem muitas das funções que o 8,6 possui e eu nem sei qual são essas funções, então nem posso te ajudar, malz =/ -
Sky, se tu soube-se o tanto que eu demorei pra resolver isso se me dava um beijo! saduhada Passei trabalho, mais agora ta funfando e ja testei aqui! Vê se aew vai funfar néh. function onDeath(cid, corpse, deathList) array = {2160, 2160, 2160, 2160} pos = getCreaturePosition(cid) for i=1, #array do if (getPlayerVocation(cid) == i) then addEvent(removeCorpse,300,pos,array[i]) return true end end return true end function removeCorpse(pos,n) doCleanTile(pos, removeLoaded) doCreateItem(n, 1, pos) return true end
-
baixa outro otserv 8.7 que tenha esses monstros e substitui a pasta mosters do seu otserv.
-
tenta assim: function onDeath(cid, corpse) local array = {2160, 2160, 2160, 2160} for i=1, #array do if (getPlayerVocation(cid) == i) then doTransformItem(corpse.uid, array[i], 1) doDecayItem(corpse.uid) return true end end return true end Obs: nem testei.
-
saijdsajida, Tony precisar de alguma modificação é sóh falar!
-
Vai em data/weapons/script duplica um arquivo e nomeia para "superwand", sem as aspas e nele cole: local iddowand = 2182 -- coloque o id do wand aqui local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_EARTHDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_HOLYDAMAGE) setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_ETHEREALSPEAR) setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, 0, -57, 0, -62) local combat2 = createCombatObject() setCombatParam(combat2, COMBAT_PARAM_BLOCKARMOR, 1) setCombatParam(combat2, COMBAT_PARAM_BLOCKSHIELD, 1) setCombatParam(combat2, COMBAT_PARAM_TYPE, COMBAT_EARTHDAMAGE) setCombatParam(combat2, COMBAT_PARAM_EFFECT, CONST_ME_HOLYDAMAGE) setCombatParam(combat2, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_ETHEREALSPEAR) setCombatFormula(combat2, COMBAT_FORMULA_SKILL, 1, 0, 1, 0) local area = createCombatArea({ {1, 1, 1}, {1, 3, 1}, {1, 1, 1} }) setCombatArea(combat2, area) function onUseWeapon(cid, var) if (getPlayerSlotItem(cid, CONST_SLOT_LEFT).itemid == iddowand) then return doCombat(cid, combat2, var) end return doCombat(cid, combat, var) end E em data/weapons/weapons.xml cole a tag: <wand id="2182" level="7" mana="2" min="1000" max="3000" script="superwand.lua"> <!-- Snakebite Rod Editado--> <vocation id="2"/> </wand> E configura como quiser, a vocation, o id do wand, não esqueça de mudar o id no script tbm. Mude a mana e os hits como desejar.
-
Como seria um wand que batesse em area? Tipo area de um exori, envolta do player?
-
Pode dar pra ele, não estou aqui pelo rep e sim para ajudar!
-
----------------------------------------------------------------- Com seu Mapa Editor, coloque os actions id nas alavanca e no teleport! Não testei, qualquer erro me fala;
-
Olha a diferença, o erro estava nessa linha: <item id="2365" chance="1000"/><!-- grey backpack --> -- você feichava a tag aqui e depois la embaixo com o </item> . <item id="2365" chance="1000"><!-- grey backpack --> -- sóh removi o / ...
-
Isso mesmo, no RME não aparece opção de escolha do id no depot, mais aparece pra escolher a city. Ja que seu mapa não tem nenhuma city selecionada, então no Properties do depot aparece "No Town". Para arrumar: Abra o RME, vai em "Map/Towns", clica em "Add". Na caixa "Name/ID" coloque o nome da cidade que desejar, e em "Temple Position" a posição do templo dessa cidade depois aperte "OK". Faça esse processo com todas as cidades do seu mapa! Agora para arrumar os Depots: Basta simplesmente ir nas Properties dos depots, escolher a city atual do depot em "Depot ID" e apertar "OK". Faça isso com todos os depots da cidade.
-
-- !fly by Forcera -- -- Ideia by TheGODMaX -- function onSay(cid, words, param, channel) if (getTilePzInfo(getCreaturePosition(cid)) == FALSE) then doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT,"You should be in the protection zone for use.") return TRUE end flypos = getCreaturePosition(cid) npos = {x=flypos.x, y=flypos.y, z=flypos.z - 6} pos = getCreaturePosition(cid) flyoutfit = {lookType = 239, lookHead = 0, lookBody = 0, lookLegs = 0, lookFeet = 0, lookTypeEx = 0, lookAddons = 0} if pos.z == 6 then if doTeleportThing(cid, npos) then doSendMagicEffect(npos, 14) doSetCreatureOutfit(cid, flyoutfit, -1) else return 0 end end return TRUE end
-
Arrumei, esta 100% agora, testei aqui!
-
Procura por tutoriais, aqui no xtibia existem varios. http://www.xtibia.com/forum/forum/572-tutoriais-de-scripting/
-
Arrumei la em cima, substitui e vê os erro pra min.
-
O depot id esta configurado corretamente? Caso não, abra o seu mapa com um Map Editor e vai em cada depot de cada cidade, vai em Properties em cada bauzinho do depot e numere-o com o id da cidade atual.
-
Primeira: Segunda: Terceira: Quarta:
-
Spell Que Muda Seu Proprio Outfit (8.54)
tópico respondeu ao jeandemonloko de jhon992 em Lixeira Pública
Vou colocar certinho que é capaz que ele naum entenda... local outfit = {lookType = 32} -- Roupa que ira transformar local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_EFFECT, 48) setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, 0) local sys = createConditionObject(CONDITION_OUTFIT) setConditionParam(sys, CONDITION_PARAM_TICKS, -1) addOutfitCondition(sys, outfit) setCombatCondition(combat, sys) function onCastSpell(cid, var) return doCombat(cid, combat, var) end -
Spell Que Muda Seu Proprio Outfit (8.54)
tópico respondeu ao jeandemonloko de jhon992 em Lixeira Pública
Tenho esse aqui, quem sabe te ajuda: local outfit = {lookType = 32} -- Roupa que ira transformar local tempo = 60 * 1000 -- Tempo, nesse caso esta 60 segundos Lembrando que 1000 = 1 segundo local ml = 2 -- quantos ira aumentar o skill de ML local skillfist = 2 -- quantos ira aumentar o skill de Fist local skillsword = 2 -- quantos ira aumentar o skill de Sword local skillaxe = 2 -- quantos ira aumentar o skill de Axe local skillclub = 2 -- quantos ira aumentar o skill de Club local skilldistance = 2 -- quantos ira aumentar o skill de Distance local skillshield = 2 -- quantos ira aumentar o skill de Shield local health = 20 -- A cada 1 segundo quantos aumentar de vida local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_EFFECT, 48) setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, 0) local condition = createConditionObject(CONDITION_ATTRIBUTES) setConditionParam(condition, CONDITION_PARAM_TICKS, tempo) setConditionParam(condition, CONDITION_PARAM_STAT_MAGICLEVEL, ml) setConditionParam(condition, CONDITION_PARAM_SKILL_FIST, skillfist) setConditionParam(condition, CONDITION_PARAM_SKILL_SWORD, skillsword) setConditionParam(condition, CONDITION_PARAM_SKILL_AXE, skillaxe) setConditionParam(condition, CONDITION_PARAM_SKILL_CLUB, skillclub) setConditionParam(condition, CONDITION_PARAM_SKILL_DISTANCE, skilldistance) setConditionParam(condition, CONDITION_PARAM_SKILL_SHIELD, skillshield) setConditionParam(condition, CONDITION_PARAM_OUTFIT, outfit) setCombatCondition(combat, condition) local condition = createConditionObject(CONDITION_HASTE) setConditionParam(condition, CONDITION_PARAM_SPEED, 250) setConditionParam(condition, CONDITION_PARAM_TICKS, tempo) setConditionParam(condition, CONDITION_PARAM_BUFF, TRUE) setCombatCondition(combat, condition) local condition = createConditionObject(CONDITION_REGENERATION) setConditionParam(condition, CONDITION_PARAM_SUBID, 1) setConditionParam(condition, CONDITION_PARAM_BUFF, TRUE) setConditionParam(condition, CONDITION_PARAM_TICKS, tempo) setConditionParam(condition, CONDITION_PARAM_HEALTHGAIN, health) setConditionParam(condition, CONDITION_PARAM_HEALTHTICKS, 1000) setCombatCondition(combat, condition) local sys = createConditionObject(CONDITION_OUTFIT) setConditionParam(sys, CONDITION_PARAM_TICKS, tempo) addOutfitCondition(sys, outfit) setCombatCondition(combat, sys) function onCastSpell(cid, var) return doCombat(cid, combat, var) end
-
Quem Está Navegando 0 membros estão online
- Nenhum usuário registrado visualizando esta página.