Ir para conteúdo
  • Cadastre-se

Posts Recomendados

Eu gostaria de saber como fixar esses erros que estão dando no login.lua do creaturescript.

 
ERRO:
 
[20/01/2015 14:22:02] [Error - CreatureScript Interface] 
[20/01/2015 14:22:02] data/creaturescripts/scripts/login.lua:onLogin
[20/01/2015 14:22:02] Description: 
[20/01/2015 14:22:02] data/creaturescripts/scripts/login.lua:176: attempt to call global 'luaGetItemAttribute' (a nil value)
[20/01/2015 14:22:02] stack traceback:
[20/01/2015 14:22:02] data/creaturescripts/scripts/login.lua:176: in function <data/creaturescripts/scripts/login.lua:83>
 
 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
login.lua:
 
 
 
local config = {
loginMessage = getConfigValue('loginMessage'),
useFragHandler = getBooleanFromString(getConfigValue('useFragHandler'))
}
 
 
local flys = {
["Birdramon"] = {191, 1000}, -- moltres
["Saberdramon"] = {191, 1000}, -- moltres
["Flymon"] = {181, 800}, -- artic
["Coelamon"] = {181, 600}, -- zapdos
 }
 
 
local rides = {
 ["Ikkakumon"] = {169, 200}, -- tauros
["Woodmon"] = {172, 200}, -- kyuubi
["Dobermon"] = {175, 200}, -- rapid
["Gazimon"] = {177, 200}, -- ponyta
["Garurumon"] = {184, 200}, -- rhyhorn
["Greymon"] = {185, 200}, -- arcan
["Togemon"] = {187, 250}, -- onix
["Mojyamon"] = {189, 200}, -- venu
 }
 
local surf = {
 ["Ikkakumon"] = {lookType=171, speed = 320},
 ["Poliwhirl"] = {lookType=137, speed = 480},
 ["Seaking"] = {lookType=269, speed = 520},
 ["Dewgong"] = {lookType=183, speed = 700},
 ["Blastoise"] = {lookType=184, speed = 850},
 ["Tentacruel"] = {lookType=185, speed = 750},
 ["Lapras"] = {lookType=186, speed = 960},
 ["Gyarados"] = {lookType=187, speed = 1050},
 ["Omastar"] = {lookType=188, speed = 680},
 ["Kabutops"] = {lookType=189, speed = 840},
 ["Poliwrath"] = {lookType=190, speed = 680},
 ["Vaporeon"] = {lookType=191, speed = 800},
 ["Staryu"] = {lookType=266, speed = 385},
 ["Starmie"] = {lookType=267, speed = 685},
 ["Goldeen"] = {lookType=268, speed = 355},
 ["Seadra"] = {lookType=270, speed = 655},
 ["Golduck"] = {lookType=271, speed = 760},
 ["Squirtle"] = {lookType=273, speed = 365},
 ["Wartortle"] = {lookType=275, speed = 605},
 ["Tentacool"] = {lookType=277, speed = 340},
 ["Snorlax"] = {lookType=300, speed = 500},
 
["Shiny Poliwag"] = {lookType=1010, speed = 320},
 ["Shiny Poliwhirl"] = {lookType=1011, speed = 480},
 ["Shiny Seaking"] = {lookType=1027, speed = 520},
 ["Shiny Dewgong"] = {lookType=1015, speed = 700},
 ["Shiny Blastoise"] = {lookType=1002, speed = 850},
 ["Shiny Tentacruel"] = {lookType=1014, speed = 750},
 ["Shiny Lapras"] = {lookType=1031, speed = 960},
 ["Shiny Gyarados"] = {lookType=1030, speed = 1050},
 ["Shiny Omastar"] = {lookType=1033, speed = 680},
 ["Shiny Kabutops"] = {lookType=1034, speed = 840},
 ["Shiny Poliwrath"] = {lookType=1012, speed = 680},
 ["Shiny Vaporeon"] = {lookType=1032, speed = 800},
 ["Shiny Staryu"] = {lookType=1028, speed = 385},
 ["Shiny Starmie"] = {lookType=1029, speed = 685},
 ["Shiny Goldeen"] = {lookType=1026, speed = 355},
 ["Shiny Seadra"] = {lookType=1025, speed = 655},
 ["Shiny Golduck"] = {lookType=1009, speed = 760},
 ["Shiny Squirtle"] = {lookType=1000, speed = 365},
 ["Shiny Wartortle"] = {lookType=1001, speed = 605},
 ["Shiny Tentacool"] = {lookType=1013, speed = 340},
 ["Shiny Snorlax"] = {lookType=1035, speed = 500},
 
["Mantine"] = {lookType=636, speed = 820},
 ["Totodile"] = {lookType=637, speed = 360},
 ["Croconow"] = {lookType=638, speed = 590},
 ["Feraligatr"] = {lookType=645, speed = 900},
 ["Marill"] = {lookType=639, speed = 340},
 ["Azumarill"] = {lookType=642, speed = 680},
 ["Quagsire"] = {lookType=643, speed = 740},
 ["Kingdra"] = {lookType=644, speed = 1020},
 ["Octillery"] = {lookType=641, speed = 600},
 ["Wooper"] = {lookType=640, speed = 315},
 }
 
