Ir para conteúdo

Rafix

Barão
  • Total de itens

    231
  • Registro em

  • Última visita

Histórico de Reputação

  1. Upvote
    Rafix recebeu reputação de 69768489 em Aprenda A Fazer Novas Quests   
    Primeiro, vc vai na pasta de seu ot, C:\Documents and Settings\Fulano\Desktop\ots\data\actions\scripts, nesse lugar ai, data, actions,scripts, e vai no chest.lua, manda editar e vai aparecer isso:
    function onUse(cid, item, frompos, item2, topos)
    -- bright sword quest
    if item.uid == 5001 then
    queststatus = getPlayerStorageValue(cid,5001)
    if queststatus == -1 then
    if getPlayerLevel(cid) >= 20 then
    doPlayerSendTextMessage(cid,22,"You have found Bright Sword.")
    doPlayerAddItem(cid,3233,1)
    setPlayerStorageValue(cid,5001,1)
    else
    doPlayerSendTextMessage(cid,22,"You need level 20 to get prize.")
    end
    else
    doPlayerSendTextMessage(cid,22,"It is empty.")
    end
    Isso eh uma quest, a da bright sword, tem muitas quests lah, vc vai na ultima e copia, da enter e cola, ai vai aparece lah uns negocio q vc tem q mudar,eh muito importante!
    Exemplo: -- 10k quest
    elseif item.uid == 5026 then(5026=numero da quest,tipo se a ultima foi 5024, a proxima eh 5025, lembrando q eh ateh 5999)
    queststatus = getPlayerStorageValue(cid,5026)(5026=numero da quest,tipo se a ultima foi 5024, a proxima eh 5025, lembrando q eh ateh 5999, muda isso tbm
    if queststatus == -1 then(Dexa assim)
    if getPlayerLevel(cid) >= 15 then(Level requerido para pegar o prêmio) doPlayerSendTextMessage(cid,22,"You have found 10k.")(Mensagem que aparece na tela quando o player completa a quest) doPlayerAddItem(cid,2981,1)(2981, id do item que vai ganhar na questsoh ir no itens.xmle editar e procurar com ctrl+f) setPlayerStorageValue(cid,5026,1) (5026,novamente o numero da quest) else
    doPlayerSendTextMessage(cid,22,"You need level 15 to get prize.") (Mensagem que aparece quando o player naum tem o level necessário para completar a quest) end
    else
    doPlayerSendTextMessage(cid,22,"Its empty.") (Mensagem que aparece quando o player ja completou a quest) end
    end
    return 1
    end (O Primeiro End,eh o final da quest, mas kada vez q vc criar uma nova quest tem q deletar os proximos end e o return 1 e colocar na ordem no final dessa quest)
    Bom, depois disso, abra o mapeditor, colokeos respawms dos bixos desejados pra quest, e o bau, clike com o botao direito no baú, e vai em poperties, coloca lah:
    Action id: 5025 (ou o numero da quest)
    Unique id: 5025 (ou o numero da quest)
    Entao feche, e salve, abra seu server e va no baú e pegue o item, depois de matar os bixos eh claro ,
    Bom, espero ter ajudado
    Atenciosamente, Rafix
    Qualquer duvida posta ae!
    ----------------------Edit---------------------
    Como fazer quest de escolha (OPCIONAL)
    Agora para quem quier aprender como faz baus estilo o da annihilator, 2 baus ou mais, e vc só pode pegar um item, irei ensinar agora. (a pedidos)
    é bem simples, vou tentar explicar como funfa e vou postar exemplo.
    nao tem o script inicial postado aqui? pronto, se for 2 baus vc junta 2 scripts em um só, se for 4, 4 scripts em um só, sendo que quando se faz isso se adiciona else antes dos outros if.
    vou fazer um exemplo com 3 baus ok?
    vamos lá.
    -- Tutorial de Quest by Neto =] --
    function onUse(cid, item, frompos, item2, topos)
    if item.uid == X¹ then --primeiro bau--
    queststatus = getPlayerStorageValue(cid,Y)
    if queststatus == -1 or queststatus == 0 then
    doPlayerSendTextMessage(cid,22,"Você achou um(a) Z¹")
    item_uid = doPlayerAddItem(cid,ID¹,Q)
    setPlayerStorageValue(cid,Y,1)
    else
    doPlayerSendTextMessage(cid,22,"O baú está vazio.")
    end
    elseif item.uid == X² then --segundo bau--
    queststatus = getPlayerStorageValue(cid,Y)
    if queststatus == -1 or queststatus == 0 then
    doPlayerSendTextMessage(cid,22,"Você achou um(a) Z²")
    item_uid = doPlayerAddItem(cid,ID²,Q)
    setPlayerStorageValue(cid,Y,1)
    else
    doPlayerSendTextMessage(cid,22,"O baú está vazio.")
    end
    elseif item.uid == X³ then --terceiro bau--
    queststatus = getPlayerStorageValue(cid,Y)
    if queststatus == -1 or queststatus == 0 then
    doPlayerSendTextMessage(cid,22,"Você achou um(a) Z³")
    item_uid = doPlayerAddItem(cid,ID³,Q)
    setPlayerStorageValue(cid,Y,1)
    else
    doPlayerSendTextMessage(cid,22,"O baú está vazio.")
    end
    else
    return 0
    end
    return 1
    end
    Para configurar é bem simples, é igual a um script normal, vc tem que preencher as variaves normalmente.
    nota: vc vai notar uma diferença neste script, alem do elseif, vc pode ver que tem variaves diferentes assim: X¹, X² e X³.
    vou ensinar como vc vai configurar.
    o X é unique id, vc vai configurar como em um script normal, só que x¹ é diferente de x² que é diferente de x³.
    O mesmo se aplica aos Z's, aos ID's, note que nao tem varios "Y", ou seja, o Y do primeiro bau é = ao do segundo e = ao do terceiro.
    --Partindo para o exemplo pratico--
    eu aconselho vc a fazer os UNIQUEIDS seguidos como no exemplo pratico.
    X¹ = 3000
    X² = 3001
    X³ = 3002
    Y = 3000.
    Z¹ e ID¹ = Magic Sword (2400)
    Z² e ID² = SCA (2431)
    Z³ e ID³ = TH (2421)
    PS: todos estes ids sao para 7.4, nao sei os de 7.5 decorados.
    --Substituindo as variaveis--
    -- Tutorial de Quest by Kinho =] --
    function onUse(cid, item, frompos, item2, topos)
    if item.uid == 3000 then --primeiro bau--
    queststatus = getPlayerStorageValue(cid,3000)
    if queststatus == -1 or queststatus == 0 then
    doPlayerSendTextMessage(cid,22,"Você achou um(a) Magic Sword")
    item_uid = doPlayerAddItem(cid,2400,1)
    setPlayerStorageValue(cid,3000,1)
    else
    doPlayerSendTextMessage(cid,22,"Vc ja pegou um dos 3 items.")
    end
    elseif item.uid == 3001 then --segundo bau--
    queststatus = getPlayerStorageValue(cid,3000)
    if queststatus == -1 or queststatus == 0 then
    doPlayerSendTextMessage(cid,22,"Você achou um(a) Stonecutter Axe")
    item_uid = doPlayerAddItem(cid,2431,1)
    setPlayerStorageValue(cid,3000,1)
    else
    doPlayerSendTextMessage(cid,22,"Vc ja pegou um dos 3 items.")
    end
    elseif item.uid == 3002 then --terceiro bau--
    queststatus = getPlayerStorageValue(cid,3000)
    if queststatus == -1 or queststatus == 0 then
    doPlayerSendTextMessage(cid,22,"Você achou um(a) Thunder Hammer")
    item_uid = doPlayerAddItem(cid,2421,1)
    setPlayerStorageValue(cid,3000,1)
    else
    doPlayerSendTextMessage(cid,22,"Vc ja pegou um dos 3 items.")
    end
    else
    return 0
    end
    return 1
    end
    Créditos: Boladao
  2. Upvote
    Rafix recebeu reputação de gustavoxl em Criando E Administrando Sua Cadeia 100%   
    Bom, eu prometi num tutorial postar um tutorial de como fazer um npc policial, mas é mas facil assim...
    Começando...
    1-Primeiro abra seu Map Editor junto com seu mapa e coloque a cadeia no lugar que voce desejar, tente fazer mais ou menos assim:

    Link: http://img518.imageshack.us/img518/5489/tutocadeia1ei.jpg
    Bom Depois de ter construido tudo, Tem que escolher o sistema que voce quer:
    -Sistema Policial 10k(preço reajustável): Seria um sistema aonde se voce paga 10k ao policial voce sai da cadeia...
    -Sistema de alerta by colex:(Link Aqui!) Que voce pode fazer que cada vez que a pessoa vai pra cadeia = 10% Alerta dai quando chegar ao 100% ja está no script que é banido, tem tudo explicado la.
    -Normal System: Deixar a pessoa por 1 dia na cadeia(24horas[Tempo Reajustável])
    Depois de escolher seu sistema, está na hora de criar os npcs Delegado, Policial, e se quiser o Advogado que voce paga 20k mais sai o alerta...
    Seguem ai os npcs:
    Policial:
    Abra a pasta de Seu OTServ e Va em data\npc, copie um npc e cole, renomeie para Policial
    Delete tudo e preencha com as seguintes informações:
     
    <?xml version="1.0"?><npc name="Policial" script="data/npc/scripts/policial.lua" access="3"> <look type="131" head="114" body="88" legs="107" feet="114"/></npc>  
    Nota: Look Type é opcional
    Agora va em scripts e copie a seguinte script:
    -boat
    Cole e renomeie para: policial
    abra e delete tudo o que está lá dentro
    e cole isso:
     
    focus = 0talk_start = 0target = 0following = falseattacking = falsefunction onThingMove(creature, thing, oldpos, oldstackpos)endfunction onCreatureAppear(creature)endfunction onCreatureDisappear(cid, pos)  if focus == cid then          selfSay('Bem feito por estar preso seu mal educado.')          focus = 0          talk_start = 0  endendfunction onCreatureTurn(creature)endfunction msgcontains(txt, str)  return (string.find(txt, str) and not string.find(txt, '(%w+)' .. str) and not string.find(txt, str .. '(%w+)'))endfunction onCreatureSay(cid, type, msg)  msg = string.lower(msg)  if (msgcontains(msg, 'hello') and (focus == 0)) and getDistanceToCreature(cid) < 3 then  if isPremium(cid) then  selfSay('O Que foi, ' .. creatureGetName(cid) .. '! Voce pode sair se me pagar 10k. Voce quer??')  focus = cid  talk_start = os.clock()  else  selfSay('Desculpe, Voce não tem dinheiro suficiente.')  focus = 0  talk_start = 0  end  elseif msgcontains(msg, 'hello') and (focus ~= cid) and getDistanceToCreature(cid) < 4 then    selfSay('Espera, ' .. creatureGetName(cid) .. '!')  elseif focus == cid then  talk_start = os.clock()  if msgcontains(msg, 'yes') then  if pay(cid,10000) then    selfSay('Espero que não volte mais!')    selfSay('/send ' .. creatureGetName(cid) .. ', 160 54 7')    focus = 0    talk_start = 0  else    selfSay('Desculpe, voce não tem grana.')  end  elseif msgcontains(msg, 'ciieeeeeeeey') then  if pay(cid,20) then    selfSay('Let\'s go!')    selfSay('/send ' .. creatureGetName(cid) .. ', 171 65 7')    focus = 0    talk_start = 0  else    selfSay('Sorry, you don\'t have enough money.')  end  elseif msgcontains(msg, 'bye') and getDistanceToCreature(cid) < 4 then  selfSay('Good bye, ' .. creatureGetName(cid) .. '!')  focus = 0  talk_start = 0  end endendfunction onCreatureChangeOutfit(creature)endfunction onThink()  if (os.clock() - talk_start) > 30 then    if focus > 0 then    selfSay('Que fale o próximo se tiver...')    end    focus = 0  end if focus ~= 0 then  if getDistanceToCreature(focus) > 5 then    selfSay('Tá Tá agora suma.')    focus = 0  end  endend  
    Nota: Aquele cieeeeey foi um erro não modifique,eu não modifiquei pois não tive tempo...
    NPC: Delegado:
    Em Andamento... Vou pedir um code a alguem, quem souber fazer codes me add no msn (rafix_sr@hotmail.com)
    NPC: Advogado:
    Ainda não implementado... Colex preciso falar com voce...
    Bom Gente ta ai
    Quando der eu Posto o rewsto dos Npcs la...
  3. Upvote
    Rafix recebeu reputação de SemNomes em Aprenda A Fazer Novas Quests   
    Qualquer dúvida posta q eu ajudo!
  4. Upvote
    Rafix recebeu reputação de raphakiller em Aprenda A Fazer Novas Quests   
    Primeiro, vc vai na pasta de seu ot, C:\Documents and Settings\Fulano\Desktop\ots\data\actions\scripts, nesse lugar ai, data, actions,scripts, e vai no chest.lua, manda editar e vai aparecer isso:
    function onUse(cid, item, frompos, item2, topos)
    -- bright sword quest
    if item.uid == 5001 then
    queststatus = getPlayerStorageValue(cid,5001)
    if queststatus == -1 then
    if getPlayerLevel(cid) >= 20 then
    doPlayerSendTextMessage(cid,22,"You have found Bright Sword.")
    doPlayerAddItem(cid,3233,1)
    setPlayerStorageValue(cid,5001,1)
    else
    doPlayerSendTextMessage(cid,22,"You need level 20 to get prize.")
    end
    else
    doPlayerSendTextMessage(cid,22,"It is empty.")
    end
    Isso eh uma quest, a da bright sword, tem muitas quests lah, vc vai na ultima e copia, da enter e cola, ai vai aparece lah uns negocio q vc tem q mudar,eh muito importante!
    Exemplo: -- 10k quest
    elseif item.uid == 5026 then(5026=numero da quest,tipo se a ultima foi 5024, a proxima eh 5025, lembrando q eh ateh 5999)
    queststatus = getPlayerStorageValue(cid,5026)(5026=numero da quest,tipo se a ultima foi 5024, a proxima eh 5025, lembrando q eh ateh 5999, muda isso tbm
    if queststatus == -1 then(Dexa assim)
    if getPlayerLevel(cid) >= 15 then(Level requerido para pegar o prêmio) doPlayerSendTextMessage(cid,22,"You have found 10k.")(Mensagem que aparece na tela quando o player completa a quest) doPlayerAddItem(cid,2981,1)(2981, id do item que vai ganhar na questsoh ir no itens.xmle editar e procurar com ctrl+f) setPlayerStorageValue(cid,5026,1) (5026,novamente o numero da quest) else
    doPlayerSendTextMessage(cid,22,"You need level 15 to get prize.") (Mensagem que aparece quando o player naum tem o level necessário para completar a quest) end
    else
    doPlayerSendTextMessage(cid,22,"Its empty.") (Mensagem que aparece quando o player ja completou a quest) end
    end
    return 1
    end (O Primeiro End,eh o final da quest, mas kada vez q vc criar uma nova quest tem q deletar os proximos end e o return 1 e colocar na ordem no final dessa quest)
    Bom, depois disso, abra o mapeditor, colokeos respawms dos bixos desejados pra quest, e o bau, clike com o botao direito no baú, e vai em poperties, coloca lah:
    Action id: 5025 (ou o numero da quest)
    Unique id: 5025 (ou o numero da quest)
    Entao feche, e salve, abra seu server e va no baú e pegue o item, depois de matar os bixos eh claro ,
    Bom, espero ter ajudado
    Atenciosamente, Rafix
    Qualquer duvida posta ae!
    ----------------------Edit---------------------
    Como fazer quest de escolha (OPCIONAL)
    Agora para quem quier aprender como faz baus estilo o da annihilator, 2 baus ou mais, e vc só pode pegar um item, irei ensinar agora. (a pedidos)
    é bem simples, vou tentar explicar como funfa e vou postar exemplo.
    nao tem o script inicial postado aqui? pronto, se for 2 baus vc junta 2 scripts em um só, se for 4, 4 scripts em um só, sendo que quando se faz isso se adiciona else antes dos outros if.
    vou fazer um exemplo com 3 baus ok?
    vamos lá.
    -- Tutorial de Quest by Neto =] --
    function onUse(cid, item, frompos, item2, topos)
    if item.uid == X¹ then --primeiro bau--
    queststatus = getPlayerStorageValue(cid,Y)
    if queststatus == -1 or queststatus == 0 then
    doPlayerSendTextMessage(cid,22,"Você achou um(a) Z¹")
    item_uid = doPlayerAddItem(cid,ID¹,Q)
    setPlayerStorageValue(cid,Y,1)
    else
    doPlayerSendTextMessage(cid,22,"O baú está vazio.")
    end
    elseif item.uid == X² then --segundo bau--
    queststatus = getPlayerStorageValue(cid,Y)
    if queststatus == -1 or queststatus == 0 then
    doPlayerSendTextMessage(cid,22,"Você achou um(a) Z²")
    item_uid = doPlayerAddItem(cid,ID²,Q)
    setPlayerStorageValue(cid,Y,1)
    else
    doPlayerSendTextMessage(cid,22,"O baú está vazio.")
    end
    elseif item.uid == X³ then --terceiro bau--
    queststatus = getPlayerStorageValue(cid,Y)
    if queststatus == -1 or queststatus == 0 then
    doPlayerSendTextMessage(cid,22,"Você achou um(a) Z³")
    item_uid = doPlayerAddItem(cid,ID³,Q)
    setPlayerStorageValue(cid,Y,1)
    else
    doPlayerSendTextMessage(cid,22,"O baú está vazio.")
    end
    else
    return 0
    end
    return 1
    end
    Para configurar é bem simples, é igual a um script normal, vc tem que preencher as variaves normalmente.
    nota: vc vai notar uma diferença neste script, alem do elseif, vc pode ver que tem variaves diferentes assim: X¹, X² e X³.
    vou ensinar como vc vai configurar.
    o X é unique id, vc vai configurar como em um script normal, só que x¹ é diferente de x² que é diferente de x³.
    O mesmo se aplica aos Z's, aos ID's, note que nao tem varios "Y", ou seja, o Y do primeiro bau é = ao do segundo e = ao do terceiro.
    --Partindo para o exemplo pratico--
    eu aconselho vc a fazer os UNIQUEIDS seguidos como no exemplo pratico.
    X¹ = 3000
    X² = 3001
    X³ = 3002
    Y = 3000.
    Z¹ e ID¹ = Magic Sword (2400)
    Z² e ID² = SCA (2431)
    Z³ e ID³ = TH (2421)
    PS: todos estes ids sao para 7.4, nao sei os de 7.5 decorados.
    --Substituindo as variaveis--
    -- Tutorial de Quest by Kinho =] --
    function onUse(cid, item, frompos, item2, topos)
    if item.uid == 3000 then --primeiro bau--
    queststatus = getPlayerStorageValue(cid,3000)
    if queststatus == -1 or queststatus == 0 then
    doPlayerSendTextMessage(cid,22,"Você achou um(a) Magic Sword")
    item_uid = doPlayerAddItem(cid,2400,1)
    setPlayerStorageValue(cid,3000,1)
    else
    doPlayerSendTextMessage(cid,22,"Vc ja pegou um dos 3 items.")
    end
    elseif item.uid == 3001 then --segundo bau--
    queststatus = getPlayerStorageValue(cid,3000)
    if queststatus == -1 or queststatus == 0 then
    doPlayerSendTextMessage(cid,22,"Você achou um(a) Stonecutter Axe")
    item_uid = doPlayerAddItem(cid,2431,1)
    setPlayerStorageValue(cid,3000,1)
    else
    doPlayerSendTextMessage(cid,22,"Vc ja pegou um dos 3 items.")
    end
    elseif item.uid == 3002 then --terceiro bau--
    queststatus = getPlayerStorageValue(cid,3000)
    if queststatus == -1 or queststatus == 0 then
    doPlayerSendTextMessage(cid,22,"Você achou um(a) Thunder Hammer")
    item_uid = doPlayerAddItem(cid,2421,1)
    setPlayerStorageValue(cid,3000,1)
    else
    doPlayerSendTextMessage(cid,22,"Vc ja pegou um dos 3 items.")
    end
    else
    return 0
    end
    return 1
    end
    Créditos: Boladao
  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...