Jump to content

Olá Tibiano! Notamos que você está com um adblocker ligado... 

Nós promovemos servidores dentro da comunidade, para que eles tenham visibilidade.

Por favor, nos ajude a continuar promovendo esses servidores. Adicione nosso domínio na whitelist de seu adblocker, ok? :)

luangop

Campones
  • Content Count

    50
  • Joined

  • Last visited

  • xPoints

    0 [ Donate ]

Everything posted by luangop

  1. TFS 0.4 rev 3777 Estou a dias tentando fazer uma função na source e não consigo, sou leigo. Este sistema é para um servidor exp alta, já consegui fazer o level do player aparecer no lugar da experiencia no client, pois no lugar do level buga quando chega em um número muito alto, para tal simplesmente fiz isso: uint64_t experience = player->getPlayerInfo(PLAYERINFO_LEVEL); msg->put<uint32_t>(experience); E como o servidor tem sistema de resets, eu queria fazer aparecer no lugar do level, o reset do player.. primeiramente meu sistema de resets era com storage, e eu consegui fazer isso da seguinte maneira: std::string value; player->getStorage(378378, value); int32_t resets = atoi(value.c_str()); msg->put<uint16_t>(resets); Mas por motivos de praticidade para incluir informações e sistemas no site, mudei meu sistema de reset para registrar os resets na database. no caso o nome da coluna ficou 'reset'. Então tentei fazer aparecer os resets no client com uma query mysql mas como não tenho conhecimento de mysql em C++ deu errado kk Vou postar como eu tentei: Database* db = Database::getInstance(); DBQuery query; query << "SELECT `reset` FROM `players` WHERE `id` = " << player->getGUID(); DBResult* result; std::string resets; resets = result->getDataInt("reset"); int32_t resetes = atoi(resets.c_str()); msg->put<uint16_t>(resetes); Obs: Isso não é source de OTClient, isso é na source do servidor, eu utilizo oldclient mesmo.. esta é a parte que envia para o client a informação de experiencia e level para que o client mostre ao player.. No caso originalmente está assim na source: msg->put<uint16_t>(player->getPlayerInfo(PLAYERINFO_LEVEL)); Neste msg->put.. preciso por o valor que se encontra na minha database, na tabela reset. Eu não sei fazer corretamente a query mysql e o code pra extrair a informação como int (número) e apresentar no lugar de player->getPlayerInfo(PLAYERINFO_LEVEL) Eu já consegui alterar a informação que o servidor envia ao client, já está aparecendo meu level no lugar da exp, e resets no lugar do level quando uso o script de resets por storage, só não consigo fazer a query correta pra puxar a informação da database. Segue prints:
  2. O primeiro foi algum player que conseguiu de alguma forma desequipar o icone do portrait e bugou o char. Quanto ao segundo só vendo o script pra ter uma ideia.
  3. Olá galera, estou desenvolvendo pro meu servidor um sistema o qual não faz diferença dizer qual é, onde engalhei numa parte e gostaria de ver se alguém poderia me ajudar.Preciso de uma função que checa na minha database, se existe algum player que tenha o valor X na storage Y.Por exemplo: function verificar(10023, 54) -- storage, valorif existe alguém com o valor 54 na storage 10023 thenreturn trueelsereturn falseendend Como sou péssimo quando se fala de query, não consegui fazer essa função, alguém poderia por favor me ajudar? Se possível, retornar o nome do jogador que possui tal valor na storage. Obs: Servidor SQlite Já resolvi com ajuda de um membro de outro fórum, moderação por favor pode fechar o tópico.
  4. Olá, tem vários comandos !eject pelo fórum, porém nenhum dos que encontrei funcionou comigo, talvez pelo fato de eu usar SQLITE. Precisava muito desse comando no meu servidor, alguém possui um que funcione com SQLITE?
  5. Como o Codex NG disse, use storage para salvar os pontos, sendo que você não postou qual sua distribuição (base do servidor), não posso escrever os códigos para você. Se você me mandar a function do seu server que verifica se o player tem 6 pokes, e a função que add um poke para o player, eu crio o script.
  6. Bom cara, acho que isso que você está tentando fazer é quase impossível... pois parei pare pensar, mesmo se corrigir o NPC... e quanto a todo o restante do servidor? quanta coisa interage com o dinheiro? creio que para fazer o que você quer apenas nas sources, e não sei mexer nisso Boa sorte!
  7. Já me perdi também... vou baixar um servidor de pokémon aqui e realizar uns testes. Bom cara, acho que isso que você está tentando fazer é quase impossível... pois parei pare pensar, mesmo se corrigir o NPC... e quanto a todo o restante do servidor? quanta coisa interage com o dinheiro? creio que para fazer o que você quer apenas nas sources, e não sei mexer nisso Boa sorte!
  8. Eu sei que não tem nada haver com a fala do NPC, no momento estou focado em concertar a relação Preço do item no look x Preço do item COBRADO pelo NPC. Se isso der certo, depois vemos sobre a fala do NPC.
  9. Cara, esqueça o npchandler... Deixe o items.xml da forma original, ou seja, da forma que eu falei. e Modifique no modules.lua como eu falei, botando o / 100. E faça um teste agora para ver. OBS: reinicie o servidor antes de testar.
  10. Mas quando você fez esse teste ai, ainda não tinha feito a modificação que eu falei para fazer no modules.lua da pasta data/npc/lib/npcsystem
  11. Eu sei, lá onde falei pra por o / 100, é apenas estético.
  12. Tenta assim: <item id="2160" article="a" name="ten thousand dollar note" plural="ten thousand dollar notes"> <attribute key="weight" value="0" /> <attribute key="worth" value="1000000" /> <attribute key="description" value="Valuable money!" /> </item> <item id="2152" article="a" name="hundred dollar note" plural="hundred dollar notes"> <attribute key="weight" value="0" /> <attribute key="worth" value="10000" /> <attribute key="description" value="One hundred of these can be converted in a ten thound dollar note." /> </item> <item id="2148" article="a" name="dollar note" plural="dollar notes"> <attribute key="weight" value="0" /> <attribute key="worth" value="100" /> <attribute key="description" value="One hundred of these can be converted in a hundred dollar note." /> </item> <item id="12416" article="a" name="cent" plural="cents"> <attribute key="description" value="One hundred of these can be converted in a dollar." /> <attribute key="worth" value="1" /> </item>
  13. Me manda como estão os valores no items.xml
  14. Creio que você não removeu '0's que chega no items.xml ... tente remover mais 2 zeros nos valores do dinheiro no items.xml como o amigo ensinou acima.
  15. Dei uma pesquisada na LIB, tente fazer isso: data/npc/lib/npcsystem abra o arquivo modules.lua procure por essa linha: local backpack, totalCost = 1988, amount * shopItem.buy troque por: local backpack, totalCost = 1988, (amount * shopItem.buy) / 100 Não testei, me diga o resultado xD
  16. O crash pode ser por voc~e ter setado um item com valor fracionado. O jogo não calcula isso.
  17. Entendi.. Nesse caso sinto em não poder ajudar rsrs EDIT-- E se você modificar o script que faz aparecer o valor do item quando você da look?
  18. Não seria mais fácil mudar a fala do NPC? Caso considere, poste o script do NPC.
  19. Tente assim: Modifique em: local custoItem = 2160 -- ID do item para comprar vip. local custoQuantia = 5 -- Quantia de items.
  20. Essa sua tabela ta meio estranha, tenta assim: local coins = {[iTEM_GOLD_COIN] = {to = ITEM_PLATINUM_COIN, effect = TEXTCOLOR_YELLOW},[iTEM_PLATINUM_COIN] = {from = ITEM_GOLD_COIN, to = ITEM_CRYSTAL_COIN, effect = TEXTCOLOR_LIGHTBLUE},[iTEM_CRYSTAL_COIN] = {from = ITEM_PLATINUM_COIN, to = 6527, effect = TEXTCOLOR_LIGHTBLUE},[6527] = {from = ITEM_CRYSTAL_COIN, effect = TEXTCOLOR_TEAL}}function onUse(cid, item, fromPosition, itemEx, toPosition)if(getPlayerFlagValue(cid, PLAYERFLAG_CANNOTPICKUPITEM)) thenreturn falseendlocal coin = coins[item.itemid]if(not coin) thenreturn falseendif(coin.to ~= nil and item.type == ITEMCOUNT_MAX) thendoChangeTypeItem(item.uid, item.type - item.type)doPlayerAddItem(cid, coin.to, 1)doSendAnimatedText(fromPosition, "$$$", coins[coin.to].effect)elseif(coin.from ~= nil) thendoChangeTypeItem(item.uid, item.type - 1)doPlayerAddItem(cid, coin.from, ITEMCOUNT_MAX)doSendAnimatedText(fromPosition, "$$$", coins[coin.from].effect)endreturn trueend E informe melhor sobre o erro, quando que ele acontece?
  21. Data/talkactions talkactions.xml Adiciona essa linha: <talkaction words="/abrirevento;/irevento" event="script" value="eventoo.lua"/> data/talkactions/scripts crie um arquivo eventoo.lua e adicione o seguinte: function onSay(cid, words, param) function acabar() setGlobalStorageValue(8445601, 0) doBroadcastMessage("Acabou o tempo! A entrada para o evento foi bloqueada!") return TRUE end if words == "/abrirevento" and getPlayerAccess(cid) >= 4 then local t = string.explode(param, ",") if param == "" or (t[1] and not tonumber(t[1])) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Digite por quantos segundos o comando /irevento vai ficar ativo.") return true end if t[1] and tonumber(t[1]) then local tempo = t[1] setGlobalStorageValue(8445601, 1) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Comando /irevento ativo por ".. t[1] .." segundos.") doBroadcastMessage("Evento Aberto! Diga /irevento para entrar! [O evento fecha em ".. t[1] .." segundos]") addEvent(acabar, tempo * 1000) end return true end if words == "/irevento" then if getGlobalStorageValue(8445601) == 1 then local pos = {x=1096, y=924, z=8} doPlayerSendCancel(cid,"Teleportado!") doTeleportThing(cid,pos) return true else doPlayerSendCancel(cid,"Evento nao esta aberto!") return true end return true endend Dentro do script, na parte local pos = {x=1096, y=924, z=8}, modifique com a coordenada do seu evento. Se ajudei REP+
  22. Olá! Seguinte, eu quero bloquear para que os players não possam logar em mais que um char na mesma conta ao mesmo tempo, porém a tag "onePlayerOnlinePerAccount" do meu config.lua não está funcionando. Acredito que seja possível fazer por creaturescripts, mas já tentei e não consegui. Alguém poderia me ajudar?
  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...