function onLogin(cid)
 
doPlayerSetLossPercent(cid, PLAYERLOSS_EXPERIENCE, 100)
doCreatureSetDropLoot(cid, false)
 
local accountManager = getPlayerAccountManager(cid)
 
if(accountManager == MANAGER_NONE) then
local lastLogin, str = getPlayerLastLoginSaved(cid), config.loginMessage
if(lastLogin > 0) then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_DEFAULT, str)
str = "Your last visit was on " .. os.date("%a %b %d %X %Y", lastLogin) .. "."
else
str = str
end
 
doPlayerSendTextMessage(cid, MESSAGE_STATUS_DEFAULT, str)
 
elseif(accountManager == MANAGER_NAMELOCK) then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Hello, it appears that your character has been namelocked, what would you like as your new name?")
elseif(accountManager == MANAGER_ACCOUNT) then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Hello, type 'account' to manage your account and if you want to start over then type 'cancel'.")
else
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Hello, type 'account' to create an account or type 'recover' to recover an account.")
end
 
if getCreatureName(cid) == "Account Manager" then
local outfit = {}
if accountManagerRandomPokemonOutfit then
outfit = {lookType = getPokemonXMLOutfit(oldpokedex[math.random(151)][1])}
else
outfit = accountManagerOutfit
end
 
doSetCreatureOutfit(cid, outfit, -1)
return true
end
 
if(not isPlayerGhost(cid)) then
doSendMagicEffect(getCreaturePosition(cid), CONST_ME_TELEPORT)
end
 
local outfit = {}
 
if getPlayerVocation(cid) == 0 then
doPlayerSetMaxCapacity(cid, 0)
doPlayerSetVocation(cid, 1)
setPlayerStorageValue(cid, 86228, 0)
setPlayerStorageValue(cid, 862281, 0)
setCreatureMaxMana(cid, 6)
doPlayerAddSoul(cid, -getPlayerSoul(cid))
setPlayerStorageValue(cid, 19898, 0)
if getCreatureOutfit(cid).lookType == 128 then
outfit = {lookType = 510, lookHead = math.random(0, 132), lookBody = math.random(0, 132), lookLegs = math.random(0, 132), lookFeet = math.random(0, 132)}
elseif getCreatureOutfit(cid).lookType == 136 then
outfit = {lookType = 511, lookHead = math.random(0, 132), lookBody = math.random(0, 132), lookLegs = math.random(0, 132), lookFeet = math.random(0, 132)}
end
doCreatureChangeOutfit(cid, outfit)
end
 
 
registerCreatureEvent(cid, "SkullCheck")
 
registerCreatureEvent(cid, "ReportBug")
registerCreatureEvent(cid, "AdvanceSave")
 registerCreatureEvent(cid, "fullmh")
 registerCreatureEvent(cid, "UpTeleport")
 registerCreatureEvent(cid, "WatchTv")
 registerCreatureEvent(cid, "StopWatchingTv")
 registerCreatureEvent(cid, "WalkTv")
 registerCreatureEvent(cid, "RecordTv")
 registerCreatureEvent(cid, "Death")
 registerCreatureEvent(cid, "PlayerLogout")
 registerCreatureEvent(cid, "WildAttack")
 registerCreatureEvent(cid, "Idle")
 registerCreatureEvent(cid, "PokemonIdle")
 registerCreatureEvent(cid, "EffectOnAdvance")
 registerCreatureEvent(cid, "GeneralConfiguration")
 registerCreatureEvent(cid, "ReportBug")
 registerCreatureEvent(cid, "LookSystem")
 registerCreatureEvent(cid, "T1")
 registerCreatureEvent(cid, "T2")
 
 
 if getPlayerStorageValue(cid, 99284) == 1 then
