Histórico de Curtidas
-
luccagomes recebeu reputação de zinaorkut em Alguém consegue fazer o NG ler um Cliente Proprio de Otserver ?Easy, me passa tudo por PM eu arrumo pra vc =)
-
luccagomes deu reputação a MaTTch em (Resolvido)[PEDIDO] Script que faz com que a Spell crie Potions.Simples.
<conjure name="Create Heal Great Potion" words="create heal great potion" lvl="100" mana="10000" conjureId="2686" conjureCount="1" aggressive="0" maglv="0" soul="5" prem="0" function="conjureItem"> <vocation id="2"/> </conjure> conjureId é o itemid do item que vai criar.
conjureCount é a quantidade que vai criar.
-
luccagomes deu reputação a MaTTch em (Resolvido)% de dano nos equips<attribute key="increasemagicpercent" value="110" /> Você precisa sempre por 100 + a % de dano que quer, no caso 110 = 10%.
-
luccagomes deu reputação a MaTTch em (Resolvido)% de dano nos equipsTambém não tem como, só criando.
-
luccagomes deu reputação a MaTTch em Como diminuir a quantidade de monstrosNão entendi, você quer o respawn de todos os monstros mais rápido ou mais lento?
-
luccagomes deu reputação a MaTTch em [3777]Monstros não andam em novos corpses (50 reps)Se quer permanecer com o rev3777 então pegue os seguintes arquivos da rev3884:
configmanager.cpp
creature.cpp
creature.h
game.cpp
e substitua pelo os da rev3777. Os erros que forem surgindo você vai ter que ir arrumando.
-
luccagomes deu reputação a MaTTch em (Resolvido)[Duvida] Healing SourceColoca o script como código e depois coloca entre spoilers
-
luccagomes deu reputação a MaTTch em (Resolvido)[Duvida] Healing SourceNotepad++
-
luccagomes deu reputação a MaTTch em (Resolvido)[Duvida] Healing Source
-
luccagomes deu reputação a MaTTch em (Resolvido)[Duvida] Healing SourcePosta a função bool Game::combatChangeHealth aqui.
-
luccagomes deu reputação a MaTTch em (Resolvido)[Duvida] Healing SourceEm game.cpp, procure por:
bool Game::combatChangeHealth dentro dessa função, procure por:
if(g_config.getBool(ConfigManager::SHOW_HEALING_DAMAGE) && !target->isGhost() && (g_config.getBool(ConfigManager::SHOW_HEALING_DAMAGE_MONSTER) || !target->getMonster())) e substitua por:
if(g_config.getBool(ConfigManager::SHOW_HEALING_DAMAGE) && !target->isGhost() && (g_config.getBool(ConfigManager::SHOW_HEALING_DAMAGE_MONSTER) || !target->getMonster())) { int32_t realHeal = healthChange; if((realHeal + target->getHealth()) > target->getMaxHealth()) realHeal = (target->getMaxHealth() - target->getHealth()); if(realHeal > 0) { char buffer[20]; sprintf(buffer, "+%d", realHeal); const SpectatorVec& list = getSpectators(targetPos); if(combatType != COMBAT_HEALING) addMagicEffect(list, targetPos, MAGIC_EFFECT_WRAPS_BLUE); addAnimatedText(list, targetPos, COLOR_GREEN, buffer); } } OBS: Não testei, apenas fiz em base dos meus conhecimentos.
-
luccagomes deu reputação a luanluciano93 em (Resolvido)[SUPORTE] Script quest's bugandoTeste ..
-
luccagomes deu reputação a Wakon em [AJUDA] Script quest não ta rodando diretoQual erro aparece?
-
luccagomes deu reputação a p e o p l e em Como transformar item em BP?Você habilitou a opção Pickupable no item.otb ?
-
luccagomes deu reputação a elton123 em (Resolvido)[PEDIDO] Backpack que acrescenta CAPdeve ser tag
tenta assim
<movevent type="Equip" itemid="1;2;3;4;5;6;7" slot="backpack" event="script" value="cap123.lua"/> <movevent type="DeEquip" itemid="1;2;3;4;5;6;7" slot="backpack" event="script" value="cap123.lua"/> coloca id de uma back dps ; dps outro id sucessivamente
-
luccagomes deu reputação a elton123 em duvida movementsbom eu não uso muito movements agora comecei usar um pouco mais e descobrir que tem um bug
ele roda 3 vezes o onEquip ai em baixo criei um bloqueio e tal mais gostaria de saber como arrumar nas sources
local block = 0 function onEquip(cid, item, slot) block = block+1 if block == 3 then doPlayerSendTextMessage(cid,19,"Usando O Item") block = 0 end return true end function onDeEquip(cid, item, slot) return doPlayerSendTextMessage(cid,19,"Retirei O Item") and true end se não entendeu muito bem roda esse script aqui de baixo
function onEquip(cid, item, slot) doPlayerSendTextMessage(cid,19,"Usando O Item") return true end function onDeEquip(cid, item, slot) return doPlayerSendTextMessage(cid,19,"Retirei O Item") and true end repare que a message usando o item roda 3 vezes o certo não tinha que ser só uma vez?
tag
<movevent type="Equip" itemid="2525" event="script" value="arquivo.lua"/> <movevent type="DeEquip" itemid="2525" event="script" value="arquivo.lua"/> na minha tag eu usei item 2525
-
luccagomes deu reputação a elton123 em (Resolvido)duvida poketibia basebom galera gostaria de saber qual melhor poketibia atualmente para usar como base com source
é só isso mesmo espero que alguém que tenha poketibia com source possa me indicar...
-
luccagomes deu reputação a elton123 em duvida [otc] depois da compilaçãobom minha duvida é a seguinte eu seguir esse tutor como compilar otclient com
Microsoft Visual Studio 2013
link
http://www.tibiaking.com/forum/topic/45996-otc-compilando-otclient-com-microsoft-visual-studio-2013/?p=266516
deu certo compilou só acho que não compilo como deveria ter sido
ai apareceu
otclient.exe
em
otclient-master\vc12\Release
e pareceu essas coisas
imagem
ai eu peguei otclient.exe
coloquei em
otclient-master
e clickei nele ai eu
to com um problema
o meu da erro de dll
essas
OpenAL32
msvcr71
luajit
libeay32
glew32
physfs
eu resolvi as faltas das dll
agora da esse erro
e não abre
espero que alguém saiba resolver
-
luccagomes deu reputação a elton123 em (Resolvido)[PEDIDO] Backpack que acrescenta CAPcap123
local block = 0 local capacidade = 500 -- aqui coloca quanto que vai almentar function onEquip(cid, item, slot) block = block+1 if block == 3 then doPlayerSetMaxCapacity(cid,(getPlayerFreeCap(cid)+capacidade)) block = 0 end return true end function onDeEquip(cid, item, slot) doPlayerSetMaxCapacity(cid,(getPlayerFreeCap(cid)-capacidade)) return true end TAG
<movevent type="Equip" itemid="9075-9077" slot="backpack" event="script" value="cap123.lua"/> <movevent type="DeEquip" itemid="9075-9077" slot="backpack" event="script" value="cap123.lua"/> -
luccagomes recebeu reputação de Vodkart em [Sistema] Battlefield Event! V.1vodkart não tinha visto que vc pediu sugestão
faz uma versão 2.0, só com uma edição
primeiro vou te explicar pq não uso seu script... Fica mt monotono, toda vez war no msm lugar
então a sugestão pra v2.0 era colocar varios lugares configuraveis, tipo
14:00 battlefield no mapa deserto, 15:00 battlefield no campo de gelo assim ia ficar muito dificel de enjoar, oq vc acha?
-
luccagomes deu reputação a Vodkart em [Sistema] Battlefield Event! V.1otimizei o sistema
removi 75 linhas
adicionei um arquivo para quando servidor cair com o sistema ligado não bugar
alterei as configurações e premios...
só, ngm deu sugestão qndo eu falei que ia refazer o sistema
-
luccagomes deu reputação a Wakon em (Resolvido)NPCs de bless [um rep por cada]Isso acontece pois você está tentando calcular o valor do level fora da callback, então cid não está definido.
NPC:
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) -- TAB -- local t = { palavras = {"bless", "first", "first bless"}, -- Palavras chaves para começar o dialogo. bless = 2, -- Numero da bless {1 a 5}. level = 50, -- Level necessário. price = getPlayerLevel(cid) * 250 -- Preço da bless. } -- TAB -- if(not npcHandler:isFocused(cid)) then return false end local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid msg = msg:lower(); if isInArray(t.palavras, msg) then if getPlayerBlessing(cid, t.bless) == false then if getPlayerLevel(cid) >= t.level then selfSay("Você deseja receber a benção The Spiritual Shielding por ".. t.price .." golds coins?", cid) talkState[talkUser] = 1 else selfSay("Você precisa ser level ".. t.level .. " para receber esta benção.", cid) end else selfSay("Você já tem essa benção.", cid) end elseif msgcontains(msg, "yes") then if talkState[talkUser] == 1 then if doPlayerRemoveMoney(cid, t.price) then selfSay("Você recebeu a benção The Spiritual Shielding.", cid) doPlayerAddBlessing(cid, t.bless) talkState[talkUser] = 0 else selfSay("Você não tem ".. t.price .." golds coins.", cid) talkState[talkUser] = 0 end end elseif msgcontains(msg, "no") then if talkState[talkUser] == 1 then selfSay("Ok...", cid) end end end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) Talk:
local bless = {1, 2, 3, 4, 5} function onSay(cid, words, param) local cost = getPlayerLevel(cid) * 1500 if isPremium(cid) == FALSE then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Purchase at the NPC, only VIP players can use this command!") return TRUE end for i = 1, table.maxn(bless) do if(getPlayerBlessing(cid, bless[i])) then doPlayerSendCancel(cid, "You have all blesses.") return TRUE end end if(doPlayerRemoveMoney(cid, cost) == TRUE) then for i = 1, table.maxn(bless) do doPlayerAddBlessing(cid, bless[i]) end doCreatureSay(cid, "BLESS" ,19) doSendMagicEffect(getPlayerPosition(cid), 29) else doPlayerSendCancel(cid, "You dont have money.") end return TRUE end -
luccagomes deu reputação a Wakon em Adicionar/remover premium por comando!Fala ai galera do TK, estou trazendo esse script que não encontrei no fórum e achei que fosse ser util pra alguém, então resolvi postar.
Script testado em 0.4/0.3.6, provavelmente não funciona em TFS 1.x!
Para saber os comandos, basta digitar a talkaction sem nenhum parâmetro e uma janela com os comandos irá abrir.
Vá em "Data/talkactions/scripts" copie e cole 1 arquivo .lua, renomeie para addpremmy.lua e coloque isso:
function onSay(cid, words, param) local t = string.explode(string.lower(param), ",") local call, name, day = t[1], t[2], t[3] local player, keys = getPlayerByName(name), {"add", "remove", "check"} if not isInArray(keys, call) or param == '' or name == nil then return doPlayerPopupFYI(cid,"Está com problemas?\nAprenda os comandos!\n---------------\nAdicionar premium:\n/pa ".. keys[1] ..", player, days\n/pa ".. keys[1] ..", Wakon, 30\n---------------\nRemover premium:\n/pa ".. keys[2] ..", player, days\n/pa ".. keys[2] ..", Wakon, 30\n---------------\nVer Premium:\n/pa ".. keys[3] ..", player\n/pa check, Wakon\n---------------") elseif not isPlayer(player) then return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, 'O jogador não está online ou não existe.') end if call == keys[1] then doPlayerAddPremiumDays(player, day) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, 'Foram adicionados '.. day ..' dias de premium ao jogador '.. name ..'.') doPlayerSendTextMessage(player, MESSAGE_EVENT_ADVANCE, 'Você recebeu '.. day ..' premium days de um membro da equipe.') elseif call == keys[2] then if getPlayerPremiumDays(player) > 0 then doPlayerRemovePremiumDays(player, day) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, 'Foram removidos '.. day ..' dias de premium do jogador '.. name ..'.') else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, 'Esse jogador não possui nenhum dia de premium.') end elseif call == keys[3] then if isPremium(player) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, 'O jogador '.. name ..' tem '.. getPlayerPremiumDays(player) ..' dias de premium.') else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, 'O jogador '..name ..' é free account.') end end return true end Em "Data/talkactions", abra o arquivo talkactions.xml e coloque essa tag:
<talkaction log="yes" words="/pa" access="5" event="script" value="addpremmy.lua" /> Créditos: Wakon
-
luccagomes deu reputação a Wakon em Alterar storage por comando: /storage, key, value[Comando testado em TFS 0.4]
Fala ai pessoal, estou trazendo hoje um comando pra vocês alterarem a storage do player sem precisar acessar a database.
Esse comando já vem em algumas bases, mas percebi que algumas não tem e resolvi trazer pra vocês, vamos lá.
Vá em "Data/talkactions/scripts" copie e cole um arquivo.lua e renomeie para storage.lua, apague tudo e cole isso:
function onSay(cid, words, param) local t = string.explode(param, ",") if(not t[2]) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Invalid param specified.") return true end local tid = getPlayerByNameWildcard(t[1]) if(not tid or (isPlayerGhost(tid) and getPlayerGhostAccess(tid) > getPlayerGhostAccess(cid))) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Player " .. param .. " not found.") return true end if(not t[3]) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, " [" .. t[1] .. " - " .. t[2] .. "] = " .. getPlayerStorageValue(tid, t[2])) else setPlayerStorageValue(tid, t[2], t[3]) end return true end Agora em "Data/talkactions" abra o arquivo talkactions.xml e adicione a TAG:
<talkaction log="yes" words="/storage" access="4" event="script" value="storage.lua"/> Você pode configurar os groups que poderão usar o comando em acess="4", na tag está definido para GM + usar, caso queira apenas GOD coloque 6.
Comando:
/storage Wakon, 25005, 1
Em vermelho é o nome do personagem.
Em verde é a storage que será alterada.
Em roxo é o valor que a storage terá.
É isso, qual quer dúvida ou erro é só comentar.
-
luccagomes deu reputação a Wakon em (Resolvido)NPCs de bless [um rep por cada]Fiz o script com as configurações que você deve alterar, basta criar 5 NPC's alterando as configurações.
Em "Data/npc/scripts", copie e cole um arquivo.LUA e renomeie para nome_desejado.lua, apague tudo e cole:
local t = { palavras = {"bless", "first", "first bless"}, -- Palavras chaves para começar o dialogo. bless = 1, -- Numero da bless {1 a 5}. level = 50, -- Level necessário. price = 10000 -- Preço da bless. } 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 msg = msg:lower(); if isInArray(t.palavras, msg) then if getPlayerBlessing(cid, t.bless) == false then if getPlayerLevel(cid) >= t.level then selfSay("Você deseja receber a benção The Spiritual Shielding por ".. t.price .." golds coins?", cid) talkState[talkUser] = 1 else selfSay("Você precisa ser level ".. t.level .. " para receber esta benção.", cid) end else selfSay("Você já tem essa benção.", cid) end elseif msgcontains(msg, "yes") then if talkState[talkUser] == 1 then if doPlayerRemoveMoney(cid, t.price) then selfSay("Você recebeu a benção The Spiritual Shielding.", cid) doPlayerAddBlessing(cid, t.bless) talkState[talkUser] = 0 else selfSay("Você não tem ".. t.price .." golds coins.", cid) talkState[talkUser] = 0 end end elseif msgcontains(msg, "no") then if talkState[talkUser] == 1 then selfSay("Ok...", cid) end end end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) Em "Data/npc", copie e cole um arquivo.XML e renomeie para nome_desejado.xml, apague tudo e cole:
<?xml version="1.0" encoding="UTF-8"?> <npc name="NOME_DO_NPC" script="data/npc/scripts/nome_desejado.lua" walkinterval="2000" floorchange="0"> <health now="100" max="100"/> <look type="131" head="22" body="22" legs="22" feet="57" addons="0"/> <parameters> <parameter key="message_greet" value="Bem-vindo, |PLAYERNAME|."/> <parameter key="message_farewell" value="Até mais |PLAYERNAME|!"/> </parameters> </npc> No XML não se esqueça de alterar o nome do script em script="data/npc/scripts/nome_desejado.lua".