Ir para conteúdo

mostjf

Membro
  • Registro em

  • Última visita

Histórico de Curtidas

  1. Curtir
    mostjf deu reputação a jNo em Baiak Temple/Start City   
    Estou disponibilizando o começo de um mapa que eu estava fazendo, mas desisti, é para baiak, segue abaixo.
     

     

  2. Curtir
    mostjf recebeu reputação de Bruno Carvalho em Piso com delay ao andar   
    Procurei muito ai não achei, ai fui tenta fazer e acabou que saiu algo !
    Movements.xml
     
    O q editar somente
    CONST_ME_BLOODYSTEPS) pode trocar o efeito
    local speed = 30
    local sto = 65488 
     
  3. Curtir
    mostjf deu reputação a Nixon em Ilha com montanha (by Nixon)   
  4. Curtir
    mostjf deu reputação a Cjaker em Script item   
    function onUse(cid, item, fromPosition, itemEx, toPosition) local config = { timeExhausted = 24, -- tempo em horas para poder usar o item novamente. timeForUse = 2, -- tempo em horas que o player poderá entrar na cave. exhausted = 456789, storage = 789456, toKnow = 123456, effect = 27, -- efeito que dará ao usar o item. } if getPlayerStorageValue(cid, config.exhausted) < os.time() then setPlayerStorageValue (cid, config.storage, config.timeForUse * 60 * 60 + os.time()) setPlayerStorageValue (cid, config.exhausted, config.timeExhausted * 60 * 60 + os.time()) setPlayerStorageValue (cid, config.toKnow, 1) doSendMagicEffect (getThingPos(cid), config.effect) doPlayerSendTextMessage (cid, 19, "MSG informando que o jogador tem acesso à área.") doRemoveItem(item.uid, 1) else doPlayerSendTextMessage (cid, 19, "MSG caso o player esteja exhaustado. (Sobre ter que esperar 24 horas)") end return true end  
  5. Curtir
    mostjf deu reputação a gabrielzika em Ajuda no script   
    @mostjf
    local tempo = 10 --tempo em segundos function onLogin(cid)         if isPremium(cid) == true then             TopEffect(cid)         end     return true end function TopEffect(cid)     if isPlayer(cid) then         doSendAnimatedText(getCreaturePosition(cid), "[VIP]", TEXTCOLOR_LIGHTBLUE)         addEvent(TopEffect, tempo*1000, cid)     end     return true end  
  6. Curtir
    mostjf deu reputação a Vabrindox em script de missão   
    Blz eu fiz no msm estilo ele vai no npc o npc da missao para ele e depois que o player acabar ele volta ao npc e o npc da uma nova missao e assim por diante quantos vc quiser.
     
    Creaturescripts.xml
    Lembra que vc botou o kill_task.lua agora toda vez que vc quiser uma nova task vc coloca as tag assim como eu botei abaixo e vc configura separadamente cada uma da maneira que vc quiser
    <event type="kill" name="kill_task" event="script" value="kill_task3.lua"/> <event type="kill" name="kill_task" event="script" value="kill_task2.lua"/> creaturescripts/scripts
    Ae vc precisa criar o arquivo .lua com os nomes novos "kill_task2.lua" e "kill_task3.lua" eu vou te mandar os 2 logo para vc nao ficar com duvida de como ta a configuração.
    Lembrando que eu mudei umas coisinhas só para ficar mais facil na hr de configurar e n precisar mudar o nome do bicho na msg só na config.
     
    kill_task2.lua
        storage = 2501, Tem que ta igual a storage da missao 2 do npc pq a 1 foi a que eu te mandei antes e a 3 é a task_kill3
        monster = 'Troll', Nome do monstro
        premio = 2160, Id do premio
        qtd = 1, Quantidade de itens do premio
        exp = 100, Exp que ganha mas vc pode botar 0 caso n queira nenhuma
    local Configs = { storage = 2501, monster = 'Troll', premio = 2160, qtd = 1, exp = 100, } function onKill(cid, target, lastHit) if isMonster(target) and getCreatureName(target) == Configs.monster then local get = getPlayerStorageValue(cid, Configs.storage) if get >=0 and get <=5 then setPlayerStorageValue(cid, Configs.storage, (get+1)) local gett = getPlayerStorageValue(cid, Configs.storage) doCreatureSay(cid, 'Voce matou '..gett..' '..Configs.monster..' ate agora.', TALKTYPE_ORANGE_1) if gett == 5 then doPlayerAddItem(cid, Configs.premio, Configs.qtd) doPlayerAddExp(cid,Configs.exp) doCreatureSay(cid, 'Voce acabou a missao!.', TALKTYPE_ORANGE_1) setPlayerStorageValue(cid, Configs.storage, (gett+1)) end end end return true end  
    kill_task3.lua
    local Configs = { storage = 2502, monster = 'Sheep', premio = 2160, qtd = 1, exp = 100, } function onKill(cid, target, lastHit) if isMonster(target) and getCreatureName(target) == Configs.monster then local get = getPlayerStorageValue(cid, Configs.storage) if get >=0 and get <=5 then setPlayerStorageValue(cid, Configs.storage, (get+1)) local gett = getPlayerStorageValue(cid, Configs.storage) doCreatureSay(cid, 'Voce matou '..gett..' '..Configs.monster..' ate agora.', TALKTYPE_ORANGE_1) if gett == 5 then doPlayerAddItem(cid, Configs.premio, Configs.qtd) doPlayerAddExp(cid,Configs.exp) doCreatureSay(cid, 'Voce acabou a missao!.', TALKTYPE_ORANGE_1) setPlayerStorageValue(cid, Configs.storage, (gett+1)) end end end return true end  
    Npc/scripts
    o Npc "task.lua" ficou assim:

            storage_1 = 2500,  É a storage da primeira task(missao)
            storage_2 = 2501, msm coisa só que da 2
            storage_3 = 2502, e da 3
            qtd_kill1 = 5, Aqui é a quantidade de bichos que o player precisa matar da 1 missao
            qtd_kill2 = 5, msm coisa só que da 2
            qtd_kill3 = 5, da 3
     
    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 Configs = { storage_1 = 2500, storage_2 = 2501, storage_3 = 2502, qtd_kill1 = 5, qtd_kill2 = 5, qtd_kill3 = 5, } local get1 = getPlayerStorageValue(cid, Configs.storage_1) local get2 = getPlayerStorageValue(cid, Configs.storage_2) local get3 = getPlayerStorageValue(cid, Configs.storage_3) if(msgcontains(msg, 'missao') and (get1 == -1)) then selfSay('Para ganhar o premio mate '..Configs.qtd_kill1..' Rabbit! Voce ira receber automaticamente.', cid) setPlayerStorageValue(cid, Configs.storage_1, 0) return true elseif get1 >=0 and get1 <=Configs.qtd_kill1 then selfSay('Voce precisa matar '..(Configs.qtd_kill1-get1)..' Rabbits!', cid) return true end if(msgcontains(msg, 'missao') and (get2 == -1)) then selfSay('Para ganhar o premio mate '..Configs.qtd_kill2..' Troll! Voce ira receber automaticamente.', cid) setPlayerStorageValue(cid, Configs.storage_2, 0) return true elseif get2 >=0 and get2 <=Configs.qtd_kill2 then selfSay('Voce precisa matar '..(Configs.qtd_kill2-get2)..' Troll!', cid) return true end if(msgcontains(msg, 'missao') and (get3 == -1)) then selfSay('Para ganhar o premio mate '..Configs.qtd_kill3..' Sheep! Voce ira receber automaticamente.', cid) setPlayerStorageValue(cid, Configs.storage_3, 0) return true elseif get3 >=0 and get3 <=Configs.qtd_kill3 then selfSay('Voce precisa matar '..(Configs.qtd_kill3-get3)..' Sheep!', cid) end if get1>Configs.qtd_kill1 and get2>Configs.qtd_kill2 and get3>Configs.qtd_kill3 then selfSay('Voce ja fez todas as missoes!', cid) end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new())  
    Qualquer coisa só falar, e eu sei que outras pessoas vão dizer que o código não esta perfeito e que da para fazer de alguma outra maneira mas eu fui fazendo para treinar msm faz muito tempo que não programo para otserv e estou voltando agora e lembrando aos poucos.
     
     
     
     
    @igorcano1 Para vc botar mais recompensas vc pode ir fazendo assim:
    local Configs = { storage = 2502, monster = 'Sheep', premio = 2160, premio2= 2152, qtd = 1, qtd_2 = 1, exp = 100, } function onKill(cid, target, lastHit) if isMonster(target) and getCreatureName(target) == Configs.monster then local get = getPlayerStorageValue(cid, Configs.storage) if get >=0 and get <=5 then setPlayerStorageValue(cid, Configs.storage, (get+1)) local gett = getPlayerStorageValue(cid, Configs.storage) doCreatureSay(cid, 'Voce matou '..gett..' '..Configs.monster..' ate agora.', TALKTYPE_ORANGE_1) if gett == 5 then doPlayerAddItem(cid, Configs.premio, Configs.qtd) doPlayerAddItem(cid, Configs.premio2, Configs.qtd_2) doPlayerAddExp(cid,Configs.exp) doCreatureSay(cid, 'Voce acabou a missao!.', TALKTYPE_ORANGE_1) setPlayerStorageValue(cid, Configs.storage, (gett+1)) end end end return true end  
  7. Obrigado
    mostjf recebeu reputação de Glatharth em Projeto RPG   
    Iradoro !!, adorei a scripts e a ideia, caso precise de um mapper 
  8. Curtir
    mostjf deu reputação a .HuRRiKaNe em [CREATURESCRIPT] God Autorizados   
    Script que checa por nome se um god está autorizado a entrar no jogo ou não, caso não esteja ele volta a ser um player normal ao entrar.
     
    Em data/creaturescripts/scripts crie um arquivo com o nome godcheck.lua e dentro coloque:
    function onLogin(cid) local names = {"Admin1", "Admin2"} if getPlayerGroupId(cid) == 6 and not isInArray(names, getPlayerName(cid)) then setPlayerGroupId(cid, 1) end return true end  
    Em data/creaturescripts/scripts/login.lua adicione:
    registerCreatureEvent(cid, "Check Gods")  
    Em data/creaturescripts/creaturescripts.xml adicione:
    <event type="login" name="Check Gods" event="script" value="godcheck.lua"/>  
    Créditos:
    DavidR
  9. Curtir
    mostjf deu reputação a Ackerzin em Como aumenta limite de skill na soucer   
    @mostjf Simples, \data\XML abre vocations.xml
     
     
    <vocation id="7" name="Royal Paladin" description="a royal paladin" needpremium="1" gaincap="20" gainhp="10" gainmana="15" gainhpticks="2" gainhpamount="60" gainmanaticks="2" gainmanaamount="60" manamultiplier="1.4" attackspeed="440" soulmax="200" gainsoulticks="15" fromvoc="3" lessloss="30"> <formula meleeDamage="1.0" distDamage="1.0" wandDamage="1.0" magDamage="1.0" magHealingDamage="1.0" defense="1.0" magDefense="1.0" armor="1.0"/> <skill fist="1.2" club="1.2" sword="1.2" axe="1.2" distance="1.1" shielding="1.1" fishing="1.1" experience="1.0"/> </vocation>         <skill fist="1.2" club="1.2" sword="1.2" axe="1.2" distance="1.1" shielding="1.1" fishing="1.1" experience="1.0"/>
     
    BASTA DEIXAR "1.0" no skill que quer deixar sem limites

Informação Importante

Confirmação de Termo