setPlayerStorageValue(cid, 99284, -1)
end
 
doChangeSpeed(cid, -(getCreatureSpeed(cid)))
 
if getPlayerStorageValue(cid, 17000) >= 1 then -- fly
 
local item = getPlayerSlotItem(cid, 8)
local poke = luaGetItemAttribute(item.uid, "poke")
doChangeSpeed(cid, getPlayerStorageValue(cid, 54844))
doRemoveCondition(cid, CONDITION_OUTFIT)
doSetCreatureOutfit(cid, {lookType = flys[poke][1] + 351}, -1)
 
local apos = getFlyingMarkedPos(cid)
apos.stackpos = 0
 
if getTileThingByPos(apos).itemid <= 2 then
doCombatAreaHealth(cid, FIREDAMAGE, getFlyingMarkedPos(cid), 0, 0, 0, CONST_ME_NONE)
doCreateItem(460, 1, getFlyingMarkedPos(cid))
end
 
doTeleportThing(cid, apos, false) 
 
local posicao = getTownTemplePosition(getPlayerTown(cid))
markFlyingPos(cid, posicao)
 
elseif getPlayerStorageValue(cid, 63215) >= 1 then -- surf
 
local item = getPlayerSlotItem(cid, 8)
local poke = luaGetItemAttribute(item.uid, "poke")
doSetCreatureOutfit(cid, {lookType = surf[poke].lookType + 351}, -1)
doChangeSpeed(cid, getPlayerStorageValue(cid, 54844))
 
elseif getPlayerStorageValue(cid, 17001) >= 1 then -- ride
 
local item = getPlayerSlotItem(cid, 8)
local poke = luaGetItemAttribute(item.uid, "poke")
 
 
if rides[poke] then
doChangeSpeed(cid, getPlayerStorageValue(cid, 54844))
doRemoveCondition(cid, CONDITION_OUTFIT)
doSetCreatureOutfit(cid, {lookType = rides[poke][1] + 351}, -1)
else
setPlayerStorageValue(cid, 17001, -1)
doChangeSpeed(cid, PlayerSpeed)
end
 
local posicao2 = getTownTemplePosition(getPlayerTown(cid))
markFlyingPos(cid, posicao2)
 
elseif getPlayerStorageValue(cid, 13008) >= 1 then -- dive
if not isInArray({5405, 5406, 5407, 5408, 5409, 5410}, getTileInfo(getThingPos(cid)).itemid) then
setPlayerStorageValue(cid, 13008, 0)
doChangeSpeed(cid, PlayerSpeed)
doRemoveCondition(cid, CONDITION_OUTFIT)
return true
end 
 
if getPlayerSex(cid) == 1 then
doSetCreatureOutfit(cid, {lookType = 1034, lookHead = getCreatureOutfit(cid).lookHead, lookBody = getCreatureOutfit(cid).lookBody, lookLegs = getCreatureOutfit(cid).lookLegs, lookFeet = getCreatureOutfit(cid).lookFeet}, -1)
else
doSetCreatureOutfit(cid, {lookType = 1035, lookHead = getCreatureOutfit(cid).lookHead, lookBody = getCreatureOutfit(cid).lookBody, lookLegs = getCreatureOutfit(cid).lookLegs, lookFeet = getCreatureOutfit(cid).lookFeet}, -1)
end
doChangeSpeed(cid, 800)
 
elseif getPlayerGroupId(cid) >= 4 and getPlayerGroupId(cid) <= 7 then
doChangeSpeed(cid, 140*getPlayerGroupId(cid))
else
doChangeSpeed(cid, PlayerSpeed)
end
return true
end
 
Link para o post
Compartilhar em outros sites

