Ir para conteúdo

meubk

Visconde
  • Total de itens

    311
  • Registro em

  • Última visita

  • Dias Ganhos

    8

Tudo que meubk postou

  1. crie um arquivo na pasta creaturescritps/scripts com nome de trade.lua e cole o seguinte código: local items = {123, 456} -- items que não pode dar trade function onTradeAccept(cid, target, item, targetItem) verific = isInArray(items, item.itemid) and false or true for _, itemx in pairs(items) do verific = #getItemsInContainerById(item.uid, itemx) > 0 and false or true end return not verific and doPlayerSendCancel(cid, "Contem items que não podem ser negociados.") and false or verific end function getItemsInContainerById(container, itemid) -- Function By Kydrai local items = {} if isContainer(container) and getContainerSize(container) > 0 then for slot= 0, (getContainerSize(container)-1) do local item = getContainerItem(container, slot) if isContainer(item.uid) then local itemsbag = getItemsInContainerById(item.uid, itemid) for i=0, #itemsbag do table.insert(items, itemsbag[i]) end else if itemid == item.itemid then table.insert(items, item.uid) end end end end return items end abra o arquivo login.lua e antes do return true adicione: registerCreatureEvent(cid, "TradeBlock") e no arquivo creaturescripts.xml adicione a tag : <event type="tradeaccept" name="TradeBlock" event="function" value="trade.lua"/> Isso aê... obs: não testei, pois estou sem pc, qualker erro fala aqui no tópico.
  2. isso não é uma tabela :S local tabela2 = getPlayerLevel(cid) ja seria mais para um tutorial de variavel.
  3. provavelmente é porque o portrait ta tentando retornar o nome do pokemon, de um valor nulo.
  4. é esse o msn: royalrocks@hotmail.com?
  5. provavelmente vai ser nas sources.
  6. testa o de cima , eu atualizei.
  7. bom, existe uma função chamanda onSpawn, que executa toda vez que um monstro nasce, bom aqui o link: onSpawn(cid) OtLand bom ele é apenas para 0.4, o meu server é 0.3.6, eu preciso mto usar ela, e não estou afim de trocar a versão do meu sv, bom quem poder mi ajudar , passando ela pra a versão 0.3.6, seria bom... erros ao compilar: xx\creatureevent.cpp In member function `uint32_t CreatureEvent::executeOnSpawn(Creature*)': xx\creatureevent.cpp could not convert `((Event*)this)->Event::m_scriptData' to `bool' xx\creatureevent.cpp no match for 'operator*' in '*((Event*)this)->Event::m_scriptData' xx\Makefile.win [build Error] [obj//creatureevent.o] Error 1 aguardo respostas ;*
  8. pq ñ fazer diretamente pela vocation , vc escreveu em pekeno para que da mesma vocação não se ataque, ficaria assim: function onCombat(cid, target) if isPlayer(cid) and isPlayer(target) then if getPlayerVocation(cid) == getPlayerVocation(target) then doPlayerSendDefaultCancel(cid, RETURNVALUE_YOUMAYNOTATTACKTHISPLAYER), return false end end return true end
  9. cara, issso que vc procura é o slot system do mock, não sei se tem postado aqi no xtibia, procura no google.... flw's
  10. talves no xml do shinys, eles não estão como summonable e conviceable...
  11. sim, sim só criar uma tabelinha ^^, depois eu faço.
  12. muito bom apocarai, sempre trazendo novidades... só falta agora, colocar pra executar em ot : ) flw's, aguardando isso /\. REP+
  13. eu fiz pro meu server, com a função setCreatureName(), postada aqui no xtibia, não precisa criar um monstros toda hora, e não é mto gambiarra, e num dá lag... tranquilo fazer..
  14. legal... agora pra que tanto return true :X, e pra que colocar um else, se num vai acontecer nada... e se vc registrou no login.lua esse evento, logico que cid é um player. mais pratico: function onKill(cid,target,lastHit) local dif = getPlayerLevel(cid)-getPlayerLevel(target) local diff = 100 --aqui você define a diferença de lvs que receberam a punição local puni = (dif*2000) --aqui voce define quanto de experiencia o matador vai perder. if isPlayer(target) and dif >= diff and getCreatureSkullType(target) < 1 then doPlayerSendTextMessage(cid,21,'Você não teve honra!Matou um player com '..dif..' leveis de diferença e perdeu '..puni..' pontos de expêriencia.') doPlayerAddExp(cid, -puni) end return true end REP+ pela sua força de vontade
  15. é uma action, tag: <action itemid="ID DO ITEM" event="script" value="NOME DO ARQUIVO.lua"/> na pasta scripts em um arquivo.lua : function onUse(cid, item) local days = 10 -- dias que vai ganhar usando o item vip.addVipByAccount(getPlayerAccount(cid), days) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR,"Foram adicionados "..days.." dias de vip a "..getCreatureName(cid)..".") return true end
  16. sources, eu creio.
  17. sim, eu fiz isso pra não fica tão artificial, fica estranho toda hora 850, ai quis dár uma mudada, se não gostou fala ai, que te ensino mudar...
  18. pra ir subindo a exp no arquivo exphit.lua abaixo da linha: doPlayerSendTextMessage(sid, 23, "You gain "..expg.." exp.") adc isto: doSendAnimatedText(getThingPos(sid), expg, 215) resultando: doPlayerSendTextMessage(sid, 23, "You gain "..expg.." exp.") doSendAnimatedText(getThingPos(sid), expg, 215) fui ;*
  19. Instalação Primeiramente abra a pasta de seu ot, e procure pelo arquivo config.lua e procure por essas 2 linhas : experienceStages = false rateExperience = 50 se o experienceStages tiver ativado mude para false, pois o Stages é configurado no próprio script, e é muito importante o rateExperience tiver como 0, exemplo: experienceStages = false rateExperience = 0 agora entre na pasta creaturescripts/scripts e crie um arquivo lua, chamado exphit.lua e cole o seguinte código: para versões mais antigas como 8.54, 8.6 use : para versões mais novas como 9.8 : na mesma pasta procure pelo arquivo login.lua, e em cima de return true, adc a seguinte linha: registerCreatureEvent(cid, "ExpHit") volte na pasta anterior creaturescripts, e procure pelo arquivo creaturescritps.xml e cole as 2 tags: <event type="statschange" name="ExpGain" event="script" value="exphit.lua"/> <event type="combat" name="ExpHit" event="script" value="exphit.lua"/> para configurar a exp, que era configurada no config.lua está no começo do arquivo exphit.lua , e as configurações da party tbem, dos anéis, e até pode ser usado stages agora, segue abaixo o exemplo: -- CONFIGURAÇÕES DE EXPERIENCIA -- useStages = false -- Usar sistema de Stages , true/false premiumMultipliqueExp = 2 -- Players Premiums terão exp multiplicada, caso não querer deixe 1. rateExp = 50 -- Exp caso não for usar stages. local stages = { -- ["DELEVEL-ATELEVEL"] = EXP, (OBS: NUNCA REPETIR O MSM NUMERO, SEMPRE COLOCAR UM A MAIS.) ["1-50"] = 50, ["51-100"] = 45, ["101-150"] = 40, ["151-200"] = 35, ["201-250"] = 30, ["251-300"] = 25, ["351-400"] = 20, } ultimateExp = 15 -- exp que vai usar caso o level do player não tiver mais na tabela . -- CONFIGURAÇÕES DA PARTY partyPorcent = 40 -- Quantos Porcento da exp vai para os membros da party levelBlockParty = 1000 -- Diferença Maxima de Level permitida para membro da party ganhar exp. expShareRadiusX = 30 -- Distancia maxima permitida no eixo X para membro da party ganhar exp. expShareRadiusY = 30 -- Distancia maxima permitida no eixo Y para membro da party ganhar exp. expShareRadiusZ = 1 -- Distancia maxima permitida no eixo Z para membro da party ganhar exp. -- CONFIGURAÇÕES DE RINGS -- local rings = { -- [ID DO ANEL] = EXP MULTIPLICADA POR X EXP. [3048] = 2, [3049] = 4, [3050] = 6, } -- FIM DAS CONFIGURAÇÕES ---- Log V2.0 : Log V3.0 ( 03/02/2013 ) : Log V4.0 ( 12/11/2013 ) :
  20. qual seu sistema de vip ?
  21. qndo o sv cai, globalstorage limpa... podendo ganhar em outro char
  22. há, vlw REP +, por ter trazido, mais é da otland... já fiz meu nick system , fico perfect. e arruma essa parte std::string name, nameDescription: que seria: std::string name, nameDescription; e tem que mudar algumas coisas pra tfs 0.3.6
  23. é só remover essas 4 linhas de cada script, elas fica no começo: if (getCreatureCondition(cid, CONDITION_INFIGHT) == TRUE) then doPlayerSendCancel(cid, "Sorry, you can't heal your pokemon during fights!") return TRUE end
  24. meubk

    Combat Damages

    eu sei ki é nas sources, tanto é kki postei, isso na parte de programação, mais como fazer.
  • Quem Está Navegando   0 membros estão online

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