-
Total de itens
988 -
Registro em
-
Última visita
-
Dias Ganhos
21
Posts postados por DuuhCarvalho
-
-
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?
-
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
-
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.
-
Spoiler33 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
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
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
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:
Spoilerfunction 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
-
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?
-
22 horas atrás, boxxer321 disse:
Pessoal, tem um script aqui que ta faltando coisa para adicionar. alguem ajuda?
-
- local p = {}
-
- function onThink(interval, lastExecution, thinkInterval)
- for _, name in ipairs(Game.getPlayers()) do
- local player = Player(name)
- local guid = player:getGuid()
- local maxCap, freeCap = player:getCapacity(), player:getFreeCapacity()
- if not p[guid] or p[guid] ~= freeCap then
- local delta = freeCap / (maxCap * 0.01) * (player:getBaseSpeed() * 0.01)
- player:changeSpeed(-player:getSpeed() + ((delta <= 220) and 220 or delta))
- p[guid] = freeCap
- end
- end
- return true
- end
explicar melhor amigo, o que você deseja? o que quer que seja adicionado?
-
-
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;
-
Faz um avatar pra mim ? haha
Bem colarinho, estilo Harvey Specter.
Obrigado, beijos ;*
Gostei das sings.
-
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
-
Tópico para discussão...
-
Continuem ...
-
Tópico duplicado.
-
Tópico fechado, se quiser que seu caso seja averiguado crie um tópico em feedback.
Só o que vejo são acusações, mas nada de provas. (de ambas as partes)
Obrigado. -
22 horas atrás, lazarocp disse:
Consegui solucionar , reescrevi tudo direto na codificação ANSI sem converter e não apresentou o erro . Podem fechar o tópico.
Tópico fechado e movidos para Suporte - Resolvidos.
-
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. -
Não faça como os outros. Não abandone.
Ótimo projeto! -
Eu sei que a duvida já foi sanada, mas poderia me dizer a utilidade disso ?
-
iaei bennyyw
-
11 horas atrás, Frenvius disse:
O user dele nem existe mais no forum, pelo que vi aqui, alguem deleto. Fui eu não
Em 23/02/2017 at 20:22, Omega disse:Passei aqui, fui vendo e ele tá banido. Só fiquei curioso, então alguém sabe? Passar bem.
ta passando, então fica *-*
-
Tópico movido para Suporte - Resolvidos.
-
# Editei a estrutura deste tópico e dei um up, é um tutorial bem básico, mas que pode ajudar quem está iniciando.
-
testa isso aqui e manda o q printou :
Spoilerlocal 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 -
Duvida sanada tópico movido para Suporte - Resolvidos.
-
Você pode utilizar :
getItemInfo(itemid).wieldPosition
isso vai retornar o slot do itemid.
Ex:
local item = 2321if (getItemInfo(item).wieldPosition == 3) then doPlayerSendTextMessage(cid, 24, "O item eh uma backpack")end
no caso se o item 2321 for uma backpack o player vai receber a msg.
-
Quem Está Navegando 0 membros estão online
- Nenhum usuário registrado visualizando esta página.
Resolvido ajudem a retirar bug desse script??
em Resolvidos
Postado
é 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