-
Total de itens
142 -
Registro em
-
Última visita
Tudo que Helflin postou
-
O problema que o Brunorushmaxtibia está é o mesmo que o meu, ou seja, esse erro ai é alguma coisa voltada aos NPCs. Porém o aqui compilou, só que deu muitos WARNINGS, não sei se tem a ver, mas eu consigo ativar o Cast System, mas dá erro na hora de fazer login na conta que fica os casts, no caso o 1/1 ou enter, não abre. Dá invalid account name. Tem que criar uma conta na database? Que eu saiba não. Ajudem ae galera...
-
Meu parceiro, sou iniciante ainda ;D Deu erro: Resolvido, PODEM FECHAR O TÓPICO, vlws. alterei: if isInRange(getCreaturePosition, position[1], position[2] then para: if isInRange(getCreaturePosition(cid), position[1], position[2]) then
-
Bom, \data\spells\scripts\attack\fire bomb.lua Acontece o seguinte, local from,to = {x = 133, y = 52, z =7},{x = 161, y = 76, z =7} --zombie event local from,to = {x = 981, y = 1027, z =7},{x = 1007, y = 1046, z =7} -- demon oak local from,to = {x = 1076, y = 1175, z =7},{x = 1097, y = 1197, z =7} -- yalahar quest Não funciona os três lugares, funciona apenas em um lugar. Eu gostaria que fosse proibido usar a runa nesses 3 lugares.
-
ta osso, da erro na compilação :s
-
Bom não é isso, esses bagulhos de quest era que eu tinha copiado um outro arquivo. Eu estou querendo que exemplo: Administrador entrou no teleporte para a sala de trainers. -- ai vai na database e altera a coluna "is_training" para 1, somente a linha do Administrador. Ou seja, o Administrador fica com 1 em "is_training", no caso 1 em boolean = verdadeiro... --------------------------------------------------------------------------------- Bom, resolvi aqui, o erro era esse: function onStepIn(cid, item, pos) if item.uid == 1478 then doPlayerSendTextMessage(cid,22,"Voce acaba de iniciar seu treinamento.") db.query("UPDATE `players` SET `is_training` = 1 WHERE name = '".. getCreatureName(cid).."'") return true end end na quarta linha, correto: name ao invés de 'name' . RESOLVIDO, PODEM FECHAR O TÓPICO. Vlw pela ajuda galera, abraços.
-
Sei la, eu tinha copiado de um outro bagulho, nem sei mais kkkkkkkkkkkkkkkkkkkkkkkkkkk da um help ai mano pode tirar isso ae ve se assim fica melhor: function onStepIn(cid, item, pos) if item.uid == 1478 then doPlayerSendTextMessage(cid,22,"Voce acaba de iniciar seu treinamento.") db.query("UPDATE `players` SET `is_training` = 1 WHERE 'name' = '".. getCreatureName(cid).."'") return true end end
-
Fawz, não mudou nada na database, creio que tenha erro na comparação. O problema é para definir a linha do player que tem que ser alterada.
-
Fawz, esta linha que você citou, altera para 1 todos os players, ai que está o problema, eu queria que trocasse somente o atributo do player que entrou no teleport. Xanpsw, a sua linha ai não modificou nada na tabela. @UP db.query("UPDATE `players` SET `is_training` = 1;") O negócio é modificar esta query para trocar o atributo somente de 1 player ao invés de todos os players.
-
Sim, eu queria mudar o valor do "atributo" >> 'is_training' de 0 para 1... da tabela 'players'. Sendo que esse atributo é para cada player, ou seja, teria de mudar somente na linha daquele player, e eu não sei como definir esta linha....
-
Bom, eu queria que quando o player entrasse no teleport, os atributos "is_training" que de todos estão 0(que eu defini), mudasse para 1, isso no atributo somente do jogador que entrar no teleport. Pensei em algo assim, mas da errado: function onStepIn(cid, item, pos) if item.uid == 1478 then queststatus = getPlayerStorageValue(cid,33339) if queststatus == -1 then doPlayerSendTextMessage(cid,22,"Voce acaba de iniciar seu treinamento.") setPlayerStorageValue(cid,33339,1) db.query("INSERT INTO `players` WHERE ('name' = '".. getCreatureName(cid).."')(`is_training`) VALUES '1';") return true end end end É mais em MYSQL a duvida.
-
dúvida Level and vocation instead of world name on character login
um tópico no fórum postou Helflin Linguagens de Programação
Bom consegui o que queria, kkkkk... transformei em tutorial.... Essas modificações fará com que fique assim: Vá em: "iologindata.h" e procure por isto: uint32_t getAccountIdByName(const std::string& name) const; Na linha de baixo, cole isto: std::string getCheckPlayerLevel(const std::string& name) const; Vá em: "iologindata.cpp" e no fim do arquivo, na ultima linha, cole o que esta logo abaixo: std::string IOLoginData::getCheckPlayerLevel(const std::string& name) const { Database* db = Database::getInstance(); DBQuery query; query << "SELECT `level`, `vocation`, `promotion` FROM `players` WHERE `name` " << db->getStringComparer() << db->escapeString(name) << ";"; DBResult* result; if(!(result = db->storeQuery(query.str()))) return false; const uint32_t pLevel = result->getDataInt("level"); const uint32_t pVoc = result->getDataInt("vocation"); const uint32_t prom = result->getDataInt("promotion"); std::string voc; if (prom == 0) { switch (pVoc) { case 0: voc = "Rookie"; break; case 1: voc = "S"; break; case 2: voc = "D"; break; case 3: voc = "P"; break; case 4: voc = "K"; break; default: voc = "Uknown"; } } else if (prom == 1) { switch (pVoc) { case 0: voc = "Rookie"; break; case 1: voc = "MS"; break; case 2: voc = "ED"; break; case 3: voc = "RP"; break; case 4: voc = "EK"; break; default: voc = "Uknown"; } } else if (prom == 2) { switch (pVoc) { case 0: voc = "Rookie"; break; case 1: voc = "VIP MS"; break; case 2: voc = "VIP ED"; break; case 3: voc = "VIP RP"; break; case 4: voc = "VIP EK"; break; default: voc = "Uknown"; } } std::stringstream ret; ret << "Level: "<< pLevel << " Voc: " << voc; result->free(); return ret.str(); } Vá em "protocollogin.cpp" e procure isto: output->putString(g_config.getString(ConfigManager::SERVE R_NAME)); Troque por isto, ou então adicione // antes do inicio da linha: //output->putString(g_config.getString(ConfigManager::SERVE R_NAME)); Mais a baixo, onde estiver este código, selecione: #ifndef __LOGIN_SERVER__ output->putString((*it)); if(g_config.getBool(ConfigManager::ON_OR_OFF_CHARLIST)) { if(g_game.getPlayerByName((*it))) output->putString("Online"); else output->putString("Offline"); } else output->putString(g_config.getString(ConfigManager::SERVER_NAME)); output->put<uint32_t>(serverIp); output->put<uint16_t>(g_config.getNumber(ConfigManager::GAME_PORT)); #else E altere por esse a baixo: #ifndef __LOGIN_SERVER__ output->putString((*it)); if(g_config.getBool(ConfigManager::ON_OR_OFF_CHARLIST)) { if(g_game.getPlayerByName((*it))) output->putString("Online"); else output->putString("Offline"); } else { std::stringstream str; Player *player = g_game.getPlayerByName((*it)); bool v = false; if(!player) { v = true; player = g_game.getPlayerByNameEx((*it)); } str << player->getVocation()->getName(); str << ", "; str << player->getLevel(); output->putString(str.str()); if(v) delete player; } output->put<uint32_t>(serverIp); output->put<uint16_t>(g_config.getNumber(ConfigManager::GAME_PORT)); #else Lembrando que para funcionar precisa estar assim no seu config.lua. displayOnOrOffAtCharlist = false Créditos: EvulMastah(otland) >> Corrigiu o erro que dava. Jetro(otland) >> Postou os códigos. Eu, por trazer ao XTibia, rs.- 2 respostas
-
- level on login
- level
-
(e 2 mais)
Tags:
-
Sim, funciona.
- 2 respostas
-
- tile level
- piso para player level x
- (e 2 mais)
-
Sim cara, eu agradeço a sua intenção, não estou criticando você não, assim como o buxa ai quis dizer, é caro é.... mas aqui é um forum, e todos podem se ajudar para chegar no objetivo... Podem fechar este tópico, pois creio que ninguém vai querer passar um distro com o cast funcionando, porque este sistema acho que ainda esta sendo pago e poucos servidores tem esse sistema.
- 12 respostas
-
- cast system
- cast
- (e 4 mais)
-
Feito à pedido de um usuário. data/movements/script -- crie um arquivo -- pisolevel.lua function onStepIn(cid, item, position, fromPosition) level = 200 if getPlayerLevel(cid) < level then doTeleportThing(cid, fromPosition, true) doSendMagicEffect(getThingPos(cid), CONST_ME_MAGIC_RED) doPlayerSendCancel(cid,"Only level " .. level .. " or more can pass here.") end return TRUE end data/movements -- abra o arquivo -- movements.xml e adicione a tag abaixo: <movevent type="StepIn" uniqueid="7777" event="script" value="pisolevel.lua"/> Depois adicionar ao piso onde quer, no mapa editor, em uniqueid por 7777... ai sim somente os leveis 200+ vão passar.
- 2 respostas
-
- tile level
- piso para player level x
- (e 2 mais)
-
Bom, não sei se existe outro tópico igual, pois não encontrei. Então criei para ajudar um outro usuário. Esses códigos servem para arrumar o follow attack, pois as vezes você anda normalmente, sem qualquer bicho na tela e o follow attack é desativado... Procure a tag abaixo em protocolgame.cpp: void ProtocolGame::sendCancelTarget() { NetworkMessage_ptr msg = getOutputBuffer(); if(msg) { TRACK_MESSAGE(msg); msg->AddByte(0xA3); } } E troque este bloco por este: void ProtocolGame::sendCancelTarget() { NetworkMessage_ptr msg = getOutputBuffer(); if(msg) { TRACK_MESSAGE(msg); msg->AddByte(0xA3); msg->AddU32(0); } } Se não funcionar o de cima teste este: void ProtocolGame::sendCancelTarget() { NetworkMessage_ptr msg = getOutputBuffer(); if(msg) { TRACK_MESSAGE(msg); msg->put<char>(0xA3); msg->put<uint32_t>(0); } } Depois disso é só F9 e compilar o seu distro. Créditos: Stewie (otland).
- 1 resposta
-
- ajeitar bug do follow atk 8.6
- follow
- (e 4 mais)
-
dúvida Ir para templo quando acabar a viptime do GESIOR
pergunta respondeu ao TiagoBordin1988 de Helflin em Scripts
tu usa qual sistema de vip? -
dúvida Ir para templo quando acabar a viptime do GESIOR
pergunta respondeu ao TiagoBordin1988 de Helflin em Scripts
Eu aconselho vc a tirar o teleport que faz o jogador tornar-se cidadão de uma cidade vip e utilizar esse script: Nesse script, sempre que acabar a vip do jogador, ele será enviado para o templo dele. em data\creaturescripts\scripts crie vipend.lua function onLogin(cid) local temple = { x =1095, y = 1062, z = 7} if vip.hasVip(cid) == true then if getPlayerStorageValue(cid,55555) ~= 1 then setPlayerStorageValue(cid,55555,1) end else if getPlayerStorageValue(cid,55555) == 1 then doTeleportThing(cid, temple) doPlayerSendTextMessage(cid, 22, "Your VIP Time over!") db.query("UPDATE `accounts` SET `viptime` = 0 WHERE `id` = ".. getAccountIdByName(getPlayerName(cid)) ..";") setPlayerPromotionLevel(cid, 1) setPlayerStorageValue(cid, 55555, 0) end end return true end em data\creaturescripts\scripts abra o arquivo login.lua e add: registerCreatureEvent(cid, "FimVip") e por fim em creaturescripts.xml add this: <event type="login" name="FimVip" event="script" value="vipend.lua"/> -
é só adicionar essa linha no seu ring... <attribute key="preventDrop" value="1" />
-
As vezes pode dar erro no distro com a parada do db.executeQuery.... no caso alterar pra db.query...
-
Tente assim: local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TARGETCASTERORTOPMOST, false) setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_SOUND_BLUE) setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_ENERGY) local condition = createConditionObject(CONDITION_CURSED) setConditionParam(condition, CONDITION_PARAM_DELAYED, 1) addDamageCondition(condition, 5, 2000, -0) setCombatCondition(combat, condition) function onUseWeapon(cid, var) return doCombat(cid, combat, var) end Em weapons.xml, adicione isto: <wand id="2184" level="50" mana="15" min="130" max="170" event="function" value="SCRIPTDAWAND.lua"> <vocation id="5"/> faço nem ideia de que isso possa estar certo.... não é minha área, rs
-
Eu disse que tinha esses, no caso seria o link 1 e o link 2... E outra, são iguais, não tem diferença... Vo testar um por um ainda... fui
- 12 respostas
-
- cast system
- cast
- (e 4 mais)
-
Aqui as vezes buga também, abro o mapa editor e nao tem nenhuma town, ai as casas tmb bugam... oque eu faço é manter sempre uma copia do mapa em outro lugar...
-
Esses são os que eu tenho, mas dizem que estão bugado, mas to nem ai, vo tentar 1 por 1 kkkk mesmo assim vlw a intenção de ajudar lek..
- 12 respostas
-
- cast system
- cast
- (e 4 mais)
-
é isso ai, troque: db.executeQuery para db.query
-
Quem Está Navegando 0 membros estão online
- Nenhum usuário registrado visualizando esta página.