[20/01/2015 14:22:02] data/creaturescripts/scripts/login.lua:176: attempt to call global 'luaGetItemAttribute' (a nil value)

erro no arquivo data/creaturescripts/scripts/login.lua na linha 176, tentativa de chamar uma variável global "luaGetItemAttribute" (retornou valor nulo)

O erro ocorre qnd vc usa uma variável que não existe, no seu caso ele tá interpretando a função como uma variável porque a função não existe.
Que eu saiba a função correta é getItemAttribute e não luaGetItemAttribute, experimenta dar um ctrl+f e ir trocando pra ver se funciona.

Todos os meus trabalhos importantes estão na seção "Sobre mim" no meu perfil; Dá uma passada lá!

"Há três caminhos para o fracasso: não ensinar o que se sabe, não praticar o que se ensina, e não perguntar o que se ignora." - São Beda

I7Pm6ih.png

(obg ao @Beeny por fazer essa linda sign <3)

Link para o post
Compartilhar em outros sites
o erro ficou um pouco diferente olha
 
 
 
 
[20/01/2015 14:52:41] [Error - CreatureScript Interface] 
[20/01/2015 14:52:41] data/creaturescripts/scripts/login.lua:onLogin
[20/01/2015 14:52:41] Description: 
[20/01/2015 14:52:41] data/creaturescripts/scripts/login.lua:176: attempt to call global 'GetItemAttribute' (a nil value)
[20/01/2015 14:52:41] stack traceback:
[20/01/2015 14:52:41] data/creaturescripts/scripts/login.lua:176: in function <data/creaturescripts/scripts/login.lua:83>
Link para o post
Compartilhar em outros sites
 

 

  Em 20/01/2015 em 16:47, xWhiteWolf disse:
Que eu saiba a função correta é getItemAttribute
Mostrar mais  


ali vc colocou GetItemAttribute, são coisas diferentes hahaha e vc só muda o "luaG" pra "g", o resto tem que ficar igual com os parenteses e parametros tudo certinho

ex: local poke = luaGetItemAttribute(item.uid, "poke")
vai ficar 

local poke = getItemAttribute(item.uid, "poke")

só repetir pros outros casos

Todos os meus trabalhos importantes estão na seção "Sobre mim" no meu perfil; Dá uma passada lá!

"Há três caminhos para o fracasso: não ensinar o que se sabe, não praticar o que se ensina, e não perguntar o que se ignora." - São Beda

I7Pm6ih.png

(obg ao @Beeny por fazer essa linda sign <3)

Link para o post
Compartilhar em outros sites

White eu já mudei pra getItemAttribute todos

 

e foi depois disso que veio esse erro diferente que te mostrei


  Em 20/01/2015 em 17:10, xWhiteWolf disse:

 

 

 



ali vc colocou GetItemAttribute, são coisas diferentes hahaha e vc só muda o "luaG" pra "g", o resto tem que ficar igual com os parenteses e parametros tudo certinho

ex: local poke = luaGetItemAttribute(item.uid, "poke")
vai ficar 

local poke = getItemAttribute(item.uid, "poke")

só repetir pros outros casos

 

Mostrar mais  

 então eu fiz isso mas arapeçeu o 2 erro que mostrei ali '*-*

Link para o post
Compartilhar em outros sites

  Em 20/01/2015 em 16:53, andreswmsoto disse:
[20/01/2015 14:52:41] data/creaturescripts/scripts/login.lua:176: attempt to call global 'GetItemAttribute' (a nil value)
Mostrar mais  

  Em 20/01/2015 em 17:10, xWhiteWolf disse:
ali vc colocou GetItemAttribute, são coisas diferentes
Expand   Mostrar mais  
 

Todos os meus trabalhos importantes estão na seção "Sobre mim" no meu perfil; Dá uma passada lá!

"Há três caminhos para o fracasso: não ensinar o que se sabe, não praticar o que se ensina, e não perguntar o que se ignora." - São Beda

I7Pm6ih.png

(obg ao @Beeny por fazer essa linda sign <3)

Link para o post
Compartilhar em outros sites

blz deixei tudo minusculo e deu isso

 

 

[20/01/2015 15:38:59] [Error - CreatureScript Interface] 
[20/01/2015 15:38:59] data/creaturescripts/scripts/login.lua:onLogin
[20/01/2015 15:38:59] Description: 
[20/01/2015 15:38:59] (luaGetItemAttribute) Item not found
 
