-
Total de itens
250 -
Registro em
-
Última visita
-
Dias Ganhos
14
Tudo que Kydrai postou
-
Só pra responder a pergunta: getPlayerStorageValue = pega o valor do storage (5600), se não existir é igual a -1. setPlayerStorageValue = adiciona um valor ao storage (5600). Exemplo: if getPlayerStorageValue(cid,5600) == -1 then Se StorageValue(5600) for igual a -1. setPlayerStorageValue(cid,5600,1) Muda o StorageValue(5600) para 1. Assim a proxima vez que abrir o baú o if será falso (diferete de -1)
-
Erro besta: Primeiro aqui: Devia ser: Depois aqui: Devia ser: E mais uma coisa, vc não usou setPlayerStorageValue. Assim seu player repete a quest o quanto quise.
-
[Encerrado] Como Colocar Cada Vocação Para Começar Com X Itens?
tópico respondeu ao thecatyago de Kydrai em Tópicos Sem Resposta
Na verdade tem um script, do creature events, vc pode procurar nos tutoriais de script. Ele faz quando o player logar pela primeira vez adicionar os itens iniciais. um link: http://www.xtibia.com/forum/Script-Onlogin-t113648.html -
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.
-
[Encerrado] Meu Server Quando Salva Demora Muito Pra Volta
tópico respondeu ao brabopp de Kydrai em Tópicos Sem Resposta
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. -
[Encerrado] Meu Server Quando Salva Demora Muito Pra Volta
tópico respondeu ao brabopp de Kydrai em Tópicos Sem Resposta
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. -
[Encerrado] [erro] [27/07/2009 01:10:55] Vocations::getvocation
tópico respondeu ao G0han de Kydrai em Tópicos Sem Resposta
deve estar com a vocação errada, verifica no sqlite se for o caso em players>vocation -
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.
-
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
-
Acho que vc não ta abrindo certo, abre com o Bloco de Notas, vc deve ta abrindo com o iexplorer.
-
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
-
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.
-
talkaction [talkaction] De God, Gm, Tutor, Etc. Do 8.4
tópico respondeu ao estimoarte de Kydrai em Actions e Talkactions
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. -
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.
-
[GlobalEvent] Alguem Sabe O Id Do Magic Level?
tópico respondeu ao TomSapolandia de Kydrai em Globalevents e Spells
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. -
[GlobalEvent] Script De Mensagens Alternadas
tópico respondeu ao lukinhaztl de Kydrai em Globalevents e Spells
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 -
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.
-
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
-
[Arquivado][functions] Todas As Functions ....
tópico respondeu ao voodo de Kydrai em Noticias - Arquivo
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. -
É 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?
-
[Creatureevents] Anunciador De Quem Mata E Quem Morre.
tópico respondeu ao 951357 de Kydrai em Globalevents e Spells
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: -
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')
-
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.
-
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 ^^
-
Quem Está Navegando 0 membros estão online
- Nenhum usuário registrado visualizando esta página.