-
Total de itens
631 -
Registro em
-
Última visita
-
Dias Ganhos
13
Tudo que jhon992 postou
-
asuhdsauhda, esqueci de arrumar a funçãozinha de adiciona o item, to ficando fraco nisso. O script do vod éh melhor em desempenho, usa ele.
-
[Pedido] Coração Dentro Do Corpo De Um Player Morto
tópico respondeu ao thonynunes de jhon992 em Lixeira Pública
coloca: <event type="death" name="Heart" script="heart.lua"/> E no script "login.lua" que esta em /scripts, antes do ultimo return true, coloca a tag: registerCreatureEvent(cid, "Heart") -
[Pedido] Coração Dentro Do Corpo De Um Player Morto
tópico respondeu ao thonynunes de jhon992 em Lixeira Pública
tenta assim: function onDeath(cid, corpse, killer) loot = 5943 -- id do coração if isPlayer(killer) then item = doPlayerAddItem(corpse,loot,1) doSetItemSpecialDescription(item,"This is the heart of "..getPlayerName(cid).." killed at Level "..getPlayerLevel(cid).." by "..getPlayerName(killer)..".") setItemName(item, ""..getPlayerName(cid).."\'s Heart") doPlayerSendTextMessage(lastHitKiller, MESSAGE_STATUS_CONSOLE_ORANGE, "You Killed " .. getCreatureName(cid) .. ".") end return TRUE end Obs: Nem testei. Muda a tag no creaturescripts.xml no lugar de "preparedeath" mude apenas para "death". -
Vai e, data/movements/scripts duplica um arquivo nomeie para "viptile" sem as aspas e cole o script do Vodkart. Agora em movements.xml cole a tag: <movevent type="StepIn" actionid="20302" event="script" value="tilevip.lua"/> E com seu Mapa Editor, coloque o actionid 20302 no tile desejado.
-
http://www.xtibia.com/forum/topic/150604-matar-player-e-tirar-coracao/
- 2 respostas
-
- mortes
- perder coraçao ao morrer
- (e 3 mais)
-
function onStepIn(cid, item, pos) local itemID = 1234 -- coloque id do item if (getPlayerStorageValue(cid, 203045) <= 0) then doPlayerAddItem(cid, itemid, 1) setPlayerStorageValue(cid, 203045, 1) else doPlayerRemoveItem(cid, itemID, 1) setPlayerStorageValue(cid, 203045, 0) end return TRUE end
-
[Patrimônio XTibia] Sua última Foto - Mapping
tópico respondeu ao Feyzer de jhon992 em Mapping Show-Off
Gostei do underwater Anne, tais ficando boa nisso! -
Isso que era simples néh, sahuda. Agora vai funcionar, testa com um char que tu n fez ainda. function onAdvance(cid, oldLevel, newLevel) local pid = getPlayerGUID(cid) if (getPlayerLevel(cid) == 12 and getPlayerStorageValue(cid, 102089) <= 0) then if (getPlayerVocation(cid) == 4) then setPlayerStorageValue(cid, 102089, 1) local bp = doPlayerAddItem(cid, 1988, 1) doAddContainerItem(bp, 2395, 1) doAddContainerItem(bp, 2195, 1) doAddContainerItem(bp, 2519, 1) doAddContainerItem(bp, 2491, 1) doAddContainerItem(bp, 2488, 1) doAddContainerItem(bp, 2487, 1) doRemoveCreature(cid) db.executeQuery("UPDATE `player_skills` SET `value` = ".. 20 .." WHERE `player_id` = ".. pid .. " and `skillid` = ".. 5 ..";") db.executeQuery("UPDATE `player_skills` SET `value` = ".. 20 .." WHERE `player_id` = ".. pid .. " and `skillid` = ".. 3 ..";") db.executeQuery("UPDATE `player_skills` SET `value` = ".. 20 .." WHERE `player_id` = ".. pid .. " and `skillid` = ".. 1 ..";") db.executeQuery("UPDATE `player_skills` SET `value` = ".. 20 .." WHERE `player_id` = ".. pid .. " and `skillid` = ".. 2 ..";") return TRUE end if (getPlayerVocation(cid) == 3) then setPlayerStorageValue(cid, 102089, 1) local bp2 = doPlayerAddItem(cid, 1988, 1) doAddContainerItem(bp2, 8891, 1) doAddContainerItem(bp2, 2195, 1) doAddContainerItem(bp2, 8851, 1) doAddContainerItem(bp2, 6529, 1) doAddContainerItem(bp2, 2470, 1) doAddContainerItem(bp2, 2471, 1) doAddContainerItem(bp2, 7367, 1) doRemoveCreature(cid) db.executeQuery("UPDATE `player_skills` SET `value` = ".. 20 .." WHERE `player_id` = ".. pid .. " and `skillid` = ".. 4 ..";") db.executeQuery("UPDATE `player_skills` SET `value` = ".. 20 .." WHERE `player_id` = ".. pid .. " and `skillid` = ".. 5 ..";") return TRUE end if (getPlayerVocation(cid) == 1 or getPlayerVocation(cid) == 2) then setPlayerStorageValue(cid, 102089, 1) local bp3 = doPlayerAddItem(cid, 1988, 1) if (getPlayerVocation(cid) == 1) then doAddContainerItem(bp3, 2188, 1) doAddContainerItem(bp3, 2195, 1) doAddContainerItem(bp3, 7730, 1) doAddContainerItem(bp3, 2656, 1) doAddContainerItem(bp3, 2499, 1) else doAddContainerItem(bp3, 2185, 1) doAddContainerItem(bp3, 2195, 1) doAddContainerItem(bp3, 7730, 1) doAddContainerItem(bp3, 2656, 1) doAddContainerItem(bp3, 2499, 1) end doRemoveCreature(cid) db.executeQuery("UPDATE `players` SET `maglevel` = " .. 20 .. " WHERE `id` = "..pid) return TRUE end end if (getPlayerLevel(cid) == 200 and getPlayerStorageValue(cid, 102090) <= 0) then if (getPlayerVocation(cid) == 1) then doPlayerSetVocation(cid, getPlayerVocation(cid)+4) setPlayerStorageValue(cid, 102090, 1) doRemoveCreature(cid) return TRUE elseif (getPlayerVocation(cid) == 2) then doPlayerSetVocation(cid, getPlayerVocation(cid)+4) setPlayerStorageValue(cid, 102090, 1) doRemoveCreature(cid) return TRUE elseif (getPlayerVocation(cid) == 3) then doPlayerSetVocation(cid, getPlayerVocation(cid)+4) setPlayerStorageValue(cid, 102090, 1) doRemoveCreature(cid) return TRUE else doPlayerSetVocation(cid, getPlayerVocation(cid)+4) setPlayerStorageValue(cid, 102090, 1) doRemoveCreature(cid) return TRUE end end return TRUE end
-
Bem simples mesmo, só pra galera iniciante ter o básico de forma simples, sem precisar ler e estudar centenas de linhas. E com o tempo e surgimento de algumas dúvidas eu edito o post.
- 16 respostas
-
- creaturescripts tutorial
- otserv
- (e 2 mais)
-
Tutorial Básico sobre CreatureScripts CreatureScripts = São scripts que serão ativados após uma determinada ação criada pelo monstro ou personagem. Essas ações são determinadas como funções. Existem varias funções utilizadas para a criação de creaturescripts e estas são: onDeath(cid, corpse, killer)-- que é executada ao morrer. onPrepareDeath(cid, lastHitKiller, mostDamageKiller) -- semelhante a onDeath. onAttack(cid, target) -- executa ao atacar. onCombat(cid, target) -- semelhante ao onAttack. onLogin(cid) -- executa ao logar. onLook(cid, thing, position, lookDistance) -- executa ao dar look. onAdvance(cid, skill, oldLevel, newLevel) -- executa ao upar skills/levels. onStatsChange(cid, attacker, type, combat, value) -- executa ao perder ou ganhar life/mana/condições. onLogout(cid) -- executa ao deslogar. onKill(cid, target, lastHit) -- executa ao matar. onThink(cid, interval) -- executa em determinado tempo. onJoinChannel(cid, channelId, users) -- executa ao entrar em um chat. onReceiveMail(cid, sender, item, openBox) -- executa ao receber um parcel/carta. onReportBug(cid, comment) -- executa ao reportar bug. Para criar esse tipo de script, primeiramente vai na pasta data/creaturescripts/scripts e duplica um arquivo e salve com "nomedesejado"; Agora você vai determinar que função você vai precisar para criação do seu script. Para exemplo vou usar a função "onAdvance"(ao upar). Neste exemplo, quando o player upar level 100 ele irá ganhar 1kk: 1 function onAdvance(cid, skill, oldLevel, newLevel) 2 if (getPlayerLevel(cid) == 100) then 3 doPlayerAddItem(cid, 2160, 100) 4 doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, "Parabéns, você ganhou 1kk por atingir level 100!") 5 doSendMagicEffect(getCreaturePosition(cid), 30) 6 end 7 return true 8 end Numerei as linhas para melhor entendimento, nos seus scripts vocês não devem numerar. linha 1 = Inicio da função onAdvance, essa linha recebe algumas informações do player que upou, como seu cid, seus skills o velho level e o novo level. Obs: cid = creature id, numero de identificação do player/monstro. linha 2 = Inicia-se um if onde verifica se o level do player é igual a 100. Se for verdadeiro, o script executa as linhas 3,4 e 5, senão pula direto a linha 6. linha 3 = Adiciona 100 itens com o id 2160 ao player. linha 4 = Manda uma mensagem parabenizando o player. linha 5 = Solta o efeito de numero 30, na posição em que o player esta. linha 6 = Finaliza a verificação do if. linha 7 = Retorna verdadeiro. Obs: sempre é necessario ela linha no final de seu código. linha 8 = Finaliza a função onAdvance. ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Por fim para funcionamento do seu script é necessario adicionar 2 tags: 1º- No "data/creaturescripts/creaturescripts.xml" 2º- No arquivo "data/creaturescripts/scripts/login.lua", Obs: se o script que você for fazer for de função onLogin, não precisa adicionar a segunda tag. 1º Tag: Vai em data/creaturescripts/creaturescripts.xml e cole a tag: <event type="advance" name="QualquerNome" event="script" value="nomedesejado.lua"/> O type="" , será o nome da função de seu script após a palavra "on" e sempre tudo em minusculo. O name="", use qualquer nome porem esse nome vai ser usado para registrar no script onLogin na tag2. O value="", é o nome com qual você salvou seu script. Agora em data/creaturescripts/scripts/login.lua, sempre antes do último return true: registerCreatureEvent(cid, "QualquerNome") QualquerNome é o name que você adicionou na tag1 do creaturescripts.xml. ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Acho que é isso aew, espero ter ajudado a galera que esta iniciando. Dica para criação de scripts: Para melhor edição e organização use Notepad++: http://www.baixaki.c...ad/notepad-.htm Sempre usar uma lista de funções como apoio: http://www.xtibia.co...sta-de-funcoes/ E sempre pesquise por scripts prontos e tutoriais para ter uma base.
- 16 respostas
-
- creaturescripts tutorial
- otserv
- (e 2 mais)
-
http://www.xtibia.com/forum/topic/137298-dev-c-como-compilar-um-otserv/ http://www.xtibia.com/forum/topic/145300-c-compilando-um-otserv/ Descompilar o executavel creio que nem tem como. Vais ter que baixar as sources e fazer um executavel novo, procura no XTibia que tem varios tutoriais, e tem esses aew em cima.
-
function onAdvance(cid, oldLevel, newLevel) local pid = getPlayerGUID(cid) if (newLevel == 12 and getPlayerStorageValue(cid, 102089) <= 0) then if (getPlayerVocation(cid) == 4) then setPlayerStorageValue(cid, 102089, 1) local bp = doPlayerAddItem(cid, 1988, 1) doAddContainerItem(bp, 2395, 1) doAddContainerItem(bp, 2195, 1) doAddContainerItem(bp, 2519, 1) doAddContainerItem(bp, 2491, 1) doAddContainerItem(bp, 2488, 1) doAddContainerItem(bp, 2487, 1) doRemoveCreature(cid) db.executeQuery("UPDATE `player_skills` SET `value` = ".. 20 .." WHERE `player_id` = ".. pid .. " and `skillid` = ".. 5 ..";") db.executeQuery("UPDATE `player_skills` SET `value` = ".. 20 .." WHERE `player_id` = ".. pid .. " and `skillid` = ".. 3 ..";") db.executeQuery("UPDATE `player_skills` SET `value` = ".. 20 .." WHERE `player_id` = ".. pid .. " and `skillid` = ".. 1 ..";") db.executeQuery("UPDATE `player_skills` SET `value` = ".. 20 .." WHERE `player_id` = ".. pid .. " and `skillid` = ".. 2 ..";") return TRUE end if (getPlayerVocation(cid) == 3) then setPlayerStorageValue(cid, 102089, 1) local bp2 = doPlayerAddItem(cid, 1988, 1) doAddContainerItem(bp2, 8891, 1) doAddContainerItem(bp2, 2195, 1) doAddContainerItem(bp2, 8851, 1) doAddContainerItem(bp2, 6529, 1) doAddContainerItem(bp2, 2470, 1) doAddContainerItem(bp2, 2471, 1) doAddContainerItem(bp2, 7367, 1) doRemoveCreature(cid) db.executeQuery("UPDATE `player_skills` SET `value` = ".. 20 .." WHERE `player_id` = ".. pid .. " and `skillid` = ".. 4 ..";") db.executeQuery("UPDATE `player_skills` SET `value` = ".. 20 .." WHERE `player_id` = ".. pid .. " and `skillid` = ".. 5 ..";") return TRUE end if (getPlayerVocation(cid) == 1 or getPlayerVocation(cid) == 2) then setPlayerStorageValue(cid, 102089, 1) local bp3 = doPlayerAddItem(cid, 1988, 1) if (getPlayerVocation(cid) == 1) then doAddContainerItem(bp3, 2188, 1) doAddContainerItem(bp3, 2195, 1) doAddContainerItem(bp3, 7730, 1) doAddContainerItem(bp3, 2656, 1) doAddContainerItem(bp3, 2499, 1) else doAddContainerItem(bp3, 2185, 1) doAddContainerItem(bp3, 2195, 1) doAddContainerItem(bp3, 7730, 1) doAddContainerItem(bp3, 2656, 1) doAddContainerItem(bp3, 2499, 1) end doRemoveCreature(cid) db.executeQuery("UPDATE `players` SET `maglevel` = " .. 20 .. " WHERE `id` = "..pid) return TRUE end end if (newLevel == 200 and getPlayerStorageValue(cid, 102090) <= 0) then if (getPlayerVocation(cid) == 1) then doPlayerSetVocation(cid, getPlayerVocation(cid)+4) setPlayerStorageValue(cid, 102090, 1) doRemoveCreature(cid) return TRUE elseif (getPlayerVocation(cid) == 2) then doPlayerSetVocation(cid, getPlayerVocation(cid)+4) setPlayerStorageValue(cid, 102090, 1) doRemoveCreature(cid) return TRUE elseif (getPlayerVocation(cid) == 3) then doPlayerSetVocation(cid, getPlayerVocation(cid)+4) setPlayerStorageValue(cid, 102090, 1) doRemoveCreature(cid) return TRUE else doPlayerSetVocation(cid, getPlayerVocation(cid)+4) setPlayerStorageValue(cid, 102090, 1) doRemoveCreature(cid) return TRUE end end return TRUE end
-
Isso fica compilado no executavel do seu otserv, para traduzir só usando as sources do seu server e traduzindo tudo para depois compilar novamente.
-
Recarregador De Stamina [Modificado] - 8.60
tópico respondeu ao gahgah de jhon992 em Lixeira Pública
Tinha viajado, coloquei para remover o item pelo uid e coloquei o id, saijda! agora ta arrumadinho la encima. -
function onUse(cid, item, frompos, item2, topos) if item.uid == 7475 then queststatus = getPlayerStorageValue(cid,7475) if queststatus == -1 then if getPlayerVocation(cid) == 1 or 2 then doPlayerSendTextMessage(cid,24,"Você ganhou skill.") doPlayerAddSkillTry(cid, SKILL__MAGLEVEL, 5) setPlayerStorageValue(cid,7475,1) elseif getPlayerVocation (cid) == 3 then doPlayerSendTextMessage(cid,24,"Você ganhou skill.") doPlayerAddSkillTry(cid, SKILL_DISTANCE, 1) setPlayerStorageValue(cid,7475,1) elseif getPlayerVocation (cid) == 4 then doPlayerSendTextMessage(cid,24,"Você ganhou skill.") doPlayerAddSkillTry(cid, SKILL_SWORD, 1) doPlayerAddSkillTry(cid, SKILL_AXE, 1) setPlayerStorageValue(cid,7475,1) end else doPlayerSendTextMessage(cid,24,"Você ja Feis essa quest.") end end return 1 end Acho que deve funcionar, e tenta organizar o teu codigo melhor quando for programar. Pelo que to vendo ja tais pegando as manha =). Lib Skills: SKILL_FIST = 0 SKILL_CLUB = 1 SKILL_SWORD = 2 SKILL_AXE = 3 SKILL_DISTANCE = 4 SKILL_SHIELD = 5 SKILL_FISHING = 6 SKILL__MAGLEVEL = 7 SKILL__LEVEL = 8
-
Recarregador De Stamina [Modificado] - 8.60
tópico respondeu ao gahgah de jhon992 em Lixeira Pública
function onUse(cid, item, fromPosition, itemEx, toPosition) local coinVip = 1234 -- id moeda vip local coinRemove = 1 -- quantdade de coin a remover local refuel = 42 * 60 * 1000 if(getPlayerStamina(cid) >= refuel) then doPlayerSendCancel(cid, "Voce esta com a stamina cheia.") elseif (getPlayerStamina(cid) < refuel and getPlayerStamina(cid) > (40 * 60 * 1000)) then doPlayerSendCancel(cid, "Voce só pode usar quando tiver 40h de stamina.") elseif(not isPremium(cid)) then doPlayerSendCancel(cid, "Você não é premium.") elseif (doPlayerRemoveItem(cid, coinVip, coinRemove) ) then doPlayerSetStamina(cid, refuel) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Your stamina has been refilled.") doRemoveItem(item.uid) else doPlayerSendCancel(cid, "Voce não possui "..coinRemove.." Coins Vip!") end return true end -
function onAdvance(cid, oldLevel, newLevel) local pid = getPlayerGUID(cid) if (newLevel == 20 and getPlayerStorageValue(cid, 102088) <= 0) then if (getPlayerVocation(cid) == 4) then setPlayerStorageValue(cid, 102088, 1) local bp = doPlayerAddItem(cid, 1988, 1) doAddContainerItem(bp, 15414, 1) doAddContainerItem(bp, 15647, 1) doAddContainerItem(bp, 15404, 1) doRemoveCreature(cid) db.executeQuery("UPDATE `player_skills` SET `value` = ".. 20 .." WHERE `player_id` = ".. pid .. " and `skillid` = ".. 5 ..";") db.executeQuery("UPDATE `player_skills` SET `value` = ".. 20 .." WHERE `player_id` = ".. pid .. " and `skillid` = ".. 3 ..";") db.executeQuery("UPDATE `player_skills` SET `value` = ".. 20 .." WHERE `player_id` = ".. pid .. " and `skillid` = ".. 1 ..";") db.executeQuery("UPDATE `player_skills` SET `value` = ".. 20 .." WHERE `player_id` = ".. pid .. " and `skillid` = ".. 2 ..";") return TRUE end if (getPlayerVocation(cid) == 3) then setPlayerStorageValue(cid, 102088, 1) local bp2 = doPlayerAddItem(cid, 1988, 1) doAddContainerItem(bp2, 15643, 1) doAddContainerItem(bp2, 15648, 1) doAddContainerItem(bp2, 15649, 1) doAddContainerItem(bp2, 15644, 1) doRemoveCreature(cid) db.executeQuery("UPDATE `player_skills` SET `value` = ".. 20 .." WHERE `player_id` = ".. pid .. " and `skillid` = ".. 4 ..";") db.executeQuery("UPDATE `player_skills` SET `value` = ".. 20 .." WHERE `player_id` = ".. pid .. " and `skillid` = ".. 5 ..";") return TRUE end if (getPlayerVocation(cid) == 1 or getPlayerVocation(cid) == 2) then setPlayerStorageValue(cid, 102088, 1) local bp3 = doPlayerAddItem(cid, 1988, 1) if (getPlayerVocation(cid) == 1) then doAddContainerItem(bp3, 2187, 1) else doAddContainerItem(bp3, 2183, 1) end doRemoveCreature(cid) db.executeQuery("UPDATE `players` SET `maglevel` = " .. 20 .. " WHERE `id` = "..pid) return TRUE end end if (newLevel == 50 and getPlayerStorageValue(cid, 102089) <= 0) then setPlayerPromotionLevel(cid, 2) doSendMagicEffect(getCreaturePosition(cid), 30) doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT,"You have been promoted!") return TRUE end return TRUE end
-
Não, sóh 8.7+ depois da criação do mount no global.
-
Agora vai de ctz... function onUse(cid, item, fromPosition, itemEx, toPosition) pid = getPlayerGUID(cid) if getPlayerVocation(cid) == 13 and getPlayerLevel(cid) ~= 510 then doPlayerSetVocation(cid, 22) doPlayerSetMaxCapacity(cid, 435) doSendMagicEffect(getCreaturePosition(cid), 13) doRemoveCreature(cid) db.executeQuery("UPDATE `players` SET `level` = ".. 8 ..", `experience` = ".. 4200 ..",`manamax` = ".. 35 ..",`healthmax` = ".. 185 ..",`health` = ".. 185 ..",`mana` = ".. 35 .." WHERE `id` = "..pid) for id=0, 8 do db.executeQuery("UPDATE `player_skills` SET `value` = ".. 10 .." WHERE `player_id` = ".. pid .. " and `skillid` = ".. id ..";") end doPlayerSendTextMessage(cid, MESSAGE_STATUS_WARNING, "A força dos Deuses te acompanham e você concluiu seu primeiro reset.") elseif getPlayerVocation(cid) == 14 and getPlayerLevel(cid) ~= 510 then doPlayerSetVocation(cid, 21) doPlayerAddExp(cid, -(getPlayerExperience(cid)-getExperienceForLevel(8))) doPlayerAddHealth(cid, -getPlayerHealth(cid)+185) doPlayerAddMana(cid, -getPlayerMana(cid)+35) setCreatureMaxHealth(cid, -setCreatureMaxHealth(cid)+185) setCreatureMaxMana(cid, -setCreatureMaxMana(cid)+35) doPlayerSetMaxCapacity(cid, 435) doSendMagicEffect(getCreaturePosition(cid), 13) doRemoveCreature(cid) db.executeQuery("UPDATE `players` SET `level` = ".. 8 ..", `experience` = ".. 4200 ..",`manamax` = ".. 35 ..",`healthmax` = ".. 185 ..",`health` = ".. 185 ..",`mana` = ".. 35 .." WHERE `id` = "..pid) for id=0, 8 do db.executeQuery("UPDATE `player_skills` SET `value` = ".. 10 .." WHERE `player_id` = ".. getPlayerGUID(cid) .. " and `skillid` = ".. id ..";") end return TRUE elseif getPlayerVocation(cid) == 15 and getPlayerLevel(cid) ~= 250 then doPlayerSetVocation(cid, 22) doPlayerAddExp(cid, -(getPlayerExperience(cid)-getExperienceForLevel(8))) doPlayerAddHealth(cid, -getPlayerHealth(cid)+185) doPlayerAddMana(cid, -getPlayerMana(cid)+35) setCreatureMaxHealth(cid, -setCreatureMaxHealth(cid)+185) setCreatureMaxMana(cid, -setCreatureMaxMana(cid)+35) doPlayerSetMaxCapacity(cid, 435) doSendMagicEffect(getCreaturePosition(cid), 13) doRemoveCreature(cid) db.executeQuery("UPDATE `players` SET `level` = ".. 8 ..", `experience` = ".. 4200 ..",`manamax` = ".. 35 ..",`healthmax` = ".. 185 ..",`health` = ".. 185 ..",`mana` = ".. 35 .." WHERE `id` = "..pid) for id=0, 8 do db.executeQuery("UPDATE `player_skills` SET `value` = ".. 10 .." WHERE `player_id` = ".. getPlayerGUID(cid) .. " and `skillid` = ".. id ..";") end return TRUE elseif getPlayerVocation(cid) == 16 and getPlayerLevel(cid) ~= 510 then doPlayerSetVocation(cid, 19) doPlayerAddExp(cid, -(getPlayerExperience(cid)-getExperienceForLevel(8))) doPlayerAddHealth(cid, -getPlayerHealth(cid)+185) doPlayerAddMana(cid, -getPlayerMana(cid)+35) setCreatureMaxHealth(cid, -setCreatureMaxHealth(cid)+185) setCreatureMaxMana(cid, -setCreatureMaxMana(cid)+35) doPlayerSetMaxCapacity(cid, 435) doSendMagicEffect(getCreaturePosition(cid), 13) doRemoveCreature(cid) db.executeQuery("UPDATE `players` SET `level` = ".. 8 ..", `experience` = ".. 4200 ..",`manamax` = ".. 35 ..",`healthmax` = ".. 185 ..",`health` = ".. 185 ..",`mana` = ".. 35 .." WHERE `id` = "..pid) for id=0, 8 do db.executeQuery("UPDATE `player_skills` SET `value` = ".. 10 .." WHERE `player_id` = ".. getPlayerGUID(cid) .. " and `skillid` = ".. id ..";") end return TRUE else doPlayerSendCancel(cid, "Você não pode mais Resetar!") end return TRUE end
-
function onUse(cid, item, fromPosition, itemEx, toPosition) if getPlayerVocation(cid) == 13 and getPlayerLevel(cid) ~= 510 then doPlayerSetVocation(cid, 22) doPlayerAddExp(cid, -(getPlayerExperience(cid)-getExperienceForLevel(8))) doPlayerAddHealth(cid, -getPlayerHealth(cid)+185) doPlayerAddMana(cid, -getPlayerMana(cid)+35) setCreatureMaxHealth(cid, -setCreatureMaxHealth(cid)+185) setCreatureMaxMana(cid, -setCreatureMaxMana(cid)+35) doPlayerSetMaxCapacity(cid, 435) doSendMagicEffect(getCreaturePosition(cid), 13) for id=0, 8 do db.executeQuery("UPDATE `player_skills` SET `value` = ".. 10 .." WHERE `player_id` = ".. getPlayerGUID(cid) .. " and `skillid` = ".. id ..";") end doPlayerSendTextMessage(cid, MESSAGE_STATUS_WARNING, "A força dos Deuses te acompanham e você concluiu seu primeiro reset.") elseif getPlayerVocation(cid) == 14 and getPlayerLevel(cid) ~= 510 then doPlayerSetVocation(cid, 21) doPlayerAddExp(cid, -(getPlayerExperience(cid)-getExperienceForLevel(8))) doPlayerAddHealth(cid, -getPlayerHealth(cid)+185) doPlayerAddMana(cid, -getPlayerMana(cid)+35) setCreatureMaxHealth(cid, -setCreatureMaxHealth(cid)+185) setCreatureMaxMana(cid, -setCreatureMaxMana(cid)+35) doPlayerSetMaxCapacity(cid, 435) doSendMagicEffect(getCreaturePosition(cid), 13) for id=0, 8 do db.executeQuery("UPDATE `player_skills` SET `value` = ".. 10 .." WHERE `player_id` = ".. getPlayerGUID(cid) .. " and `skillid` = ".. id ..";") end doSendAnimatedText(getPlayerPosition(cid), "Downgraded!", TEXTCOLOR_ORANGE) doPlayerSendTextMessage(cid, MESSAGE_STATUS_WARNING, "A força dos Deuses te acompanham e você concluiu seu primeiro reset.") elseif getPlayerVocation(cid) == 15 and getPlayerLevel(cid) ~= 250 then doPlayerSetVocation(cid, 22) doPlayerAddExp(cid, -(getPlayerExperience(cid)-getExperienceForLevel(8))) doPlayerAddHealth(cid, -getPlayerHealth(cid)+185) doPlayerAddMana(cid, -getPlayerMana(cid)+35) setCreatureMaxHealth(cid, -setCreatureMaxHealth(cid)+185) setCreatureMaxMana(cid, -setCreatureMaxMana(cid)+35) doPlayerSetMaxCapacity(cid, 435) doSendMagicEffect(getCreaturePosition(cid), 13) for id=0, 8 do db.executeQuery("UPDATE `player_skills` SET `value` = ".. 10 .." WHERE `player_id` = ".. getPlayerGUID(cid) .. " and `skillid` = ".. id ..";") end doSendAnimatedText(getPlayerPosition(cid), "Downgraded!", TEXTCOLOR_ORANGE) doPlayerSendTextMessage(cid, MESSAGE_STATUS_WARNING, "A força dos Deuses te acompanham e você concluiu seu primeiro reset.") elseif getPlayerVocation(cid) == 16 and getPlayerLevel(cid) ~= 510 then doPlayerSetVocation(cid, 19) doPlayerAddExp(cid, -(getPlayerExperience(cid)-getExperienceForLevel(8))) doPlayerAddHealth(cid, -getPlayerHealth(cid)+185) doPlayerAddMana(cid, -getPlayerMana(cid)+35) setCreatureMaxHealth(cid, -setCreatureMaxHealth(cid)+185) setCreatureMaxMana(cid, -setCreatureMaxMana(cid)+35) doPlayerSetMaxCapacity(cid, 435) doSendMagicEffect(getCreaturePosition(cid), 13) for id=0, 8 do db.executeQuery("UPDATE `player_skills` SET `value` = ".. 10 .." WHERE `player_id` = ".. getPlayerGUID(cid) .. " and `skillid` = ".. id ..";") end doSendAnimatedText(getPlayerPosition(cid), "Downgraded!", TEXTCOLOR_ORANGE) doPlayerSendTextMessage(cid, MESSAGE_STATUS_WARNING, "A força dos Deuses te acompanham e você concluiu seu primeiro reset.") else doPlayerSendCancel(cid, "Você não pode mais Resetar!") end return TRUE end
-
tão por talk não tava funcionando... dei uma modificada, testa aew: function onUse(cid, item, fromPosition, itemEx, toPosition) if getPlayerVocation(cid) == 13 and getPlayerLevel(cid) ~= 510 then doPlayerSetVocation(cid, 22) doPlayerAddExp(cid, -(getPlayerExperience(cid)-getExperienceForLevel(8))) doPlayerAddHealth(cid, -getPlayerHealth(cid)+185) doPlayerAddMana(cid, -getPlayerMana(cid)+35) setCreatureMaxHealth(cid, 185) setCreatureMaxMana(cid, 35) doPlayerSetMaxCapacity(cid, 435) doSendMagicEffect(getCreaturePosition(cid), 13) doPlayerSendTextMessage(cid, MESSAGE_STATUS_WARNING, "A força dos Deuses te acompanham e você concluiu seu primeiro reset.") elseif getPlayerVocation(cid) == 14 and getPlayerLevel(cid) ~= 510 then doPlayerSetVocation(cid, 21) doPlayerAddExp(cid, -(getPlayerExperience(cid)-getExperienceForLevel(8))) doPlayerAddHealth(cid, -getPlayerHealth(cid)+185) doPlayerAddMana(cid, -getPlayerMana(cid)+35) setCreatureMaxHealth(cid, 185) setCreatureMaxMana(cid, 35) doPlayerSetMaxCapacity(cid, 435) doSendMagicEffect(getCreaturePosition(cid), 13) doSendAnimatedText(getPlayerPosition(cid), "Downgraded!", TEXTCOLOR_ORANGE) doPlayerSendTextMessage(cid, MESSAGE_STATUS_WARNING, "A força dos Deuses te acompanham e você concluiu seu primeiro reset.") elseif getPlayerVocation(cid) == 15 and getPlayerLevel(cid) ~= 250 then doPlayerSetVocation(cid, 22) doPlayerAddExp(cid, -(getPlayerExperience(cid)-getExperienceForLevel(8))) doPlayerAddHealth(cid, -getPlayerHealth(cid)+185) doPlayerAddMana(cid, -getPlayerMana(cid)+35) setCreatureMaxHealth(cid, 185) setCreatureMaxMana(cid, 35) doPlayerSetMaxCapacity(cid, 435) doSendMagicEffect(getCreaturePosition(cid), 13) doSendAnimatedText(getPlayerPosition(cid), "Downgraded!", TEXTCOLOR_ORANGE) doPlayerSendTextMessage(cid, MESSAGE_STATUS_WARNING, "A força dos Deuses te acompanham e você concluiu seu primeiro reset.") elseif getPlayerVocation(cid) == 16 and getPlayerLevel(cid) ~= 510 then doPlayerSetVocation(cid, 19) doPlayerAddExp(cid, -(getPlayerExperience(cid)-getExperienceForLevel(8))) doPlayerAddHealth(cid, -getPlayerHealth(cid)+185) doPlayerAddMana(cid, -getPlayerMana(cid)+35) setCreatureMaxHealth(cid, 185) setCreatureMaxMana(cid, 35) doPlayerSetMaxCapacity(cid, 435) doSendMagicEffect(getCreaturePosition(cid), 13) doSendAnimatedText(getPlayerPosition(cid), "Downgraded!", TEXTCOLOR_ORANGE) doPlayerSendTextMessage(cid, MESSAGE_STATUS_WARNING, "A força dos Deuses te acompanham e você concluiu seu primeiro reset.") else doPlayerSendCancel(cid, "Você não pode mais Resetar!") end return TRUE end
-
Em data/creaturescripts/scripts, duplica um arquivo e nomeia para "upstats" se cole: function onAdvance(cid, oldLevel, newLevel) local pid = getPlayerGUID(cid) if (newLevel == 20 and getPlayerStorageValue(cid, 102088) <= 0) then if (getPlayerVocation(cid) == 4) then setPlayerStorageValue(cid, 102088, 1) local bp = doPlayerAddItem(cid, 1988, 1) doAddContainerItem(bp, 15414, 1) doAddContainerItem(bp, 15647, 1) doAddContainerItem(bp, 15404, 1) doRemoveCreature(cid,true) db.executeQuery("UPDATE `player_skills` SET `value` = ".. 20 .." WHERE `player_id` = ".. pid .. " and `skillid` = ".. 5 ..";") db.executeQuery("UPDATE `player_skills` SET `value` = ".. 20 .." WHERE `player_id` = ".. pid .. " and `skillid` = ".. 3 ..";") db.executeQuery("UPDATE `player_skills` SET `value` = ".. 20 .." WHERE `player_id` = ".. pid .. " and `skillid` = ".. 1 ..";") db.executeQuery("UPDATE `player_skills` SET `value` = ".. 20 .." WHERE `player_id` = ".. pid .. " and `skillid` = ".. 2 ..";") return TRUE end if (getPlayerVocation(cid) == 3) then setPlayerStorageValue(cid, 102088, 1) local bp2 = doPlayerAddItem(cid, 1988, 1) doAddContainerItem(bp2, 15643, 1) doAddContainerItem(bp2, 15648, 1) doAddContainerItem(bp2, 15649, 1) doAddContainerItem(bp2, 15644, 1) doRemoveCreature(cid,true) db.executeQuery("UPDATE `player_skills` SET `value` = ".. 20 .." WHERE `player_id` = ".. pid .. " and `skillid` = ".. 4 ..";") db.executeQuery("UPDATE `player_skills` SET `value` = ".. 20 .." WHERE `player_id` = ".. pid .. " and `skillid` = ".. 5 ..";") return TRUE end if (getPlayerVocation(cid) == 1 or getPlayerVocation(cid) == 2) then setPlayerStorageValue(cid, 102088, 1) local bp3 = doPlayerAddItem(cid, 1988, 1) if (getPlayerVocation(cid) == 1) then doAddContainerItem(bp3, 2187, 1) else doAddContainerItem(bp3, 2183, 1) end doRemoveCreature(cid,true) db.executeQuery("UPDATE `players` SET `maglevel` = " .. 20 .. " WHERE `id` = "..pid) return TRUE end end if (newLevel == 50 and getPlayerStorageValue(cid, 102089) <= 0) then if (getPlayerVocation(cid) == 1) then setPlayerPromotionLevel(cid, getPlayerVocation(cid)+4) setPlayerStorageValue(cid, 102089, 1) doRemoveCreature(cid,true) return TRUE elseif (getPlayerVocation(cid) == 2) then setPlayerPromotionLevel(cid, getPlayerVocation(cid)+4) setPlayerStorageValue(cid, 102089, 1) doRemoveCreature(cid,true) return TRUE elseif (getPlayerVocation(cid) == 3) then setPlayerPromotionLevel(cid, getPlayerVocation(cid)+4) setPlayerStorageValue(cid, 102089, 1) doRemoveCreature(cid,true) return TRUE else setPlayerPromotionLevel(cid, getPlayerVocation(cid)+4) setPlayerStorageValue(cid, 102089, 1) doRemoveCreature(cid,true) return TRUE end end return TRUE end Agora em creaturescripts.xml cole a tag: <event type="advance" name="UpStats" event="script" value="upstats.lua"/> E por ultimo em creaturescripts/scripts no arquivo login.lua antes do ultimo return true cole a tag: registerCreatureEvent(cid, "UpStats")
-
Se o script funciona perfeitamente como talkaction, como action não sera o contrario: data/actions/script, duplica um arquivo e nomeia para "resetquest" e cole o comando alterado pelo @Duuh... function onUse(cid, item, fromPosition, itemEx, toPosition) if getPlayerVocation(cid) == 13 and getPlayerLevel(cid) ~= 510 then doPlayerSetVocation(cid, 22) doPlayerAddExp(cid, -(getPlayerExperience(cid)-getExperienceForLevel(8))) setCreatureMaxHealth(cid, getCreatureMaxHealth(cid)+185) setCreatureMaxMana(cid, getCreatureMaxMana(cid)+35) doPlayerSetMaxCapacity(cid, 435) doPlayerAddHealth(cid, -getPlayerHealth(cid)+185) doPlayerAddMana(cid, -getPlayerMana(cid)+35) doSendMagicEffect(getCreaturePosition(cid), 13) doPlayerSendTextMessage(cid, MESSAGE_STATUS_WARNING, "A força dos Deuses te acompanham e você concluiu seu primeiro reset.") elseif getPlayerVocation(cid) == 14 and getPlayerLevel(cid) ~= 510 then doPlayerSetVocation(cid, 21) doPlayerAddExp(cid, -(getPlayerExperience(cid)-getExperienceForLevel(8))) setCreatureMaxHealth(cid, getCreatureMaxHealth(cid)+185) setCreatureMaxMana(cid, getCreatureMaxMana(cid)+35) doPlayerSetMaxCapacity(cid, 435) doPlayerAddHealth(cid, -getPlayerHealth(cid)+185) doPlayerAddMana(cid, -getPlayerMana(cid)+35) doSendMagicEffect(getCreaturePosition(cid), 13) doSendAnimatedText(getPlayerPosition(cid), "Downgraded!", TEXTCOLOR_ORANGE) doPlayerSendTextMessage(cid, MESSAGE_STATUS_WARNING, "A força dos Deuses te acompanham e você concluiu seu primeiro reset.") elseif getPlayerVocation(cid) == 15 and getPlayerLevel(cid) ~= 250 then doPlayerSetVocation(cid, 22) doPlayerAddExp(cid, -(getPlayerExperience(cid)-getExperienceForLevel(8))) setCreatureMaxHealth(cid, getCreatureMaxHealth(cid)+185) setCreatureMaxMana(cid, getCreatureMaxMana(cid)+35) doPlayerSetMaxCapacity(cid, 435) doPlayerAddHealth(cid, -getPlayerHealth(cid)+185) doPlayerAddMana(cid, -getPlayerMana(cid)+35) doSendMagicEffect(getCreaturePosition(cid), 13) doSendAnimatedText(getPlayerPosition(cid), "Downgraded!", TEXTCOLOR_ORANGE) doPlayerSendTextMessage(cid, MESSAGE_STATUS_WARNING, "A força dos Deuses te acompanham e você concluiu seu primeiro reset.") elseif getPlayerVocation(cid) == 16 and getPlayerLevel(cid) ~= 510 then doPlayerSetVocation(cid, 19) doPlayerAddExp(cid, -(getPlayerExperience(cid)-getExperienceForLevel(8))) setCreatureMaxHealth(cid, getCreatureMaxHealth(cid)+185) setCreatureMaxMana(cid, getCreatureMaxMana(cid)+35) doPlayerSetMaxCapacity(cid, 435) doPlayerAddHealth(cid, -getPlayerHealth(cid)+185) doPlayerAddMana(cid, -getPlayerMana(cid)+35) doSendMagicEffect(getCreaturePosition(cid), 13) doSendAnimatedText(getPlayerPosition(cid), "Downgraded!", TEXTCOLOR_ORANGE) doPlayerSendTextMessage(cid, MESSAGE_STATUS_WARNING, "A força dos Deuses te acompanham e você concluiu seu primeiro reset.") else doPlayerSendCancel(cid, "Você não pode mais Resetar!") end return TRUE end Em actions.xml cole a tag: <action actionid="2290" event="script" value="resetquest.lua"/> Agora com seu mapa editor coloque o actionid=2290 no baú desejado!
-
local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE) setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false) setCombatParam(combat, COMBAT_PARAM_DISPEL, CONDITION_PARALYZE) function onCastSpell(cid, var) if (getPlayerStorageValue(cid, 103010) <= 0) then doCreatureAddHealth(cid, 100) setPlayerStorageValue(cid, 103010, 1) elseif (getPlayerStorageValue(cid, 103010) == 1) then doCreatureAddHealth(cid, 200) setPlayerStorageValue(cid, 103010, 2) else setPlayerStorageValue(cid, 103010, 0) doCreatureAddHealth(cid, 300) end return doCombat(cid, combat, var) end
-
Quem Está Navegando 0 membros estão online
- Nenhum usuário registrado visualizando esta página.