Ir para conteúdo

Kydrai

Visconde
  • Total de itens

    250
  • Registro em

  • Última visita

  • Dias Ganhos

    14

Tudo que Kydrai postou

  1. Que maldade O bom é que vc provavelmente vc não irá cometer o msm erro novamente... O projeto de vcs vai ficar bom, só tem que tomar cuidado para não colocar muita gente e dps perde o controle. Eu atualmente to estudando programação, mas só sei o básico, ainda não entendo muito a distro. Então boa sorte ae pro pessoal e tomara que o projeto va pra frente msm.
  2. Procura na area de scripts, eu vi esse code em algum lugar, se não achar faz um pedido. Basicamente é só ler o sql, eu não to no meu pc agora, então nem da pra ver.
  3. O jeito é salvar em determinados horarios, colocar um "auto-delete" pra contas inativas. Eu nem sei como funciona o save, mas acredito que seja lento msm.
  4. deve estar com a vocação errada, verifica no sqlite se for o caso em players>vocation
  5. Eu achei a idéia interessante. Eu tava estudando algumas coisas novas em c++ sobre manipulação de memória pra saber como funcianavam os ips changers ai pensei nisso tbm. Mas não sei como funcionaria isso, tenho que pesquisar, ainda so iniciante em programação.
  6. Kydrai

    [resolvido]

    Ah, na actions.xml <action itemid="2148" event="script" value="other/changegold.lua"/> <action itemid="2152" event="script" value="other/changegold.lua"/> <action itemid="2160" event="script" value="other/changegold.lua"/> <action itemid="ID_DA_MOEDA" event="script" value="changegold.lua"/> Procura algo parecido e põe a 4ª linha
  7. Acho que vc não ta abrindo certo, abre com o Bloco de Notas, vc deve ta abrindo com o iexplorer.
  8. Kydrai

    [resolvido]

    Não entendi direito, olha um exemplo para trocar 100 crystal coins por 1 moeda: No lugar de: elseif item.itemid == ITEM_CRYSTAL_COIN then doChangeTypeItem(item.uid, item.type - 1) doPlayerAddItem(cid, ITEM_PLATINUM_COIN, ITEMCOUNT_MAX) doSendAnimatedText(fromPosition, "$$$", TEXTCOLOR_PLATINUMBLUE) Coloca: --Troca 100 crystal coins por 1 moeda elseif item.itemid == ITEM_CRYSTAL_COIN and item.type == ITEMCOUNT_MAX then doChangeTypeItem(item.uid, item.type - item.type) doPlayerAddItem(cid, MOEDA, 1) doSendAnimatedText(fromPosition, "$$$", TEXTCOLOR_TEAL) --Troca 1 crystal coins por 100 platinum coins elseif item.itemid == ITEM_CRYSTAL_COIN and item.type < ITEMCOUNT_MAX then doChangeTypeItem(item.uid, item.type - 1) doPlayerAddItem(cid, ITEM_PLATINUM_COIN, ITEMCOUNT_MAX) doSendAnimatedText(fromPosition, "$$$", TEXTCOLOR_YELLOW) --Troca 1 moeda coins por 100 crystal coins elseif item.itemid == MOEDA then doChangeTypeItem(item.uid, item.type - 1) doPlayerAddItem(cid, ITEM_CRYSTAL_COIN, ITEMCOUNT_MAX) doSendAnimatedText(fromPosition, "$$$", TEXTCOLOR_YELLOW) ITEM_CRYSTAL_COIN >> Id da crystal (2160) ITEMCOUNT_MAX >> Quantidade maxima no slot (100) MOEDA >> Id da moeda ITEM_PLATINUM_COIN >> Id da platinum(2152) E é só mudar as cores do $$$ que fica pronto. Acho que ta tudo certo oq eu coloquei
  9. Sobre a moeda virtual, é que nem o Daniel disse, tem que ser tudo livre. Embora essa moeda pudesse incentivar alguns aqui no fórum (ou não). Agora, sou a favor de poder mudar o nome de 6 em 6 meses, não vejo um pq não.
  10. Isso que vc postou não faz sentido. As talkactions variam para cada OT, logo a pessoa não pode excluir a que vem pronta e colar outra qualquer. Camandos como esses não existem: <talkaction words="!masturb" script="masturb.lua" /> <talkaction words="god" script="godslayer.lua" /> <talkaction words="God" script="godslayer2.lua" /> <talkaction words="GOd" script="godslayer3.lua" /> ... Acredito que seu post não sirva pra nada.
  11. Tem uma parte assim: if isPlayer(killer) == TRUE then byPlayer = TRUE end Só colocar a mensagem ai: if isPlayer(killer) == TRUE then byPlayer = TRUE broadcastMessage("" .. assassino .. " Matou " .. vitima .."!", MESSAGE_STATUS_CONSOLE_ORANGE) end E tirar a mensagem no final do script pra não exibir 2 vezes.
  12. Tenta mudar o manamultiplier. Pelo que vi quanto maior for ele mais lerdo fica o ml. Quanto ao skill id que vc mudou pertence ao axe, vc deixou ele mais rapido.
  13. O code ta errado, tem 1 "end" a mais: --Script by Lukinhaztl function onThink(interval, lastExecution) local cor = 22 -- cor 22 é branca local mensagens = {"Mensagem 1", "Mensagem 2", "Mensagem 3", "Mensagem 4" } -- Escreva entre as aspas oque vai aparecer doBroadcastMessage(mensagens[math.random(1,table.maxn(mensagens))], cor) return TRUE end No lugar de "table.maxn(mensagens)" seria mais simples "#mensagens", mas as 2 formas servem. Msm assim bom code
  14. Vc usou a function onDeath 2 vezes, mas pelo que vc falou isso deve estar funcionando. Se vc fosse usar o doPlayerAddItem seria assim: doPlayerAddItem(cid, itemid, count, canDropOnMap) Pode por isso dps do: broadcastMessage(""..player.." ["..level.."] acabou de ser morto(a) por "..killername.." ["..levelkiller.."].",19) Fica assim: broadcastMessage(""..player.." ["..level.."] acabou de ser morto(a) por "..killername.." ["..levelkiller.."].",19) doPlayerAddItem(killer, 2160, 10, TRUE) Acho que isso deve dar, se tiver com erro avisa qual o erro que da.
  15. O erro ta aqui: if item.itemid == 1945 and doPlayerRemoveMoney(cid,4000) == 1 then Ao invés de doPlayerRemoveMoney(cid,4000) == 1 coloca doPlayerRemoveMoney(cid,4000) == TRUE O outro erro é o da bp vazia: container = doPlayerAddItem(cid, 2000, 1) Vc usou o comando antes de verficar o dinheiro no if E o código ta gigante, da pra simplifica mais: function onUse(cid, item, frompos, item2, topos) if doPlayerRemoveMoney(cid,4000) == TRUE then container = doPlayerAddItem(cid, 2000, 1) for i=1, 20 do doAddContainerItem(container, 8473, 7) end if(item.itemid == 1945) then doTransformItem(item.uid,item.itemid+1) elseif(item.itemid == 1946) then doTransformItem(item.uid,item.itemid-1) end else doPlayerSendCancel(cid,"Sorry, you don't have enough money!") end return TRUE end
  16. Bom, mas acho que da pra melhorar ainda. Como o Marcryzius disse, colocar uma descrição rapida delas. E seria bom se separasse os tipos (get, do, set, ...) Estilo o tópico do frerety sobre as funções.
  17. É sempre bom manter um padrão na hora de criarmos os scripts. Assim fica muito mais facil e simples. Vou ver se tem algo para ser melhorado no seu artigo. Aproveitando isso, pq é ruim de usar?
  18. if(lastHitKiller ~= FALSE) then if(isPlayer(lastHitKiller) == TRUE) then hitKillerName = getCreatureName(lastHitKiller) else hitKillerName = getCreatureName(lastHitKiller) end Acho que não precisa do "if(isPlayer(lastHitKiller) == TRUE) then", pq ele vai realizar sempre a msm função. if(lastHitKiller ~= FALSE) then hitKillerName = getCreatureName(lastHitKiller) O resto parece bom :smile_positivo:
  19. A linha 29 ta assim: end </FONT></P> <P><FONT color=#007700>function onSay(cid, words, param) Deixa assim: end function onSay(cid, words, param) Ja na linha 93 e 94 ta assim: doPlayerSendTextMessage(isplayer,MESSAGE_STATUS_CONSOLE_ORANGE,getCreatureName(c id) .. ' let you go out from jail! See you later') Devia ser só uma linha: doPlayerSendTextMessage(isplayer,MESSAGE_STATUS_CONSOLE_ORANGE,getCreatureName(cid) .. ' let you go out from jail! See you later')
  20. Poderia falar seu server neh. Testei com monster, falto com player. No TFS 0.3.4(Crying Damson) faz assim, vai em data\creaturescripts\scripts\playerdeath.lua Depois de: if(lastHitKiller ~= FALSE) then if(isPlayer(lastHitKiller) == TRUE) then hitKillerName = getPlayerGUID(lastHitKiller) else hitKillerName = getCreatureName(lastHitKiller) end Adiciona: doBroadcastMessage(" "..getPlayerName(cid).." has been killed by "..hitKillerName..".") Fica assim: if(lastHitKiller ~= FALSE) then if(isPlayer(lastHitKiller) == TRUE) then hitKillerName = getPlayerGUID(lastHitKiller) else hitKillerName = getCreatureName(lastHitKiller) end doBroadcastMessage(" "..getPlayerName(cid).." has been killed by "..hitKillerName..".") Qualquer coisa, se seu OT for outro ve se tem a playerdeath.lua ou uma função parecida e avisa aqui.
  21. Kydrai

    Script De Level

    Eu testei a minha função e vi que tava dando erro, olha a certa: function onAdvance(cid, skill, oldLevel, newLevel) if (newLevel == getPlayerLevel(cid)) and (getPlayerLevel(cid)%50 == 0) then doBroadcastMessage(""..getCreatureName(cid).." esta no level "..getPlayerLevel(cid)..".") end end O erro era que esqueci de colocar o skill na função, ai não funcionava ^^
  22. Kydrai

    Script De Level

    -- feito por marcryzius devil function onAdvance(cid, oldLevel, newLevel) if (getPlayerLevel(cid) == 50 or getPlayerLevel(cid) == 100 or getPlayerLevel(cid) == 150 or getPlayerLevel(cid) == 200) then doBroadcastMessage(""..getCreatureName(cid).." esta no level "..getPlayerLevel(cid)..".") end end Marcryzius, não sei se são todos os servs assim, eu to com o TFS 0.3.4 Crying Damson. A função onAdvance não é executada só quando avança o lvl, mas tbm o ml e os skills. Ou seja, se o player passa o ml e esta no lvl 50 a mensagem é exibida novamente. Então aqui, com algumas modificações, eu teria que colocar assim: (arrumada) function onAdvance(cid, skill, oldLevel, newLevel) if (newLevel == getPlayerLevel(cid)) and (getPlayerLevel(cid)%50 == 0) then doBroadcastMessage(""..getCreatureName(cid).." esta no level "..getPlayerLevel(cid)..".") end end newLevel == getPlayerLevel(cid) o newLevel teria que ser igual ao lvl do player, assim não será executado caso o newLevel seja o ml. (getPlayerLevel(cid)%50 == 0) toda vez que lvl/50 tiver resto 0 será executado, assim evito fazer assim: (getPlayerLevel(cid) == 50 or getPlayerLevel(cid) == 100 or getPlayerLevel(cid) == 150 or getPlayerLevel(cid) == 200)
  23. Pesquisa por restater, auto-restater, acho que é uma coisa assim. É um programinha bem simples, pode ser feito em bat. Da uma olhada nesse http://www.xtibia.com/forum/Otrestarter-V203-t101780.html
  24. Isso não funciona, esse site é scan, ou seja, não te paga. Provas? Vc nunca comprou nada, deixa de ser mentiroso. Se não me engano isso não é permitido aqui no xtibia.
  25. Vc pode procurar nas sources por protocol q será 8.31,... Ex: #define CLIENT_VERSION_MAX 831 Ou vc compila roda ele em qualquer versão do tibia q ele irá falar o protocolo q deve ser usado.
  • Quem Está Navegando   0 membros estão online

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