-
Total de itens
631 -
Registro em
-
Última visita
-
Dias Ganhos
13
Tudo que jhon992 postou
-
Primero vai em data/npc e duplica um arquivo, nomeie para "NomeDoNpcQueQuiser" sem as aspas e nele cole: <?xml version="1.0" encoding="UTF-8"?> <npc name="NomeDoNpcQueQuiser" script="questtp.lua" walkinterval="2000" floorchange="0"> <health now="100" max="100"/> <look type="128" head="17" body="54" legs="114" feet="0" addons="2"/> <parameters> <parameter key="message_greet" value="Ola |PLAYERNAME|, voce esta no caminho errado!"/> </parameters> </npc> Agora em data/npc/scripts, duplica um arquivo e nomeia para "questtp" sem as aspas e nele cole: 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 creatureSayCallback(cid, type, msg) if(not npcHandler:isFocused(cid)) then return false end local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid local steelboots = 1234 -- coloque o id da stell local goldingot = 5678 -- coloque o id da gold local teleport = {x=707, y=372, z=9} -- local que ira teleportar if (msgcontains(msg, 'quest') and doPlayerRemoveItem(cid, steelboots, 1) and doPlayerRemoveItem(cid, goldingot, 1)) then doTeleportThing(cid, teleport) else selfSay('Você esta no caminho errado!', cid) end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new())
-
como o script era antes sem a parte da quantidade de reset, quando ainda estava funcionando.?
-
Comando !removeskull Sómente Usado Em Pz. Rep+
tópico respondeu ao Rafaellm de jhon992 em Lixeira Pública
function onSay(cid, words, param, channel) if (getTilePzInfo(getCreaturePosition(cid)) == TRUE or getCreatureCondition(cid, CONDITION_INFIGHT) == FALSE) then if getCreatureSkullType(cid) == SKULL_RED then doPlayerRemoveMoney(cid, 2000000) doCreatureSetSkullType(cid, SKULL_NONE) else doPlayerSendTextMessage(cid, 22, "Você precisa de 2kk para remover a redskull.") end else doPlayerSendTextMessage(cid, 22, "Você não pode usar este comando estando com battle ou pz.") end return TRUE end -
É Possível? Item Que Aumenta Chance De Loot.
tópico respondeu ao igor6 de jhon992 em Lixeira Pública
Acho que o jeito eh ir no config.lua procurar por: rateLoot = 2.0 E aumentar como quiser! -
[Help]Erro 032-Position.lua - Como Proceder?
tópico respondeu ao hique12 de jhon992 em Lixeira Pública
nenhum dos dois, cola teu arquivo creaturescripts.xml aqui que eu falo que arquivo precisa... -
Eu entendi que era isso que se queria! Fiz uma talkaction que funciona como spell, tem exausted e talz. Sóh adicionar a linha do talk, dae quando fala "Exevo Port" cria um teleport aleatoriamente pra uma das cidades citadas e ao falar "Exevo Port sul" irá para as coordenadas da cidade do sul e assim susecivamente...
-
[Help]Erro 032-Position.lua - Como Proceder?
tópico respondeu ao hique12 de jhon992 em Lixeira Pública
Mais tem algum arquivo de event "onLogout", tens que ir no creaturescripts.xml e vê qual arquivo éh. Depois vai no arquivo correspondente na pasta script, e poem ele aqui. -
tenta usar esse talkactions que modifiquei, ta testado jah: function removeTp(lugardele) doRemoveItem(getThingfromPos(lugardele).uid, 1) end function onSay(cid, words, param) local config = { exhaustionInSeconds = 30, -- exausted em segundos. storage = 34534, pz = "no", -- players precisam estar em protection zone para usar? ("yes" or "no"). battle = "yes", -- players deve estar sem battle ("yes" or "no") custo = "no", -- se os teleport irão custa ("yes" or "no") premium = "no" -- se precisa ser premium account ("yes" or "no") } -------------Config Lugares---------------- local lugar = { ["sul"] = {{x=2461, y=2419, z=7}, 50, 2000}, -- posição={x,y,x}, lvl necessario=50, custo se tiver = 2000gps. ["west"] = {{x=2269, y=2264, z=7}, 50, 1000}, ["east"] = {{x=2997, y=2163, z=7}, 50, 2000}, ["nort"] = {{x=2531, y=1726, z=7}, 50, 2000}, ["center"] = {{x=2577, y=2086, z=7}, 50, 2000} } local locais = {"sul", "west", "east", "nort", "center"} -- coloque os nomes dos locais local tpmath = lugar[locais[math.random(1, 5)]] -- não mexa! local position = getPlayerPosition(cid) -- posição atual do player, não mexa! local tempo = 30 -- tempo e segundos para o teleport sumir -------------/Config Checkar não mecha---------------- local lugar = lugar[param] if (param == "check") then for name, pos in pairs(lugar) do text = "Destination: "..name..", Level required: "..pos[2].."," if(config.battle == "yes") then text = text.." Sorry, you are in battle." else text = text.." You can use while fighting: No" end if(config.pz == "yes") then text = text.." You should use in protection zone: Yes" else text = text.." You should use in protection zone: No" end if (pos[3] == TRUE) then text = text..", Cost: "..pos[4]..";" end doPlayerSendTextMessage(cid, 20, ""..text.."") end return TRUE end if(exhaustion.check(cid, config.storage) == TRUE) then if (exhaustion.get(cid, 34534) >= 60) then doPlayerSendCancel(cid, "You can only teleport after [" .. math.floor(exhaustion.get(cid, 34534) / 60 + 1) .."] minutes.") end if (exhaustion.get(cid, 34534) <= 60) then doPlayerSendCancel(cid, "You can only teleport after [" .. exhaustion.get(cid, 34534).."] seconds.") end return TRUE end 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 lugar ~= nil then if not(lugar) then doPlayerSendTextMessage(cid, 22, "Sorry, this place does not exist.") doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF) return TRUE end if (getPlayerLevel(cid) <= lugar[2]) then doPlayerSendTextMessage(cid, 22, "Sorry, you don't have level. You need "..lugar[2].." level or more to be teleported.") doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF) return TRUE end if(config.custo == "yes") and (doPlayerRemoveMoney(cid, lugar[3]) == FALSE) then doPlayerSendTextMessage(cid, 22, "Sorry, you do not have enough money. You need "..lugar[3].." zenis to be teleported.") doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF) return TRUE end end if (param == "") then doCreateTeleport(1387, tpmath[1], {x=position.x+1, y=position.y, z=position.z}) lugardele = {x=position.x+1, y=position.y, z=position.z, stackpos=1} doCreatureSay(cid, "O teleport irá sumir em "..tempo.." segundos.", TALKTYPE_ORANGE_1) addEvent(removeTp, tempo*1000, lugardele) exhaustion.set(cid, config.storage, config.exhaustionInSeconds) return TRUE end exhaustion.set(cid, config.storage, config.exhaustionInSeconds) doCreateTeleport(1387, lugar[1], {x=position.x+1, y=position.y, z=position.z}) lugardele = {x=position.x+1, y=position.y, z=position.z, stackpos=1} doCreatureSay(cid, "O teleport irá sumir em "..tempo.." segundos.", TALKTYPE_ORANGE_1) addEvent(removeTp, tempo*1000, lugardele) return TRUE end
-
Mesmo assim não vai traduzir tudo. Você precisa das sources do seu otserv para traduzir, dae abra-a com o Dev-C++ e procure por alguma fala do account manager, la você encontrara todas as falas, só traduzilas e compilar as sources novamente. Meio complicado pra iniciante, então procure um tutorial de compilando otserv Dev-C++ aqui no XTibia.
-
[Help]Erro 032-Position.lua - Como Proceder?
tópico respondeu ao hique12 de jhon992 em Lixeira Pública
o erro deve ser no arquivo logout.lua na pasta "data/creaturescripts/scripts" posta o arquivo aqui que a galera da o geito. -
local naruto = {lookType = 180, lookHead = 79, lookBody = 91, lookLegs = 91, lookFeet = 91, lookTypeEx = 0, lookAddons = 0} local sasuke = {lookType = 181, lookHead = 86, lookBody = 86, lookLegs = 86, lookFeet = 86, lookTypeEx = 0, lookAddons = 0} function onStepIn(cid, item, position, lastPosition, fromPosition, toPosition, actor) if getPlayerVocation(cid) == 1 then elseif(hasCondition(cid, CONDITION_OUTFIT) and getCreatureOutfit(cid).lookType == outfit.naruto) then elseif getPlayerVocation(cid) == 2 then elseif(hasCondition(cid, CONDITION_OUTFIT) and getCreatureOutfit(cid).lookType == outfit.sasuke) then end doSendMagicEffect(getThingPos(cid), 29) -- EFEITO QUE DARA return TRUE end function onStepOut(cid, item, position, fromPosition) doRemoveCondition(cid, CONDITION_OUTFIT) -- removendo sóh a condition de outfit return true end Não esquece das 2 tags no movementes.xml: <movevent type="StepIn" actionid="30205" event="script" value="nomedoscript.lua"/> <movevent type="StepOut" actionid="30205" event="script" value="nomedoscript.lua"/>
-
tinha feito errado, esta arrumado la em cima, ja editei!
- 4 respostas
-
- nao crie items vip
- otserv
-
(e 2 mais)
Tags:
-
Apareceu algum erro no executavel? tenta assim: function doPlayerAddMagLevel(cid, amount) for i = 1, amount do doPlayerAddSpentMana(cid, (getPlayerRequiredMana(cid, getPlayerMagLevel(cid, true) + 1) - getPlayerSpentMana(cid)) / getConfigInfo('rateMagic')) end return true end function doPlayerAddSkill(cid, skill, amount, round) if(skill == SKILL__LEVEL) then return doPlayerAddLevel(cid, amount, round) elseif(skill == SKILL__MAGLEVEL) then return doPlayerAddMagLevel(cid, amount) end return doPlayerAddSkillTry(cid, skill, (getPlayerRequiredSkillTries(cid, skill, getPlayerSkillLevel(cid, skill) + 1) - getPlayerSkillTries(cid, skill)) / getConfigInfo('rateSkill')) end function onUse(cid, item, frompos, item2, topos) local mlGain = 3 -- quantidade de ml que ira ganhar o player local skillGain = 5 -- quantidade de skill que ira ganhar o player if (getPlayerStorageValue(cid, 602032) < 1) then if (getPlayerVocation(cid) == 1 or getPlayerVocation(cid) == 5 or getPlayerVocation(cid) == 2 or getPlayerVocation(cid) == 6 or getPlayerVocation(cid) == 15 or getPlayerVocation(cid) == 16) then doPlayerAddMagLevel(cid, mlGain) doCreatureSay(cid,"Voce ganhou "..mlGain.." magic leveis!",TALKTYPE_ORANGE_1) end if (getPlayerVocation(cid) == 4 or getPlayerVocation(cid) == 8) then doPlayerAddSkill(cid, 2, skillGain) doPlayerAddSkill(cid, 3, skillGain) doCreatureSay(cid,"Voce ganhou "..skillGain.." skills!",TALKTYPE_ORANGE_1) end if (getPlayerVocation(cid) == 3 or getPlayerVocation(cid) == 7) then doPlayerAddSkill(cid, 4, skillGain) doCreatureSay(cid,"Voce ganhou "..skillGain.." skills!",TALKTYPE_ORANGE_1) end if (getPlayerVocation(cid) == 13 or getPlayerVocation(cid) == 14) then doPlayerAddSkill(cid, 1, skillGain) doCreatureSay(cid,"Voce ganhou "..skillGain.." skills!",TALKTYPE_ORANGE_1) end if (getPlayerVocation(cid) == 17 or getPlayerVocation(cid) == 18) then doPlayerAddSkill(cid, 0, skillGain) doCreatureSay(cid,"Voce ganhou "..skillGain.." skills!",TALKTYPE_ORANGE_1) end setPlayerStorageValue(cid, 602032, 1) else doCreatureSay(cid,"Voce ja fez esta quest.",TALKTYPE_ORANGE_1) end return TRUE end
-
Acho que assim funciona, mais nem testei. Sóh substituir la: function onSay(cid, words, param, channel) if(param == '') then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Command param required.") return true end local t = string.explode(param, ",") local ret = RETURNVALUE_NOERROR local pos = getCreaturePosition(cid) local id = tonumber(t[1]) -------------------------------------------------------------------------------------------- local execoesId = {12642, 12643, 12644} -- adicionar os ids que não poderão funcionar for i=0, #execoesId do if (id == tonumber(execoesId[i])) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Este id nao eh valido!") return true end end -------------------------------------------------------------------------------------------- if(not id) then id = getItemIdByName(t[1], false) if(not id) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Item wich such name does not exists.") return true end end local amount = 100 if(t[2]) then amount = t[2] end local item = doCreateItemEx(id, amount) if(t[3] and getBooleanFromString(t[3])) then if(t[4] and getBooleanFromString(t[4])) then pos = getCreatureLookPosition(cid) end ret = doTileAddItemEx(pos, item) else ret = doPlayerAddItemEx(cid, item, true) end if(ret ~= RETURNVALUE_NOERROR) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Couldn't add item: " .. t[1]) return true end doDecayItem(item) if(not isPlayerGhost(cid)) then doSendMagicEffect(pos, CONST_ME_MAGIC_RED) end return true end
- 4 respostas
-
- nao crie items vip
- otserv
-
(e 2 mais)
Tags:
-
Vai em data/actions/script, duplica um arquivo e nomeia para "skillQuest" sem as aspas e nele cole: function onUse(cid, item, frompos, item2, topos) local mlGain = 3 -- quantidade de ml que ira ganhar o player local skillGain = 5 -- quantidade de skill que ira ganhar o player if (getPlayerStorageValue(cid, 602032) < 1) then if (getPlayerVocation(cid) == 1 or getPlayerVocation(cid) == 5 or getPlayerVocation(cid) == 2 or getPlayerVocation(cid) == 6 or getPlayerVocation(cid) == 15 or getPlayerVocation(cid) == 16) then doPlayerAddMagLevel(cid, mlGain) doCreatureSay(cid,"Voce ganhou "..mlGain.." magic leveis!",TALKTYPE_ORANGE_1) end if (getPlayerVocation(cid) == 4 or getPlayerVocation(cid) == 8) then doPlayerAddSkill(cid, 2, skillGain) doPlayerAddSkill(cid, 3, skillGain) doCreatureSay(cid,"Voce ganhou "..skillGain.." skills!",TALKTYPE_ORANGE_1) end if (getPlayerVocation(cid) == 3 or getPlayerVocation(cid) == 7) then doPlayerAddSkill(cid, 4, skillGain) doCreatureSay(cid,"Voce ganhou "..skillGain.." skills!",TALKTYPE_ORANGE_1) end if (getPlayerVocation(cid) == 13 or getPlayerVocation(cid) == 14) then doPlayerAddSkill(cid, 1, skillGain) doCreatureSay(cid,"Voce ganhou "..skillGain.." skills!",TALKTYPE_ORANGE_1) end if (getPlayerVocation(cid) == 17 or getPlayerVocation(cid) == 18) then doPlayerAddSkill(cid, 0, skillGain) doCreatureSay(cid,"Voce ganhou "..skillGain.." skills!",TALKTYPE_ORANGE_1) end setPlayerStorageValue(cid, 602032, 1) else doCreatureSay(cid,"Voce ja fez esta quest.",TALKTYPE_ORANGE_1) end return TRUE end Agora em data/actions/actions.xml cole a tag: <action actionid="2085" script="skillQuest.lua"/> E por último com seu mapa editor, vai no baú desejado do seu server e coloque o actionid 2085.
-
Vai em data/creaturescripts/scripts, duplica um arquivo e nomeia para "openWall" sem as aspas e nele cole: --<Script by jhon992>-- function onKill(cid, target, lastHit) local mosterDead = "zeus" -- nome do monstro que deve ser morto para abrir a parede local lugarWall = {x=2476, y=2451, z=7, stackpos=1} -- lugar da parede que sera removido local tempo = 60000 -- tempo, 1000 = 1 segundo. 60000 = 1 minuto. if (getCreatureName(target) == mosterDead) then doRemoveItem(getThingfromPos(lugarWall).uid, 1) doCreatureSay(cid, "Voce tem "..(tempo/60000).." minuto para sair desta sala!", TALKTYPE_ORANGE_1) addEvent(addWall, tempo, lugarWall) return TRUE end return TRUE end function addWall(lugarWall) local itemid = 1112 -- id da parede doCreateItem(itemid, 1, lugarWall) end Agora vai em data/creaturescripts/creaturescripts.xml e cole a tag: <event type="kill" name="OpenWall" event="script" value="openWall.lua"/> E por último, vai em data/creaturescripts/scripts, abra o arquivo "login" e antes do último "return true" cole: registerCreatureEvent(cid, "OpenWall")
-
[Creaturescript] Simple Reputation System !
tópico respondeu ao jhon992 de jhon992 em Globalevents e Spells
@Viciadorlz, não faltou nada não. Não precisa alterar nada na database, o sistema funciona com storages que são armazenados nos proprios players. -
Sistema Atualizado com Portas e Itens apenas para players com certa quantidade de pontos de reputação --- http://www.xtibia.com/forum/topic/173892-creaturescript-simple-reputation-system/
-
Sistema Atualizado com Portas e Itens apenas para players com certa quantidade de pontos de reputação --- 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
na parte do seu script: registerCreatureEvent(cid, "repsystem") troca por: registerCreatureEvent(cid, "RepSystem") tens que ser com letra maiuscula como na tag do creaturescripts.xml. Se não conseguir troca teu login.lua por esse: Pronto @eduarodoot o sistema esta atualizado com porta e itens apenas pra players com certa quantidade de reputação. -
[Creaturescript] Simple Reputation System !
tópico respondeu ao jhon992 de jhon992 em Globalevents e Spells
To meio ocupado, mais assim que tiver tempo faço isso, mais tardar semana quivem! -
Nao Perder A Bp Caso Morra Sem Aol Para Monstros E Perda Quando Morra Para Player.
pergunta respondeu ao gatohotmail de jhon992 em Scripts
function onPrepareDeath(cid, lastHitKiller, mostDamageKiller) if (not isPlayer(lastHitKiller)) and (not getCreatureMaster(lastHitKiller)) then doCreatureSetDropLoot(cid, false) return TRUE end return TRUE end Malz aew tava bem desligado só peguei um script pronto e dei uma editada de acordo com oque se queria, mais agora acho que vai funcionar. vlw a dica @lordbug99 -
Nao Perder A Bp Caso Morra Sem Aol Para Monstros E Perda Quando Morra Para Player.
pergunta respondeu ao gatohotmail de jhon992 em Scripts
Vai em data/creaturescript/script, duplica um arquivo, nomeia para "droploot" sem as aspas e nele cole: function onPrepareDeath(cid, lastHitKiller, mostDamageKiller) if not isPlayer(cid) then doCreatureSetDropLoot(cid, false) return TRUE end return TRUE end Agora em data/creaturescripts/creaturescripts.xml cole a tag: <event type="preparedeath" name="DropLoot" event="script" value="droploot.lua"/> Por ultimo em creaturescript/script/login.lua cole: registerCreatureEvent(cid, "DropLoot") -
Remover Red Atravéz De Item!? Ajuda Plx Rep+
tópico respondeu ao igor6 de jhon992 em Lixeira Pública
Para tirar os frags, abaixo da linha: doCreatureSetSkullType(cid, SKULL_NONE) Coloque essa linha: db.executeQuery("UPDATE `killers` SET `unjustified` = 0 WHERE `id` IN (SELECT `kill_id` FROM `player_killers` WHERE `player_id` = " .. getPlayerGUID(cid) .. ")") -
usa isso: http://www.xtibia.com/forum/topic/175370-creaturescript-weapons-paralyze/ e sóh diminui essa parte: setConditionParam(condition, CONDITION_PARAM_SPEED, -400) -- velocidade que o monstro irá perder para -1000 ou mais, dae o player ficara paralizado. ou no lugar do -400 poem: setConditionParam(condition, CONDITION_PARAM_SPEED, -getCreatureSpeed(cid)) acho que funcionara!
-
Quem Está Navegando 0 membros estão online
- Nenhum usuário registrado visualizando esta página.