[20/01/2015 15:38:59] [Error - CreatureScript Interface] 
[20/01/2015 15:38:59] data/creaturescripts/scripts/login.lua:onLogin
[20/01/2015 15:38:59] Description: 
[20/01/2015 15:38:59] data/creaturescripts/scripts/login.lua:179: attempt to index field '?' (a nil value)
[20/01/2015 15:38:59] stack traceback:
[20/01/2015 15:39:00] data/creaturescripts/scripts/login.lua:179: in function <data/creaturescripts/scripts/login.lua:83>
[20/01/2015 15:39:00] [ADM]Evolution has logged out.
 
 
 
procurei com Ctrl+F e nao achou nenhuma palavra com "lua"

o pior e que so falta arrumar isso ai pra funcionar :/ , esse erro da quando eu logo com personagem com vocação de [ADM] :/, será que o erro poderia estar na vocação?, pois personagens normais logam, [Tutor] loga,[GM] loga mas o [ADM] não.

Editado por andreswmsoto (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

aparentemente tá tudo certo, se não funcionar agr eu n vou saber te ajudar ;~

  Mostrar conteúdo oculto

Todos os meus trabalhos importantes estão na seção "Sobre mim" no meu perfil; Dá uma passada lá!

"Há três caminhos para o fracasso: não ensinar o que se sabe, não praticar o que se ensina, e não perguntar o que se ignora." - São Beda

I7Pm6ih.png

(obg ao @Beeny por fazer essa linda sign <3)

Link para o post
Compartilhar em outros sites

Não foi, o erro persiste :/ , não sera que esse get attribute item ta tentando pegar um item o qual o id não exista?, e que é assim, meu mapper usou o .spr diferente do meu, o dele tem o triplo de items, sera que ele colou algum item no mapa que o meu cliente n consegue achar porque ele não existe no meu .spr?, ou isso e realmente erro no script?

Link para o post
Compartilhar em outros sites

o erro é que ele tá pegando o item do slot 8 e tá como se não tivesse item lá, não manjo mt de poketibia mas vou mover o tópico pro suporte de derivados que lá pode ter alguém que mexa mais e possa te ajudar melhor.

Todos os meus trabalhos importantes estão na seção "Sobre mim" no meu perfil; Dá uma passada lá!

"Há três caminhos para o fracasso: não ensinar o que se sabe, não praticar o que se ensina, e não perguntar o que se ignora." - São Beda

I7Pm6ih.png

(obg ao @Beeny por fazer essa linda sign <3)

Link para o post
Compartilhar em outros sites

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

  • Conteúdo Similar

    • Por Under
      Apresentando o Tibia-IA: A IA para Desenvolvimento de Servidores Tibia! 
       O que é o Tibia-IA?
      Um modelo de IA especializado para Tibia! Ele está atualmente em teste gratuito, e eu adoraria que vocês o experimentassem. Basta acessar https://ai.tibiaking.com, criar uma conta e começar a usar totalmente de graça! 
       Versão Experimental Fechada
      Atualmente, algumas funcionalidades ainda estão em desenvolvimento. No momento, apenas a geração de scripts está disponível para o público.
      Se encontrarem qualquer problema nos scripts gerados, me avisem! Vamos juntos construir a IA mais poderosa para ajudar no desenvolvimento de servidores Tibia!  
      Contato direto discord : underewar
       Acesse agora: https://ai.tibiaking.com
       Como funciona?
       Geração automática de scripts LUA para TFS  Suporte a diferentes eventos, criaturas, NPCs, magias, etc.  Ferramenta em constante evolução para aprimorar o desenvolvimento Novidades em breve confira no site. O acesso ao Tibia-IA está disponível para testes GRATUITOS! 
      Basta criar uma conta em: https://ai.tibiaking.com
      Utilize a IA para gerar seus scripts de forma simples e rápida
      Envie feedbacks para ajudarmos a tornar a ferramenta ainda melhor!

      Problemas relatar diretamente no meu discord pessoal : underewar
       
       
    • Por Imperius
      O propósito é criar uma nova função em creaturescripts que será acionada toda vez que um novo report (CTRL + R) for aberto.
       
      Eu implementei para enviar uma notificação no grupo do Telegram, contendo os dados do report.
       
      Isso garantirá que os GMs tenham acesso aos reports dos jogadores mesmo quando não estiverem logados, e também evitará que algum report seja perdido caso o jogador saia do servidor.
      A parte do Telegram é apenas um exemplo. Você pode ajustar o script para executar outras ações desejadas.
       
      creatureevent.cpp:
      Dentro deste arquivo, localize a função:
       
      uint32_t CreatureEvent::executeChannelLeave(Player* player, uint16_t channelId, UsersMap usersMap)  
      abaixo dela, adicione:
       
      uint32_t CreatureEvent::executeOpenRuleViolation(Player* player, std::string message) { if (!m_interface->reserveEnv()) { std::clog << "[Error - CreatureEvent::executeOpenRuleViolation] Call stack overflow." << std::endl; return 0; } ScriptEnviroment* env = m_interface->getEnv(); env->setScriptId(m_scriptId, m_interface); lua_State* L = m_interface->getState(); m_interface->pushFunction(m_scriptId); lua_pushnumber(L, env->addThing(player)); lua_pushstring(L, message.c_str()); bool result = m_interface->callFunction(2); m_interface->releaseEnv(); return result; }  
      Após, procure por:
       
      std::string CreatureEvent::getScriptEventName() const  
      abaixo de:
       
      case CREATURE_EVENT_CHANNEL_LEAVE: return "onLeaveChannel";  
      adicione:
       
      case CREATURE_EVENT_OPEN_RULE_VIOLATION: return "onOpenRuleViolation";  
      Agora, procure por:
       
      std::string CreatureEvent::getScriptEventParams() const  
      abaixo de:
       
      case CREATURE_EVENT_CHANNEL_LEAVE: return "cid, channel, users";  
      adicione:
       
      case CREATURE_EVENT_OPEN_RULE_VIOLATION: return "cid, message";  
      Procure por:
       
      bool CreatureEvent::configureEvent(xmlNodePtr p)  
      abaixo de:
       
      else if(tmpStr == "leavechannel") m_type = CREATURE_EVENT_CHANNEL_LEAVE;  
      adicione:
       
      else if(tmpStr == "openruleviolation") m_type = CREATURE_EVENT_OPEN_RULE_VIOLATION;  
       
      creatureevent.h:
      Dentro deste arquivo, localize:
       
      enum CreatureEventType_t  
      adicione "CREATURE_EVENT_OPEN_RULE_VIOLATION" como o último item de enum CreatureEventType_t
       
      Exemplo:
       
      enum CreatureEventType_t { // ... CREATURE_EVENT_OPEN_RULE_VIOLATION };  
      Agora, procure por:
       
      uint32_t executeChannelLeave(Player* player, uint16_t channelId, UsersMap usersMap);  
      abaixo dela, adicione:
       
      uint32_t executeOpenRuleViolation(Player* player, std::string message);  
      game.cpp:
      Dentro deste arquivo, localize:
       
      bool Game::playerReportRuleViolation(Player* player, const std::string& text)  
      e substitua por:
       
      bool Game::playerReportRuleViolation(Player* player, const std::string& text) { //Do not allow reports on multiclones worlds since reports are name-based if(g_config.getNumber(ConfigManager::ALLOW_CLONES)) { player->sendTextMessage(MSG_INFO_DESCR, "Rule violation reports are disabled."); return false; } cancelRuleViolation(player); boost::shared_ptr<RuleViolation> rvr(new RuleViolation(player, text, time(NULL))); ruleViolations[player->getID()] = rvr; ChatChannel* channel = g_chat.getChannelById(CHANNEL_RVR); if(!channel) return false; for(UsersMap::const_iterator it = channel->getUsers().begin(); it != channel->getUsers().end(); ++it) it->second->sendToChannel(player, SPEAK_RVR_CHANNEL, text, CHANNEL_RVR, rvr->time); CreatureEventList joinEvents = player->getCreatureEvents(CREATURE_EVENT_OPEN_RULE_VIOLATION); for(CreatureEventList::iterator it = joinEvents.begin(); it != joinEvents.end(); ++it) (*it)->executeOpenRuleViolation(player, text); return true; }  
      Agora é só compilar a source.
       
      depois em "data > creaturescripts > creaturescripts.xml", adicione:
       
      <event type="login" name="loginNotifyRuleViolation" script="notifyRuleViolation.lua"/> <event type="openruleviolation" name="openNotifyRuleViolation" script="notifyRuleViolation.lua"/>  
      em "data > creaturescripts > scripts", crie um arquivo notifyRuleViolation.lua e adicione:
       
      function onOpenRuleViolation(cid, message) local config = { token = "", -- Token do seu BOT no Telegram chatId = "" -- ID do chat do Telegram que será enviado a notificação. } local message = "Player: "..getCreatureName(cid).."\n\nReport:\n"..message.."" message = string.gsub(message, "\n", "%%0A") local url = "https://api.telegram.org/bot"..config.token.."/sendMessage" local data = "chat_id="..config.chatId.."&text="..message.."" local curl = io.popen('curl -d "'..data..'" "'..url..'"'):read("*a") return true end function onLogin(cid) registerCreatureEvent(cid, "openNotifyRuleViolation") return true end  
       
      Demonstração:
      1. Jogador abre um novo report (CTRL + R)

      2. notifyRuleViolation.lua, definido em creaturescripts.xml, é acionado para enviar uma notificação ao grupo do Telegram.
       

       
    • Por Maniaco
      Salve TibiaKing!!! TFS 0.4 . 8.60
       
      Estou implementando o Sistema do @WooX de Cave Exlusiva

      Link:
       
      Porem estou com um problema seguindo o tutorial completo dele acabo tendo um retorno de erro na Distro! E ja que o mesmo nao entra no forum deis de 14/01! Venho solicitar ajuda de vocês!
      Caso alguem tenha o Discord Dele Favor me Passe  
      Vamos lá!
      Erro:
       
      Script :
       
      Lib
       
       
      Print Rme:
       
       
      Lembrando que nao esta funcionando em geral, Acrédito que eu tenha pulado algo ou deixado passar despercebido!
      Espero que alguem consiga me ajudar vlw!
    • Por Maniaco
      Boa Tarde TibiaKing!!!
       
      Bom estou precisando arrumar um script, não deve ser muito difícil !! (pra quem sabe  !)
      Quem poder ajudar já agradeço.
       
      Resumindo apartir do momento que falo Travel, Yes para o npc ele me teleporta para posicao inicial me transformando(LookType) e precisa me levar até o destino final. (posFinal)
      até ai tudo bem problema que ele comeca a funcionar e me leva para lugar aleatorio e fica parado lá imovel. ( não da erro na Distro ) Apenas fico parado na LookType de barco.
       
      Uso tfs 0.4 8.60
       
      local posis = {
      --[pos do npc] = {pos inicial, pos final},
      [{x = 115, y = 143, z = 10}] = {posIni = {x = 114, y = 134, z = 10}, posFinal = {x = 76, y = 134, z = 10}},
      [{x = 74, y = 132, z = 10}] = {posIni = {x = 76, y = 134, z = 10}, posFinal = {x = 95, y = 147, z = 10}},
      }
       
       é um NPC
       
       
      .LUA DO NPC
       
      LIB - TRAVEL.LUA
       
       
       
      ,XML
       
    • Por Ghaz
      Fala pessoal tudo bem?
       
      Estou com dificuldades em um script e preciso da ajuda dos magos do LUA rs.
       
      Tenho um script que quando o player morre (onDeath), ele faz algumas coisas e depois ele chama uma função que deveria retornar uma table (array) para eu fazer o for com o ipairs certinho. Segue abaixo o código:
       
       
      Segue abaixo a função getPlayersInArea:
       
       
      Acontece que no código de cima (do primeiro spoiler) eu dou um print no retorno da função getPlayersInArea, porém ela não tá me retornando a table, tá me retornando só: 2
       
       
       
      Alguém consegue me ajudar em, como raios eu faço a função retornar a lista de players ao invés da quantidade? Acredito que ta retornando o count da table, e não os itens do array.
       
       
      Agradeço desde já, valeu tchurma!
  • Estatísticas dos Fóruns

    96823
    Tópicos
    519566
    Posts
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo