Ir para conteúdo

Yan Liima

Diretor
  • Total de itens

    816
  • Registro em

  • Última visita

  • Dias Ganhos

    24

Tudo que Yan Liima postou

  1. Em talkactions crie um arquivo chamado doubleexp.lua, cole isto: function onSay(cid, words, param, channel) local config = { storage = 102590, } if(param == 'cancel') or (param == 'cancelar') then if getGlobalStorageValue(config.storage) > 0 then setGlobalStorageValue(config.storage, -1) doBroadcastMessage("Double Exp cancelado") end return true end param = tonumber(param) if(not param or param < 0) then doPlayerSendCancel(cid, "Digite por quantas horas o evento ira durar") return true end if getGlobalStorageValue(config.storage) - os.time() <= 0 then setGlobalStorageValue(config.storage, os.time()+param*60*60) doBroadcastMessage("Exp bonus ativado + 20% de EXP por "..param.." hora(s)! Aproveite.") end return true end TAG: <talkaction words="/doubleexp" access="5" event="script" value="doubleexp.lua"/> Depois em creaturescript crie um arquivo chamado doubleexp.lua, cole isto: function onKill(cid, target) if isPlayer(cid) and isMonster(target) then if getGlobalStorageValue(102590) - os.time() >= 1 then local exp = getExperienceStage(getPlayerLevel(cid), getVocationInfo(getPlayerVocation(cid)).experienceMultiplier) local count = ((getMonsterInfo(string.lower(getCreatureName(target))).experience*1.2*exp)/2) doPlayerAddExperience(cid, count) addEvent(doSendAnimatedText, 500, getCreaturePosition(cid), '+'..count, math.random(50,60)) doPlayerSendTextMessage(cid, MESSAGE_EVENT_ORANGE, "[DOUBLE XP] Você ganhou 20% a mais de exp.") end else return true end return true end TAG: <event type="kill" name="ExpBonus" event="script" value="doubleexp.lua"/> em login.lua coloque isso: registerCreatureEvent(cid, "ExpBonus") A modificação da porcentagem é na script do creaturescript. 1.2 = 20% de double. Edite da meneira que desejar.
  2. O evento seria ativado pelo Administrador do servidor ou seria ativado automaticamente por X dia configurado?
  3. A questão neste tópico de suporte foi respondida e/ou o autor do tópico resolveu o problema. Este tópico está fechado e foi movido para Suporte - Resolvidos. Se você tiver outras dúvidas, crie um novo tópico.
  4. A questão neste tópico de suporte foi respondida e/ou o autor do tópico resolveu o problema. Este tópico está fechado e foi movido para Suporte - Resolvidos. Se você tiver outras dúvidas, crie um novo tópico.
  5. O pedido neste tópico de foi atendido e/ou o autor do tópico resolveu sua duvida. Este tópico está fechado e foi movido para Pedidos - Resolvidos. Se você tiver outros pedidos, crie um novo tópico.
  6. Esse erro é problema de caractere, vai até a linha mencionada no erro e tente achar o caractere invalido e apague. Refazer a linha seria mais facil.
  7. function onSay(cid, words, param) local charge_price = 25 -- quantidade por carga do item. local itemID = 2673 -- ID do item a ser removido. local slotShield = nil local slotArmor = nil local slotLegs = nil local slotHelmet = nil local slotBoots = nil local slotWeapon = nil local slots = { [1] = {slot=slotHelmet, lib=helmets}, [4] = {slot=slotArmor, lib=armors}, [5] = {slot=slotShield, lib=shields}, [6] = {slot=slotShield, lib=shields}, [7] = {slot=slotLegs, lib=legs}, [8] = {slot=slotBoots, lib=boots} } if weapons[getPlayerSlotItem(cid, CONST_SLOT_RIGHT).itemid] then slotWeapon = CONST_SLOT_RIGHT elseif weapons[getPlayerSlotItem(cid, CONST_SLOT_LEFT).itemid] then slotWeapon = CONST_SLOT_LEFT end if shields[getPlayerSlotItem(cid, CONST_SLOT_RIGHT).itemid] then slotShield = CONST_SLOT_RIGHT elseif shields[getPlayerSlotItem(cid, CONST_SLOT_LEFT).itemid] then slotShield = CONST_SLOT_LEFT end local price = 0 if param == "weapon" then if slotWeapon ~= nil then if (getItemAttribute(getPlayerSlotItem(cid, slotWeapon).uid, "Charges") == "Broken") then price = (weapons[getPlayerSlotItem(cid, slotWeapon).itemid].charge) else price = ((weapons[getPlayerSlotItem(cid, slotWeapon).itemid].charge) - (getItemAttribute(getPlayerSlotItem(cid, slotWeapon).uid, "Charges"))) end if doPlayerRemoveItem(cid, itemID, price*charge_price) then doItemSetAttribute(getPlayerSlotItem(cid, slotWeapon).uid, "Charges", weapons[getPlayerSlotItem(cid, slotWeapon).itemid].charge) setItemName(getPlayerSlotItem(cid, slotWeapon).uid, getItemNameById(getPlayerSlotItem(cid, slotWeapon).itemid)..' [Dur: '.. (getItemAttribute(getPlayerSlotItem(cid, slotWeapon).uid, "Charges")) ..'/'.. weapons[getPlayerSlotItem(cid, slotWeapon).itemid].charge ..']') doPlayerSendTextMessage(cid, 22, "Sua weapon foi reparada.") doSendMagicEffect(getPlayerPosition(cid), 29) else doPlayerSendTextMessage(cid, 23, "Você não possui "..(price*charge_price).." "..getItemNameById(itemID).." para reparar sua weapon.") return true end else doPlayerSendTextMessage(cid, 23, "Seu slot de weapon esta vazio.") end return true end if param == "shield" then if slotShield ~= nil then if (getItemAttribute(getPlayerSlotItem(cid, slotShield).uid, "Charges") == "Broken") then price = (shields[getPlayerSlotItem(cid, slotShield).itemid].charge) else price = ((shields[getPlayerSlotItem(cid, slotShield).itemid].charge) - (getItemAttribute(getPlayerSlotItem(cid, slotShield).uid, "Charges"))) end if doPlayerRemoveItem(cid, itemID, price*charge_price) then doItemSetAttribute(getPlayerSlotItem(cid, slotShield).uid, "Charges", shields[getPlayerSlotItem(cid, slotShield).itemid].charge) setItemName(getPlayerSlotItem(cid, slotShield).uid, getItemNameById(getPlayerSlotItem(cid, slotShield).itemid)..' [Dur: '.. (getItemAttribute(getPlayerSlotItem(cid, slotShield).uid, "Charges")) ..'/'.. shields[getPlayerSlotItem(cid, slotShield).itemid].charge ..']') setItemDefense(getPlayerSlotItem(cid, slotShield).uid, shields[getPlayerSlotItem(cid, slotShield).itemid].def) doPlayerSendTextMessage(cid, 22, "Seu shield foi reparado.") doSendMagicEffect(getPlayerPosition(cid), 29) else doPlayerSendTextMessage(cid, 23, "Você não possui "..(price*charge_price).." "..getItemNameById(itemID).." para reparar seu shield.") return true end else doPlayerSendTextMessage(cid, 23, "Seu slot de shield esta vazio.") end return true end if param == "armor" then i = 4 if slots[i].lib[getPlayerSlotItem(cid, i).itemid] then slots[i].slot = i if (getItemAttribute(getPlayerSlotItem(cid, i).uid, "Charges") == "Broken") then price = (slots[i].lib[getPlayerSlotItem(cid, i).itemid].charge) else price = ((slots[i].lib[getPlayerSlotItem(cid, i).itemid].charge) - (getItemAttribute(getPlayerSlotItem(cid, i).uid, "Charges"))) end if doPlayerRemoveItem(cid, itemID, price*charge_price) then doItemSetAttribute(getPlayerSlotItem(cid, i).uid, "Charges", slots[i].lib[getPlayerSlotItem(cid, i).itemid].charge) setItemName(getPlayerSlotItem(cid, i).uid, getItemNameById(getPlayerSlotItem(cid, i).itemid)..' [Dur: '.. (getItemAttribute(getPlayerSlotItem(cid, i).uid, "Charges")) ..'/'.. slots[i].lib[getPlayerSlotItem(cid, i).itemid].charge ..']') setItemArmor(getPlayerSlotItem(cid, i).uid, slots[i].lib[getPlayerSlotItem(cid, i).itemid].arm) doPlayerSendTextMessage(cid, 22, "Seu armor foi reparado.") doSendMagicEffect(getPlayerPosition(cid), 29) else doPlayerSendTextMessage(cid, 23, "Você não possui "..(price*charge_price).." "..getItemNameById(itemID).." para reparar sua armor.") return true end else doPlayerSendTextMessage(cid, 23, "Seu slot de armor esta vazio.") end return true end if param == "legs" then i = 7 if slots[i].lib[getPlayerSlotItem(cid, i).itemid] then slots[i].slot = i if (getItemAttribute(getPlayerSlotItem(cid, i).uid, "Charges") == "Broken") then price = (slots[i].lib[getPlayerSlotItem(cid, i).itemid].charge) else price = ((slots[i].lib[getPlayerSlotItem(cid, i).itemid].charge) - (getItemAttribute(getPlayerSlotItem(cid, i).uid, "Charges"))) end if doPlayerRemoveItem(cid, itemID, price*charge_price) then doItemSetAttribute(getPlayerSlotItem(cid, i).uid, "Charges", slots[i].lib[getPlayerSlotItem(cid, i).itemid].charge) setItemName(getPlayerSlotItem(cid, i).uid, getItemNameById(getPlayerSlotItem(cid, i).itemid)..' [Dur: '.. (getItemAttribute(getPlayerSlotItem(cid, i).uid, "Charges")) ..'/'.. slots[i].lib[getPlayerSlotItem(cid, i).itemid].charge ..']') setItemArmor(getPlayerSlotItem(cid, i).uid, slots[i].lib[getPlayerSlotItem(cid, i).itemid].arm) doPlayerSendTextMessage(cid, 22, "Sua legs foi reparada.") doSendMagicEffect(getPlayerPosition(cid), 29) else doPlayerSendTextMessage(cid, 23, "Você não possui "..(price*charge_price).." "..getItemNameById(itemID).." para reparar sua legs.") return true end else doPlayerSendTextMessage(cid, 23, "Seu slot de legs esta vazio.") end return true end if param == "boots" then i = 8 if slots[i].lib[getPlayerSlotItem(cid, i).itemid] then slots[i].slot = i if (getItemAttribute(getPlayerSlotItem(cid, i).uid, "Charges") == "Broken") then price = (slots[i].lib[getPlayerSlotItem(cid, i).itemid].charge) else price = ((slots[i].lib[getPlayerSlotItem(cid, i).itemid].charge) - (getItemAttribute(getPlayerSlotItem(cid, i).uid, "Charges"))) end if doPlayerRemoveItem(cid, itemID, price*charge_price) then doItemSetAttribute(getPlayerSlotItem(cid, i).uid, "Charges", slots[i].lib[getPlayerSlotItem(cid, i).itemid].charge) setItemName(getPlayerSlotItem(cid, i).uid, getItemNameById(getPlayerSlotItem(cid, i).itemid)..' [Dur: '.. (getItemAttribute(getPlayerSlotItem(cid, i).uid, "Charges")) ..'/'.. slots[i].lib[getPlayerSlotItem(cid, i).itemid].charge ..']') setItemArmor(getPlayerSlotItem(cid, i).uid, slots[i].lib[getPlayerSlotItem(cid, i).itemid].arm) doPlayerSendTextMessage(cid, 22, "Sua boots foi reparada.") doSendMagicEffect(getPlayerPosition(cid), 29) else doPlayerSendTextMessage(cid, 23, "Você não possui "..(price*charge_price).." "..getItemNameById(itemID).." para reparar sua armor.") return true end else doPlayerSendTextMessage(cid, 23, "Seu slot de boots esta vazio.") end return true end if param == "helmet" then i = 1 if slots[i].lib[getPlayerSlotItem(cid, i).itemid] then slots[i].slot = i if (getItemAttribute(getPlayerSlotItem(cid, i).uid, "Charges") == "Broken") then price = (slots[i].lib[getPlayerSlotItem(cid, i).itemid].charge) else price = ((slots[i].lib[getPlayerSlotItem(cid, i).itemid].charge) - (getItemAttribute(getPlayerSlotItem(cid, i).uid, "Charges"))) end if doPlayerRemoveItem(cid, itemID, price*charge_price) then doItemSetAttribute(getPlayerSlotItem(cid, i).uid, "Charges", slots[i].lib[getPlayerSlotItem(cid, i).itemid].charge) setItemName(getPlayerSlotItem(cid, i).uid, getItemNameById(getPlayerSlotItem(cid, i).itemid)..' [Dur: '.. (getItemAttribute(getPlayerSlotItem(cid, i).uid, "Charges")) ..'/'.. slots[i].lib[getPlayerSlotItem(cid, i).itemid].charge ..']') setItemArmor(getPlayerSlotItem(cid, i).uid, slots[i].lib[getPlayerSlotItem(cid, i).itemid].arm) doPlayerSendTextMessage(cid, 22, "Seu helmet foi reparado.") doSendMagicEffect(getPlayerPosition(cid), 29) else doPlayerSendTextMessage(cid, 23, "Você não possui "..(price*charge_price).." "..getItemNameById(itemID).." para reparar seu helmet.") return true end else doPlayerSendTextMessage(cid, 23, "Seu slot de helmet esta vazio.") end return true end local pricetotal = 0 for i=1, 8 do if slots[i] ~= nil then if slots[i].lib[getPlayerSlotItem(cid, i).itemid] then slots[i].slot = i if (getItemAttribute(getPlayerSlotItem(cid, i).uid, "Charges") == "Broken") then pricetotal = ((slots[i].lib[getPlayerSlotItem(cid, i).itemid].charge) + pricetotal) else pricetotal = (((slots[i].lib[getPlayerSlotItem(cid, i).itemid].charge) - (getItemAttribute(getPlayerSlotItem(cid, i).uid, "Charges"))) + pricetotal) end end end end if slotWeapon ~= nil then if (getItemAttribute(getPlayerSlotItem(cid, slotWeapon).uid, "Charges") == "Broken") then pricetotal = ((weapons[getPlayerSlotItem(cid, slotWeapon).itemid].charge) + pricetotal) else pricetotal = (((weapons[getPlayerSlotItem(cid, slotWeapon).itemid].charge) - (getItemAttribute(getPlayerSlotItem(cid, slotWeapon).uid, "Charges"))) + pricetotal) end end if doPlayerRemoveItem(cid, pricetotal*charge_price) then for i=1, 8 do if slots[i] ~= nil then if slots[i].lib[getPlayerSlotItem(cid, i).itemid] then slots[i].slot = i if isShield(getPlayerSlotItem(cid, i).uid) then setItemDefense(getPlayerSlotItem(cid, i).uid, slots[i].lib[getPlayerSlotItem(cid, i).itemid].def) elseif not isWeapon(getPlayerSlotItem(cid, i).uid) then setItemArmor(getPlayerSlotItem(cid, i).uid, slots[i].lib[getPlayerSlotItem(cid, i).itemid].arm) end doItemSetAttribute(getPlayerSlotItem(cid, i).uid, "Charges", slots[i].lib[getPlayerSlotItem(cid, i).itemid].charge) setItemName(getPlayerSlotItem(cid, i).uid, getItemNameById(getPlayerSlotItem(cid, i).itemid)..' [Dur: '.. (getItemAttribute(getPlayerSlotItem(cid, i).uid, "Charges")) ..'/'.. slots[i].lib[getPlayerSlotItem(cid, i).itemid].charge ..']') end end end if slotWeapon ~= nil then doItemSetAttribute(getPlayerSlotItem(cid, slotWeapon).uid, "Charges", weapons[getPlayerSlotItem(cid, slotWeapon).itemid].charge) setItemName(getPlayerSlotItem(cid, slotWeapon).uid, getItemNameById(getPlayerSlotItem(cid, slotWeapon).itemid)..' [Dur: '.. (getItemAttribute(getPlayerSlotItem(cid, slotWeapon).uid, "Charges")) ..'/'.. weapons[getPlayerSlotItem(cid, slotWeapon).itemid].charge ..']') end doPlayerSendTextMessage(cid, 22, "Seus itens foram reparados.") doSendMagicEffect(getPlayerPosition(cid), 30) else doPlayerSendTextMessage(cid, 23, "Você não possui "..(price*charge_price).." "..getItemNameById(itemID).." para reparar todos os itens.") return true end return TRUE end
  8. Em talkactions/scripts crie um arquivo chamado novas.lua, cole isso dentro: function onSay(cid, words) local msg = [[ NOVIDADES ------ FIIM. ------ ]] doPlayerPopupFYI(cid, msg) return true end TAG: <talkaction words="!novidades" event="script" value="novas.lua"/> Só por as novidades entre [[ e ]].
  9. Hmm... Achei bem interessante, pelo visto o servidor está bem completo. E parabéns ao WebMaster, o site ficou lindo! Na verdade, tenho que parabenizar a equipe toda, ficou show. Espero que o servidor cresça, boa sorte a todos da equipe! xD
  10. O problema é o seguinte, ao ter copiado o script de algum lugar, ele veio com um caractere inválido. E por conta disso da esse ERRO. Sempre que for assim, tente procurar ele e apague. O problema está na linha um como mencionado no erro: Veja o maldito causador de erros de perto: Ao apagar a linha você podera ver ele, e assim removendo ele poderá solucionar o problema. Sobre o Duplicate registered item uid: 19602 Tem mais de uma script utilizando o uid 19602, para concertar isso basta localizar o que está utilizando a mesma uid e trocar para outra. Sua script correta: function onAdvance(cid, skill, oldLevel, newLevel) local config = { [50] = {item = 11639, count = 1}, [100] = {item = 11640, count = 1}, [150] = {item = 2160, count = 30}, [200] = {item = 12618, count = 5}, [250] = {item = 14188, count = 1}, [300] = {item = 14261, count = 50}, [350] = {item = 12227, count = 1}, [400] = {item = 12832, count = 1}, } if skill == 8 then for level, info in pairs(config) do if newLevel >= level and (getPlayerStorageValue(cid, 30700) == -1 or not (string.find(getPlayerStorageValue(cid, 30700), "'" .. level .. "'"))) then doPlayerAddItem(cid, info.item, info.count) doPlayerSendTextMessage(cid, MESSAGE_STATUS_WARNING, "Parabéns, você atingiu o level "..newLevel.." e ganhou "..info.count.." "..getItemNameById(info.item)..".") local sat = getPlayerStorageValue(cid, 30700) == -1 and "Values: '" .. level .. "'" or getPlayerStorageValue(cid, 30700) .. ",'" .. level .. "'" setPlayerStorageValue(cid, 30700, sat) end end end return TRUE end
  11. Amigo, sobre o Zoom eu não sei o que pode ser. Pode ser algum problema com o seu index ou com css. Recomendo pegar um outro site como base e dar uma olhada pra ver se descobre alguma forma de corrigir. Sobre os caractere é simples, abre o seu PHP no qual está com esse problema, abre ele no notepad ++. E basta você mudar a formatação para UTF-8 ou se no caso já estiver, troque para ANSI. Troque e salve.
  12. Fiz por alavanca, a base seria essa, em actions: function onUse(cid, item, frompos, item2, topos) pos = {x=327,y=902,z=7,stackpos=1} -- Pos onde tem que colocar a pokeball pos2 = {x=329,y=904,z=7,stackpos=1} -- Pos onde a nova será criada getpos = getThingfromPos(pos) if item.uid == 7084 and item.itemid == 1945 and getpos.itemid == 2642 then --uniqueID,ID da alavanca,ID da pokeball em que tem que ter. doRemoveItem(getpos.uid, 100) -- Quantidade que irá remover doTransformItem(item.uid,item.itemid+1) doCreateItem(2087,100,pos2) -- Nova pokeball,quantidade elseif item.uid == 7084 then doTransformItem(item.uid,item.itemid-1) else doPlayerSendTextMessage(cid,22,"error.") end return true end <action uniqueid="7084" event="script" value="arquivo.lua"/> Só por o uniqueID 7084 na alavanca.
  13. doRemoveItem e doCreateItem, pois irá remover e criar um item em uma nova pos. Não move-los! Sei exatamente como fazer, porém não sei exatamente como posso fazer para dar X count e retornar a mesma quantidade. Irei tentar pensar em algo.
  14. Para solucionar esse problema é simples! Você está hosteando em sua casa, certo? Provavelmente utiliza dois modem, um padrão(talvez fibra-optica) e o outro é roteador wi-fi, certo? Por conta disso, abrir um servidor utilizando a porta 80 e tentar abrir um website utilizando a porta 80 também, pode dar conflito. Faça as alterações da port do site. Se necessário:
  15. Realmente está muito simples! Não jogo Pokémon deis de quando fechei o meu servidor(na época que os Centurion comandava). Se fosse pra mim voltar a jogar, teria que ser um servidor com coisas novas, diferentes... Entendeu onde quero chegar? Mas não se preocupa não amigo, foca no seu trampo, bota a mente pra trabalhar. Que assim sairá coisas inovadoras, disso você pode ter certeza. Precisando de ajuda sinta-se livre para abrir um tópico de suporte. No que eu puder ajudar estarei ajudando, não só eu como toda a comunidade do Xtibia. Boa sorte com o projeto!
  16. Seguinte, você tem que criar no seu banco de dados na tabela "players" um personagem com o nome final Sample. Exemplo: Yan Sample. Coloca todos os valores corretamente, pois ele será utilizado como base para os jogadores criar novos personagens. Feito isso você terá que alterar no config.php, e deixar de acordo com a da sua tabela players. Veja a seguir: // Aqui seria as vocações disponiveis para criar no site. o 1 seria o ID da vocation, e logo em seguida o nome: $config['vocations'] = array(1=>"Yan Sample"); Para por mais você pode fazer dessa maneira: $config['vocations'] = array(1=>"Yan Sample", 5=>"Yan2 Sample"); Depois você terá que alterar essa parte: $config['newchar_vocations'][0][1] = "Yan Sample"; $config['newchar_vocations'][0][5] = "Yan2 Sample"; O [0] seria o mundo e o [1] ou [5] seria o ID da vocation. Em system/application/views/create.php você pode por as opções para criar no site: <select name="vocation" class="keyboardInput" id="vocation"> <option value="1">Yan</option> <option value="5">Yan2</option> </select> E caso você esteja tentando criar um personagem com o nome "god" recomendo que crie com um nome qualquer e depois altere na database. E tem muitos Modern ACC por ai na net que não funciona corretamente, muitos dão erro ao tentar criar um novo personagem por conta do servidor não estar aberto. Então recomendo tentar criar o Perso com o servidor aberto. Com ips, porta e tudo mais configurado corretamente no config.php, de acordo com o servidor.
  17. No Modern ACC tem um delay de 5 minutos. Você pode alterar esse valor no config.php: $config['statusTimeout'] = 1 + (5 * 60); Creio que se der /save no jogo deve atualizar também. Bom... Verifique se o seu Mundo, IP e porta está configurado corretamente: $config['servers'][0] = array('address'=>'IP', 'port'=>7171, 'vapusid'=>'IP');
  18. Yan Liima

    Ajuda

    Você verificou se o IP e portas estão corretas? em seu config.lua as configs a seguir estão dessa maneira?: sqlType = "mysql" encryptionType = "sha1"
  19. Sim. Se tu desativar o BlackSkull ele só irá pegar o Red. O Black não irá funcionar.
  20. Note que dailyFragsToBlackSkull está retornado com o valor do dailyFragsToRedSkull dailyFragsToBlackSkull = dailyFragsToRedSkull Ou seja ele vai para o valor do dailyFragsToredSkull que seria: dailyFragsToRedSkull = 10 10. Você poderia alterar o Daily , Weekly e Monthly do BlackSkull deixando assim, Ex: dailyFragsToBlackSkull = 20 weeklyFragsToBlackSkull = 40 monthlyFragsToBlackSkull = 70 Não sei por qual motivo, mas o desenvolvedor da TFS colocou por padrão pro BlackSkull seguir o valor do RedSkull. Creio que deixou assim por preguiça. Eu sinceramente não curto o BlackSkull, deixo ele desativado em meu servidor useBlackSkull = false
  21. Só configurar o toPos corretamente.
  22. Tenta trocar: function onTimer() Por: function onTime()
  23. TFS 0.4 tem sim, cuidado para não confundir o items.cpp por item.cpp. Só procurar no items.cpp por: if(Items::dwMajorVersion == 0xFFFFFFFF) E apagar a função toda conforme o tópico ou desabilitar utilizando /* */ Preste sempre atenção nesses detalhes bobos, mas que faz uma grande diferença.
  • Quem Está Navegando   0 membros estão online

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