-
Total de itens
2571 -
Registro em
-
Última visita
-
Dias Ganhos
27
Tudo que Bruno postou
-
Eu não sei se você tem a função split, mas é uma solução: vector<string> split(const string &s, char delim) { stringstream ss(s); string item; vector<string> tokens; while (getline(ss, item, delim)) { tokens.push_back(item); } return tokens; } Ai você usa assim: std::vector<std::string> name = split(creature->getName().c_str(), '['); Ficando assim: int32_t LuaScriptInterface::luaGetCreatureName(lua_State* L) { //getCreatureName(cid) ScriptEnviroment* env = getEnv(); std::vector<std::string> name = split(creature->getName().c_str(), '['); if(Creature* creature = env->getCreatureByUID(popNumber(L))) lua_pushstring(L, name[1]); else { errorEx(getError(LUA_ERROR_CREATURE_NOT_FOUND)); lua_pushboolean(L, false); } return 1; } Lembrando: Não testei e nem sei se vai funcionar, como não tenho como testar aqui, faz ai o teste.
-
Pessoal, o items.otb está seguindo a versão oficial da TFS, então a versão dele ainda está 10.76. Eu só vou atualizar no projeto quando for disponibilizado a versão oficial. Caso alguém queira experimentar outro, é por sua conta em risco!
-
Isso mesmo, faça essa alteração que o pokemon não irá parecer com o level na frente, embora ainda continuará com o level.
-
Amigo, isso é erro de alguma library, provavelmente boost, aconselho usar linux.
-
Obrigado pelas palavras Olha, sobre o VS 2015 eu ainda não vi nada, até porque em casa estou somente com o 2013 e to esperando minha faculdade liberar a conta da Microsoft para que eu consiga fazer um upgrade de versão. Novos outfits e montarias adicionados no projeto!
-
Claro, me add no skype -> xtr3m36
-
1º verifique se você tem a função GlobalStorageValue no seu ot. 2º verifique se a storage que conta as criaturas está dando conflito com outra.
-
Amigo, evite reviver um tópico resolvido com outra dúvida, Abra um tópico na seção de suporte.
-
Não tem senha do GOD pré-definida, posso até colocar algo padrão para ajudar. Minha intenção é colocar todas as áreas novas do update, porém, não consigo fazer tudo sozinho ao mesmo tempo Vlw meu querido!
-
Marco, primeiramente obrigado pelo interesse em participar. Me adiciona no skype: xtr3m36 ou passa outra forma de contato por PM. Att.
-
Pessoal, Estou montando uma equipe de Games Online, e o intuito a princípio é abrir 3 servidores (2 deles já estão previamente online). Então, preciso de uma equipe para dar andamento, nas quais as vagas são: Servidor Global - 10.80 / 10.81 - Mapper Servidor Baiak - 8.60 - Mapper Servidor Derivado - Pokemon - Mapper - Spriter Interessado? Deixe aqui seu contato e se possível algum trabalho.
-
Muito obrigado pela força @Daniel, vamos mudar esse quadro atual de tibia e otserv.
- 6 respostas
-
- open source
- vaneheim
- (e 6 mais)
-
Opa, que boa notícia! Eu indico a otserv-list.com, a maior lista brasileira de otservs!
-
Versão 10.80 / 10.81 com mapa global lançada!
-
@@leonardo macedo, Tenta reiniciar sua internet para ver se consegue.
-
@, Nome indisponível, teria algum outro?
-
bug Bug Na Página Training offline players No Site
pergunta respondeu ao marcio1234 de Bruno em Websites
Testa assim por favor, e tira um print pra ver como fica: <?PHP $i = 0; $main_content .= '<h2>Already Training on Denera World!</h2><TABLE border=0 CELLSPACING=1 CELLPADDING=2 WIDTH=100%class="table table-striped"><TR><TD CLASS=white COLSPAN=4>'; $n = $SQL->query('SELECT COUNT(`offlinetraining_skill`) as `count` FROM `players` WHERE `offlinetraining_skill` > 0;')->fetch(); $main_content .= '<div class="alert alert-success">There are '.$n['count'].' players already training on our world!</div></TD></TR><TR><TD WIDTH=30%><B>Name</B></TD><TD WIDTH="10%"><B>Level</B></TD><TD WIDTH="20%"><B>Vocation</B></TD><TD WIDTH="50%"><center><B>Training Type</B></center></TD></TR>'; $list = $SQL->query('SELECT `name`, `level`, `vocation`, `promotion`, `offlinetraining_skill` FROM `players` WHERE `offlinetraining_skill` > 0;')->fetchAll(); foreach($list as $player) { $i++; $main_content.= '<TR><TD WIDTH=30%><A HREF="?subtopic=characters&name='.urlencode($player['name']).'">'.$player['name'].'</A></TD><TD WIDTH=10%>'.$player['level'].'</TD><TD WIDTH=20%>'.$vocation_name[0][$player['promotion']][$player['vocation']].'</TD><TD WIDTH=50%><center>'.$player['offlinetraining_skill'].'</center></TD></TR>'; } $main_content .= '</TABLE></td></tr></table>'; ?> -
Tópico movido para dúvidas / pedidos resolvidos.
-
Editei, tenta dnv.
-
Você pode fazer assim com a talkaction, já que utiliza sqlite: function onSay(cid, words, param) param = tonumber(param) if not param then doPlayerSendCancel(cid, "Digite o parametro.") return false end db.executeQuery("DELETE FROM `players` WHERE `level` < 50 AND `name` <> `Account Manager` AND `lastlogin` < " .. param - 20 * 24 * 60 * 60 .. ";") return true endAi você acessa esse site:http://www.tutorialspoint.com/mysql_terminal_online.php E utiliza a função: SELECT UNIX_TIMESTAMP();Você terá um resultado semelhante a este:+------------------+ | UNIX_TIMESTAMP() | +------------------+ | 1441383476 | +------------------+ 1 row in set (0.00 sec) Ai basta utilizar o comando, por exemplo: /dbclean 1441383476 Como não é um camando que vai ser usado toda hora, vale a pena tentar.
-
Tenta assim: local items = { --[numeração] = {id = ID DO ITEM, count = QUANTIDADE DO ITEM} [1]={id=2159, count=1}, -- [2]={id=2695, count=1}, -- [3]={id=2090, count=1}, -- [4]={id=6570, count=1}, -- [5]={id=6571, count=1}, -- [6]={id=7632, count=1}, -- [7]={id=7633, count=1}, -- [8]={id=2153, count=1}, -- [9]={id="level", count=1}, -- } function doPlayerAddLevel(cid, amount, round) local newExp = 0 local currentLevel = getPlayerLevel(cid) if amount > 0 then newExp = getExperienceForLevel(currentLevel + amount) - (round and getPlayerExperience(cid) or getExperienceForLevel(currentLevel)) else newExp = -((round and getPlayerExperience(cid) or getExperienceForLevel(currentLevel)) - getExperienceForLevel(currentLevel + amount)) end return doPlayerAddExp(cid, newExp) end function onUse(cid, item, fromPosition, itemEx, toPosition) local a = math.random(1, #items) if type(items[a].id) == "string" then doPlayerAddLevel(cid, items[a].count) doPlayerSendTextMessage(cid, 27, "Você abriu a box e ganhou " .. items[a].count .. " leve" .. (items[a].count > 1 and "is" or "l")) .. ".") else if isItemStackable(items[a].id) then doPlayerAddItem(cid, items[a].id, items[a].count) else for i = 1, items[a].count then doPlayerAddItem(cid, items[a].id, 1) end end doPlayerSendTextMessage(cid, 27, "Você abriu a box e ganhou " .. items[a].count .. "x " .. getItemNameById(items[a].id) .. ".") end doSendAnimatedText(getPlayerPosition(cid), "Box!", TEXTCOLOR_GREEN) doRemoveItem(item.uid, 1) return true end
-
Tenta assim: Vá em qualquer arquivo de data/libs e adicione as seguintes funções: Agora vá em data/globalevents/globalevents.xml e adicione a seguinte tag: <globalevent type="startup" name="doCleanDatabase" script="cleanDB.lua" />E por último, em data/globalevents/scripts crie o arquivo cleanDB.lua com o seguinte conteúdo: Basta executar o servidor para testar. Não faça esse teste antes de fazer um backup do banco. Créditos: Cybermaster Teh Maverick darkaos Elf
-
@@kolosso, Vá em data/talkactions/talkactions.xml e adicione a seguinte tag: <talkaction words="!vipdays;/vipdays" event="script" value="vipdays.lua" />Agora vá em data/talkactions/scripts, crie o arquivo vipdays.lua com o seguinte conteúdo: function onSay(cid, words, param) if vip.hasVip(cid) then local dias = math.floor((vip.getVip(cid) - os.time()) / (24 * 3600)) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Voce tem " .. dias .. " dias de VIP Account.") else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Voce nao possui uma VIP Account.") end return true end
-
[Encerrado] [URGENTE] Host Bom e Barato
tópico respondeu ao biacotri de Bruno em Tópicos Sem Resposta
As vezes pagando barato, você não oferece qualidade a seus players. A qualidade da serversoft é única no mercado, além de oferecer o OTPanel, que é uma ferramenta muito importante principalmente para quem está começando, garanto a qualidade, posso dizer isso pois utilizo os serviços deles. O XTibia é um projeto que também está sendo hospedado lá, você pode tirar uma base pela qualidade que é oferecida aqui. Caso interessar, clique no link em minha assinatura. Abs. -
local items = { --[numeração] = {id = ID DO ITEM, count = QUANTIDADE DO ITEM} [1]={id=2159, count=1}, -- [2]={id=2695, count=1}, -- [3]={id=2090, count=1}, -- [4]={id=6570, count=1}, -- [5]={id=6571, count=1}, -- [6]={id=7632, count=1}, -- [7]={id=7633, count=1}, -- [8]={id=2153, count=1}, -- [9]={id="level", count=1}, -- } function doPlayerAddLevel(cid, amount, round) local newExp = 0 local currentLevel = getPlayerLevel(cid) if amount > 0 then newExp = getExperienceForLevel(currentLevel + amount) - (round and getPlayerExperience(cid) or getExperienceForLevel(currentLevel)) else newExp = -((round and getPlayerExperience(cid) or getExperienceForLevel(currentLevel)) - getExperienceForLevel(currentLevel + amount)) end return doPlayerAddExp(cid, newExp) end function onUse(cid, item, fromPosition, itemEx, toPosition) local a = math.random(1, #items) if type(items[a].id) == "string" then doPlayerAddLevel(cid, items[a].count) doPlayerSendTextMessage(cid, 27, "Você abriu a box e ganhou " .. items[a].count .. " leve" .. (items[a].count > 1 and "is" or "l")) .. ".") else doPlayerAddItem(cid, items[a].id, items[a].count) doPlayerSendTextMessage(cid, 27, "Você abriu a box e ganhou " .. items[a].count .. "x " .. getItemNameById(items[a].id) .. ".") end doSendAnimatedText(getPlayerPosition(cid), "Box!", TEXTCOLOR_GREEN) doRemoveItem(item.uid, 1) return true end
-
Quem Está Navegando 0 membros estão online
- Nenhum usuário registrado visualizando esta página.