Ir para conteúdo

DuuhCarvalho

Conde
  • Total de itens

    988
  • Registro em

  • Última visita

  • Dias Ganhos

    21

Posts postados por DuuhCarvalho

  1. Agora, wevertonvrb disse:

    sim testei mas não acontece nada, sem erro tambem

    sim fiz tudo isso aee e não deu erro mas também n funcionou

     

    é pokemon né?

     

    talvez o parametro corpse não retorne nada ;s

    vamos para os teste..

    quando alguém morre, e o corpse ta no chão, vc da look com o god e não tem nenhuma actionid no corpse? o correto é aparecer a actionid

     

    substitui por esse...

    function onDeath(cid, corpse, deathList)print("morreu")  if corpse.uid > 0 then	print("entrou no if do corpse")    doItemSetAttribute(corpse.uid, "aid", 12526)  endreturn trueend

    e vê oq printa na distro quando alguém morre

  2. Em 03/05/2017 at 21:57, wevertonvrb disse:

     

    sim testei mas não acontece nada, sem erro tambem

     

    o script que eu te enviei é em creaturesctips, você colocou a tag em creaturescripts.xml e registro em onlogin?

    pq dessa forma ai, com o script que te postei, todo player ou monster que morrer, ao criar o corpse, o script vai adicionar uma actionid no corpse.

    dai você só vai ter que colocar essa actionid em action.xml e pronto..

     

    entendeu?

  3. Em 28/04/2017 at 18:55, wevertonvrb disse:

    ok entendido mas surgiu uma duvida

     eu tenho q adicionar essa tag em todos os corpos??

    <attribute key="corpseType" value="blood" />

    pois os corpos dos pokes não tem isso 

    <item id="9867" article="a" name="fainted magcargo">

            <attribute key="containerSize" value="10" />

            <attribute key="decayTo" value="0" />

            <attribute key="duration" value="55" />

        </item>

    oque faz o corpo ser identificado como corpo é a palavra fainted no nome

     

    não mano, nem sei da onde você tirou essa tag..

    esse script ai que respondi, vai adicionar uma actionid para todo corpse 

    e em actions vc usa o mesmo actionid para rodar o script..

    não estou mais entendendo oq vc quer

  4. Em 26/04/2017 at 17:29, wevertonvrb disse:

    sim entendi mas não tenho conhecimento suficiente para criar tal script

     

    function onDeath(cid, corpse, deathList)  if corpse.uid > 0 then    doItemSetAttribute(corpse.uid, "aid", 12526)  endreturn trueend

    fiz essa base pra você, coloca em creaturescripts

    e em action coloca a mesma action id que está ai na parte

    doItemSetAttribute(corpse.uid, "aid", 12526)

    se quiser pode mudar.

  5. Spoiler
    33 minutos atrás, CalistoKing disse:

    Belo tutorial eu entendi basicamente tudo, só que quando fui tentar fazer o script não entendi por que o storage não funcionou quando pisava no tile :/

     

    Como era para funcionar

     

      Ocultar conteúdo

     

     


    Você pisa em um X Tile                 oque acontece : Você recebe um x storage, recebe uma mensagem e o monstro nasce em x localização.

     

    Você tenta pisar novamente           oque acontece : Você recebe a mensagem que não pode mais respawnar o monstro.
     

     

     

     

    Script

     

      Ocultar conteúdo

     

     


    function onStepIn(cid, item, pos)
        
        
        if getPlayerStorageValue(cid, 4445) then
            doPlayerSendTextMessage(cid, 25, "Você já summonou o Frenzy Boar!")
        end
        if isPlayer(cid) then
        if getTileThingByPos(cid, {x=1111,y=1030,z=7}) then
            doCreateMonster("Frenzy Boar", {x=1111,y=1031,z=7})
            setPlayerStorageValue(cid, 4445)
            doPlayerSendTextMessage(cid, 25, "Você summonou um Frenzy Boar!")
        end
        end

        return true
    end
     

     

     

     

    No movements.xml

     

      Mostrar conteúdo oculto

    <movevent type="StepIn" uniqueid="15667" event="script" value="piso.lua"/>

     

     

    Oque acontece

    O script funciona pra summonar o monstro e receber a mensagem que nasceu, mas na parte da storage que era para verificar não sei oque está acontecendo que continua a summonar.

     

    Oque a de errado no script?

     

     

     

     

    Muito bom, a questão da storage é que você esqueceu 2 coisinhas:
    1º na parte:

    setPlayerStorageValue(cid, 4445)

    você esqueceu o param de valor, ou seja, o valor que vai ser atribuído a storage 4445. 

    Exemplo: setPlayerStorageValue(cid, 4445, 1)  -- nesse caso foi setado o valor 1 na storage 4445.

     

    2º na checagem:

    if getPlayerStorageValue(cid, 4445) then        doPlayerSendTextMessage(cid, 25, "Você já summonou o Frenzy Boar!")end

    já que eu setei a storage para 1 conforme expliquei acima, eu tenho que checar se o valor da storage é igual a 1.

    Exemplo:  if getPlayerStorageValue(cid, 4445) == 1 then   -- nesse caso se a storage 4445 tiver o valor 1, vai entrar no if.

    detalhe para que ele não entre nesse if e depois entre no outro if, utilize um return, exemplo:

    if getPlayerStorageValue(cid, 4445) == 1 then       return doPlayerSendTextMessage(cid, 25, "Você já summonou o Frenzy Boar!")end

    existe também outro possibilidade, que eu prefiro, estude o código abaixo:

    Spoiler
    function onStepIn(cid, item, pos)    if isPlayer(cid) then        if getPlayerStorageValue(cid, 4445) ~= 1 then            if getTileThingByPos(cid, {x=1111,y=1030,z=7}) then                doCreateMonster("Frenzy Boar", {x=1111,y=1031,z=7})                setPlayerStorageValue(cid, 4445, 1)                doPlayerSendTextMessage(cid, 25, "Você summonou um Frenzy Boar!")            end        else            doPlayerSendTextMessage(cid, 25, "Você já summonou o Frenzy Boar!")        end    endreturn trueend 

    lendo o código..

     se é player(cid) então    se a storage 4445 do player(cid) é diferente de 1 então        ...    senão --(else)        mandar msg Você já summonou o Frenzy Boar    fimfim

     

     

    : D

     

  6. 14 horas atrás, wevertonvrb disse:

    talvez uma creaturescript

     

    pode ser, não sei se entendi direito...

    mas você pode criar uma creaturescript para adicionar uma uniqueid ou actionid, em todo corpse..

    e em action colocar a tag com a mesm actionid que é adicionado nos corpse, e dentro do codigo lua a condição do nome... 

     

    entendeu?

  7. 22 horas atrás, boxxer321 disse:

    Pessoal, tem um script aqui que ta faltando coisa para adicionar. alguem ajuda?

     

      Ocultar conteúdo
    1.  
    2. local p = {}
    3.  
    4. function onThink(interval, lastExecution, thinkInterval)
    5.   for _, name in ipairs(Game.getPlayers()) do
    6.     local player = Player(name)
    7.     local guid = player:getGuid()
    8.     local maxCap, freeCap = player:getCapacity(), player:getFreeCapacity()
    9.     if not p[guid] or p[guid] ~= freeCap then
    10.         local delta = freeCap / (maxCap * 0.01) * (player:getBaseSpeed() * 0.01)
    11.         player:changeSpeed(-player:getSpeed() + ((delta <= 220) and 220 or delta))
    12.         p[guid] = freeCap
    13.     end
    14.   end
    15.   return true
    16. end

     

     

    explicar melhor amigo, o que você deseja? o que quer que seja adicionado?

  8. 17 minutos atrás, Tonyyx disse:

     

     

    vlw funcionou mais tam bem to com problema nesse script olha o error

    [14:35:00.459] [Error - MoveEvents Interface] [14:35:00.459] data/movements/scripts/closingdoor.lua:onStepOut[14:35:00.459] Description: [14:35:00.459] (luaDoTransformItem) Item not found

    pode concerta pra min vou deixa o script ae

     

    closingdoor.lua

    function onStepOut(cid, item, position, fromPosition)	local newPosition = {x = position.x, y = position.y, z = position.z}	if(isInArray(verticalOpenDoors, item.itemid)) then		newPosition.x = newPosition.x + 1	else		newPosition.y = newPosition.y + 1	end	doRelocate(position, newPosition)	local tmpPos = {x = position.x, y = position.y, z = position.z, stackpos = -1}	local tileCount = getTileThingByPos(tmpPos)	local i = 1	local tmpItem = {uid = 1}	while(tmpItem.uid ~= 0 and i < tileCount) do		tmpPos.stackpos = i		tmpItem = getTileThingByPos(tmpPos)		if(tmpItem.uid ~= item.uid and tmpItem.uid ~= 0 and isMoveable(tmpItem.uid)) then			doRemoveItem(tmpItem.uid)		else			i = i + 1		end	end	doTransformItem(item.uid, item.itemid - 1)	return trueend

     

     

     

    Verifica o id da porta aberta e fechada;

  9. function onThink(cid, interval)    if isPlayer(cid) then        if (getTilePzInfo(getCreaturePosition(cid))) then             if getCreatureHealth(cid) < getCreatureMaxHealth(cid) then                            doCreatureAddHealth(cid, getCreatureMaxHealth(cid))                doRemoveCreature(cid)            end        end    endend

     

  10. Faço das palavras do Bennyyw as minhas palavras. REP- é desnecessário '-'

    E referente a REP+, por qual outro motivo um membro vai ajudar o outro se não por rep+ (status, e no momento até prêmios).  

    Peço ao membro Crypter que não deixe de ajudar por esse motivo, entendo sua revolta.  

    Beijos.

  11. testa isso aqui e manda o q printou :

     

    Spoiler

    local chave = 1020 --storage usada para marcar o dia de login do player. 
    local skill_nome = {[0]="First",[1]="Club",[2]="Sword",[3]="Axe",[4]="Distance",[5]="Shield",[6]="Fishing"} 
    local regalo = { 
       -- Obs.: Os prêmios são dados por vocação. 
       -- Premiação diária.  
       _diario = { 
    --[id] = {[dia]={[id] = quantidade}} 
      [1] =   {[1]={[2160]=5},
               [2]={[2160]=10},
               [3]={[2160]=15},
               [4]={[2160]=20},
               [5]={[2160]=30},
               [6]={[2160]=40},
               [7]={[2160]=50, [15301]=1}}, 
       },  
       -- Premiação semanal. 
       _semanal = { 
    --[id] ={[semana]={[id] = quantidade}} 
      [1] =   {[1]={[2161]=1, [15301]=10},
               [2]={[2161]=1, [2160]=50, [15301]=15},
               [3]={[2161]=1, [2160]=75, [15301]=20},
               [4]={[2161]=1, [2161]=1, [15301]=30}},
               
       }, 
       -- Premiação mensal. 
       _mensal = { 
    --[id] = {[mes]={[id] = quantidade}} 
      [1] =   {[1]={[2161]=8,  [15471]=8,  [15301]=100, [15301]=50, [14249]=1},
               [2]={[2161]=13, [15471]=18, [15301]=100, [15301]=60, [14249]=1},
               [3]={[2161]=18, [15471]=28, [15301]=100, [15301]=70, [14249]=1},
               [4]={[2161]=23, [15471]=38, [15301]=100, [15301]=80, [14249]=1},
               [5]={[2161]=28, [15471]=48, [15301]=100, [15301]=90, [14249]=1},
               [6]={[2161]=33, [15471]=58, [15301]=100, [15301]=100, [14249]=1, [15577]=1}},
       }, 

     
    function onLogin(cid) 
    local dia_atual, ultimo_dia = tonumber(os.date("%d")),tonumber(os.date("%d",getPlayerLastLogin(cid))) 
    print("storage = "..getPlayerStorageValue(cid, chave))
    print(type("tipo = "..getPlayerStorageValue(cid, chave)))
    local dia_store, voc = getPlayerStorageValue(cid, chave) < 1 and 1 or getPlayerStorageValue(cid,chave), getPlayerVocation(cid)
    local receive_str = "**Premio por Login**" 
     
       if(ultimo_dia < dia_atual) or (ultimo_dia ~= dia_atual and dia_atual == 1)then 
          if(dia_atual-ultimo_dia == 1 or dia_atual == 1)then 
             for periodo, str in pairs(regalo) do 
                if(periodo == "_semanal") and not((dia_store/7)%2 == 0 or (dia_store/7)%2 == 1) then 
                elseif(periodo == "_mensal") and not((dia_store/30)%2 == 0 or (dia_store/30)%2 == 1) then 
                else 
                   receive_str = receive_str.."\n\n>Premio d"..((periodo == "_diario") and "o dia "..dia_store or (periodo == "_semanal") and "a semana" or "o mes")..": " 
                   for k, v in pairs(str[voc] and str[voc][(periodo == "_diario" and dia_store or periodo == "_semanal" and dia_store/7 or dia_store/30)]) do 
                      if(SKILL_IDS[k])then 
                         doPlayerAddSkillTry(cid, SKILL_IDS[k], v) 
                         receive_str  = receive_str.."\n>>"..v.." pontos de "..skill_nome[sKILL_IDS[k]].." | " 
                      elseif(k == "exp")then 
                         receive_str  = receive_str.."\n>>"..v.." pontos de experiencia | " 
                         doPlayerAddExperience(cid,v) 
                      elseif(tonumber(k) and k > 1000)then 
                         receive_str = receive_str.."\n>>"..v.." "..getItemNameById(k).." | " 
                         doPlayerAddItem(cid, k, v, false) 
                      end 
                   end 
                end 
             end 
             setPlayerStorageValue(cid,chave,dia_store+1) 
          else 
             setPlayerStorageValue(cid,chave,2) 
             for item, quant in pairs(regalo._diario[voc][1]) do -- Apenas premio diário. 
                doPlayerAddItem(cid, item, quant, false) 
             end 
          end 
          doShowTextDialog(cid, 2523, receive_str) 
       end 
       return true 
    end

     

  • Quem Está Navegando   0 membros estão online

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