-
Total de itens
818 -
Registro em
-
Última visita
-
Dias Ganhos
25
Tudo que Yan Liima postou
-
kkk ia dizer a mesma coisa que o Marco. Podera resolver seus problemas mais dependendo as sprites vão ficar diferente. Boa Sorte! xD
-
Não entendi muito bem... Eu uso este NPC de casamento é muito bom, tem a opção de se casar e separar. Só que não entendi muito bem o que você esta querendo Bom de qualquer forma aqui está o sistema completo: http://www.xtibia.com/forum/topic/188712-marriage-system-npc/
-
Putz ai você quer forçar a amizade né amigo? Estou viajando e não tenho um servidor para testar, pois não sei a forma correta de por em minutos por isso precisaria de um servidor para testar antes de mandar para você. Você poderia mudar a mensagem também para ficar mais fácil "Você pode usar este comando apenas uma vez por 3 minutos." rsrs Mais creio que adicionando um +param*60... Daria certo.
-
Só tu por 60 = 1 minuto. 120 = 2 minutos etc... kkkk Coloque o meu comentário da script que te mandei como melhor resposta se realmente te ajudei.
-
Cara so acho que você deveria organizar mais o tópico e a script para facilitar kkkk Bom estou meio com pressa aqui, então editei a script aqui para você rapidão. Teste ai... --[[script By Vodkart]]--function onSay(cid, words, param)if getPlayerStorageValue(cid, 212193) > os.time() then return doPlayerSendCancel(cid, "Espere " .. getPlayerStorageValue(cid, 212193) - os.time() .. " segundos.") endlocal config = {pz = False, -- players precisam estar em protection zone para usar? (true or false)battle = true, -- players deve estar sem battle (true or false)custo = true, -- se os teleport irão custa (true or false)need_level = true, -- se os teleport irão precisar de level (true or false)premium = true -- se precisa ser premium account (true or false)}--[[ Config lugares]]--local lugar = {["depot"] = { -- nome do lugarpos = {x=129, y=54, z=6},level = 5,price = 1000},["templo"] = { -- nome do lugarpos = {x=160, y=54, z=7},level = 10, price = 2000},["arena"] = { -- nome do lugarpos = {x=125, y=351, z=9},level = 15,price = 3000},["area vip"] ={ -- nome do lugarpos = {x=280, y=87, z=4},level = 20,price = 4000}}--[[ Lista de Viagem (Não mexa) ]]--if (param == "lista") thenlocal str = ""str = str .. "lista de viagem :\n\n"for name, pos in pairs(lugar) dostr = str..name.."\n"endstr = str .. ""doShowTextDialog(cid, 6579, str)return TRUEendlocal a = lugar[param]if not(a) thendoPlayerSendTextMessage(cid, 22, "desculpe,este lugar não existe")doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF)return TRUEelseif config.pz == true and getTilePzInfo(getCreaturePosition(cid)) == FALSE thendoPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT,"você precisa estar em protection zone pra poder teleportar.")return TRUEelseif config.premium == true and not isPremium(cid) thendoPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "Apenas players com premium account podem teleportar.")return TRUEelseif config.battle == true and getCreatureCondition(cid, CONDITION_INFIGHT) == TRUE thendoPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "Você precisa estar sem battler pra poder teleportar.")return TRUEelseif config.need_level == true and getPlayerLevel(cid) < a.level thendoPlayerSendTextMessage(cid, 22, "Desculpe,Voce não tem level. voce precisa "..a.level.." level ou mais para ser teleportado.")doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF)return TRUEelseif config.custo == true and doPlayerRemoveMoney(cid, a.price) == FALSE thendoPlayerSendTextMessage(cid, 22, "Desculpe,voce nao tem dinheiro suficiente. Voce precisa "..a.price.." gp para ser teleportado.")doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF)return TRUEenddoTeleportThing(cid, a.pos)doSendMagicEffect(a.pos, CONST_ME_TELEPORT)doPlayerSendTextMessage(cid, 22, "" .. getPlayerName(cid) .. " foi teleportado para: \n " .. param .. ".")setPlayerStorageValue(cid, 212193, os.time() + 30) -- tempo em segundos.return TRUEend
-
pedido Vida e mana por porcentagem tfs 1.2
pergunta respondeu ao julhinhuu de Yan Liima em Resolvidos
Putz, sério? Haha fico feliz em ter te ajudado xD- 9 respostas
-
pedido Vida e mana por porcentagem tfs 1.2
pergunta respondeu ao julhinhuu de Yan Liima em Resolvidos
Tive olhando aqui e parece que é diferente certo? Em tfs 1.2 é assim? msg.add<uint16_t>(std::min<int32_t>(player->getHealth(), std::numeric_limits<uint16_t>::max())); msg.add<uint16_t>(std::min<int32_t>(player->getPlayerInfo(PLAYERINFO_MAXHEALTH), std::numeric_limits<uint16_t>::max())); se for tente assim... Em protocolgame.cpp troque: msg.add<uint16_t>(std::min<int32_t>(player->getHealth(), std::numeric_limits<uint16_t>::max())); msg.add<uint16_t>(std::min<int32_t>(player->getPlayerInfo(PLAYERINFO_MAXHEALTH), std::numeric_limits<uint16_t>::max())); Por: if (player->getPlayerInfo(PLAYERINFO_MAXHEALTH) > 0) { msg.add<uint16_t>(player->getHealth() * 100 / player->getPlayerInfo(PLAYERINFO_MAXHEALTH)); msg.add<uint16_t>(100); } else { msg.add<uint16_t>(0); msg.add<uint16_t>(0); } Troque: msg.add<uint16_t>(std::min<int32_t>(player->getMana(), std::numeric_limits<uint16_t>::max())); msg.add<uint16_t>(std::min<int32_t>(player->getPlayerInfo(PLAYERINFO_MAXMANA), std::numeric_limits<uint16_t>::max())); Por: if (player->getPlayerInfo(PLAYERINFO_MAXMANA) > 0) { msg.add<uint16_t>(player->getMana() * 100 / player->getPlayerInfo(PLAYERINFO_MAXMANA)); msg.add<uint16_t>(100); } else { msg.add<uint16_t>(0); msg.add<uint16_t>(0); } E recompile tudo, tomara que de certo Estou torcendo por você amigo. xD- 9 respostas
-
pedido Vida e mana por porcentagem tfs 1.2
pergunta respondeu ao julhinhuu de Yan Liima em Resolvidos
Que pena não conheço muito a tfs 1.2.- 9 respostas
-
pedido Vida e mana por porcentagem tfs 1.2
pergunta respondeu ao julhinhuu de Yan Liima em Resolvidos
Para isso você irá precisar de suas Sources. Não sei se funcionana na tfs 1.2, mais vamos lá... Vai em protocolgame.cpp e procure por: msg->put<uint16_t>(player->getHealth()); msg->put<uint16_t>(player->getPlayerInfo(PLAYERINFO_MAXHEALTH)); Substitue por: if (player->getPlayerInfo(PLAYERINFO_MAXHEALTH) > 0) { msg->put<uint16_t>(uint16_t(player->getHealth() * 100 / player->getPlayerInfo(PLAYERINFO_MAXHEALTH))); msg->put<uint16_t>(100); } else { msg->put<uint16_t>(0); msg->put<uint16_t>(0); } Depois procure por: msg->put<uint16_t>(player->getPlayerInfo(PLAYERINFO_MANA)); msg->put<uint16_t>(player->getPlayerInfo(PLAYERINFO_MAXMANA)); Substitue por: if (player->getPlayerInfo(PLAYERINFO_MAXMANA) > 0) { msg->put<uint16_t>(player->getPlayerInfo(PLAYERINFO_MANA) * 100 / player->getPlayerInfo(PLAYERINFO_MAXMANA)); msg->put<uint16_t>(100); } else { msg->put<uint16_t>(0); msg->put<uint16_t>(0); } Testado em tfs 0.3.6 e 0.4.- 9 respostas
-
Seria uma boa você compartilhar pra galera né hasuahsuahsuha
-
creatureevent Evento DoubleXP | TFS 0.4
tópico respondeu ao Marco Oliveira de Yan Liima em Globalevents e Spells
Cara se não me engano o Emerson não queria que outra pessoa postassem as script dele em outro fórum sem a permissão dele. E não esqueça, sempre é bom por os créditos do criador da script. -
Eu ja tive erros com NPC também principalmente com esse NpcSystem, eu sempre procuro resolver sozinho mais quando vejo que não dou conta eu desisto e procuro ajuda, assim como você, estarei deixando os meus arquivos de npc que editei e deixei sem bugs. O meu antigamente dava algo parecido com esse, e eu editei quase todas essas script, mais não sei se vai resolver, não custa tentar né? Estarei deixando o arquivo para você baixar ai... vá na pasta \data\npc e extraia o arquivo que você baixou, se pedir para substituir substitue tudo. Faça backup antes caso precise... npc.rar
-
Para arrumar isso você precisará de suas sources. Em container.cpp procure por Cylinder* Container::__queryDestination(int32_t& index, const Thing* thing, Item** destItem, uint32_t& flags) { if(index == 254 /*move up*/) { index = INDEX_WHEREEVER; *destItem = NULL; Container* parentContainer = dynamic_cast<Container*>(getParent()); if(parentContainer) return parentContainer; return this; } if(index == 255 /*add wherever*/) { index = INDEX_WHEREEVER; *destItem = NULL; } else if(index >= (int32_t)capacity()) { /* if you have a container, maximize it to show all 20 slots then you open a bag that is inside the container you will have a bag with 8 slots and a "grey" area where the other 12 slots where from the container if you drop the item on that grey area the client calculates the slot position as if the bag has 20 slots */ index = INDEX_WHEREEVER; *destItem = NULL; } const Item* item = thing->getItem(); if(!item) return this; if(!((flags & FLAG_IGNOREAUTOSTACK) == FLAG_IGNOREAUTOSTACK) && item->isStackable() && item->getParent() != this) { //try to find a suitable item to stack with uint32_t n = itemlist.size(); for(ItemList::reverse_iterator cit = itemlist.rbegin(); cit != itemlist.rend(); ++cit, --n) { if((*cit)->getID() == item->getID() && (*cit)->getItemCount() < 100) { *destItem = (*cit); index = n; return this; } } } if(index != INDEX_WHEREEVER) { Thing* destThing = __getThing(index); if(destThing) *destItem = destThing->getItem(); if(Cylinder* subCylinder = dynamic_cast<Cylinder*>(*destItem)) { index = INDEX_WHEREEVER; *destItem = NULL; return subCylinder; } } return this; } substitue por Cylinder* Container::__queryDestination(int32_t& index, const Thing* thing, Item** destItem, uint32_t&) { if(index == 254 /*move up*/) { index = INDEX_WHEREEVER; *destItem = NULL; Container* parentContainer = dynamic_cast<Container*>(getParent()); if(parentContainer) return parentContainer; return this; } else if(index == 255 /*add wherever*/){ index = INDEX_WHEREEVER; *destItem = NULL; } else if(index >= (int32_t)capacity()){ /* if you have a container, maximize it to show all 20 slots then you open a bag that is inside the container you will have a bag with 8 slots and a "grey" area where the other 12 slots where from the container if you drop the item on that grey area the client calculates the slot position as if the bag has 20 slots */ index = INDEX_WHEREEVER; *destItem = NULL; } const Item* item = thing->getItem(); if(item == NULL){ return this; } if(item->isStackable()){ if(item->getParent() != this){ //try find a suitable item to stack with uint32_t n = 0; for(ItemList::iterator cit = itemlist.begin(); cit != itemlist.end(); ++cit){ if((*cit) != item && (*cit)->getID() == item->getID() && (*cit)->getItemCount() < 100){ *destItem = (*cit); index = n; return this; } ++n; } } } if(index != INDEX_WHEREEVER){ Thing* destThing = __getThing(index); if(destThing) *destItem = destThing->getItem(); Cylinder* subCylinder = dynamic_cast<Cylinder*>(*destItem); if(subCylinder){ index = INDEX_WHEREEVER; *destItem = NULL; return subCylinder; } } return this; } em item.cpp procure void Item::setDefaultSubtype() caso não estiver substitue a função por isso void Item::setDefaultSubtype() { setItemCount(1); const ItemType& it = items[id]; if(it.charges) setCharges(it.charges); } e em player.cpp procure Cylinder* Player::__queryDestination(int32_t& index, const Thing* thing, Item** destItem, uint32_t& flags) { substitue toda a função por Cylinder* Player::__queryDestination(int32_t& index, const Thing* thing, Item** destItem, uint32_t& flags) { if(index == 0 /*drop to capacity window*/ || index == INDEX_WHEREEVER){ *destItem = NULL; const Item* item = thing->getItem(); if(item == NULL){ return this; } //find an appropiate slot std::list<Container*> containerList; for(int i = SLOT_FIRST; i < SLOT_LAST; ++i){ Item* inventoryItem = inventory[i]; if(inventoryItem == tradeItem){ continue; } if(inventoryItem == tradeItem){ continue; } if(inventoryItem){ //try find an already existing item to stack with if(inventoryItem != item && item->isStackable() && inventoryItem->getID() == item->getID() && inventoryItem->getItemCount() < 100){ *destItem = inventoryItem; index = i; return this; } //check sub-containers else if(Container* subContainer = inventoryItem->getContainer()){ Cylinder* tmpCylinder = NULL; int32_t tmpIndex = INDEX_WHEREEVER; Item* tmpDestItem = NULL; tmpCylinder = subContainer->__queryDestination(tmpIndex, item, &tmpDestItem, flags); if(tmpCylinder && tmpCylinder->__queryAdd(tmpIndex, item, item->getItemCount(), flags) == RET_NOERROR){ index = tmpIndex; *destItem = tmpDestItem; return tmpCylinder; } containerList.push_back(subContainer); } } //empty slot else if(__queryAdd(i, item, item->getItemCount(), flags) == RET_NOERROR){ index = i; *destItem = NULL; return this; } } //check deeper in the containers for(std::list<Container*>::iterator it = containerList.begin(); it != containerList.end(); ++it){ for(ContainerIterator iit = (*it)->begin(); iit != (*it)->end(); ++iit){ if(Container* subContainer = (*iit)->getContainer()){ if(subContainer == tradeItem){ continue; } Cylinder* tmpCylinder = NULL; int32_t tmpIndex = INDEX_WHEREEVER; Item* tmpDestItem = NULL; tmpCylinder = subContainer->__queryDestination(tmpIndex, item, &tmpDestItem, flags); if(tmpCylinder && tmpCylinder->__queryAdd(tmpIndex, item, item->getItemCount(), flags) == RET_NOERROR){ index = tmpIndex; *destItem = tmpDestItem; return tmpCylinder; } } } } return this; } Thing* destThing = __getThing(index); if(destThing) *destItem = destThing->getItem(); Cylinder* subCylinder = dynamic_cast<Cylinder*>(destThing); if(subCylinder){ index = INDEX_WHEREEVER; *destItem = NULL; return subCylinder; } else return this; }
-
Tente esse: function loseOnZombieArena(cid) kickPlayerFromZombiesArea(cid) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Voce perdeu.") local players = getZombiesEventPlayers() if(#players <= 1) then local winner = players[1] if(winner) then doPlayerAddItem(winner, 2157, 5, true) doPlayerAddItem(winner, 6119, 1, true) doPlayerSendTextMessage(winner, MESSAGE_STATUS_CONSOLE_BLUE, "Voce ganhou o Zombie Event.") doBroadcastMessage("Depois de " .. os.time() - getPlayerZombiesEventStatus(winner) .. " segundos, o jogador " .. getCreatureName(winner) .. " ganhou o Zombie Arena Event com " .. getStorage(ZE_ZOMBIES_SPAWNED) .. " zumbis!") kickPlayerFromZombiesArea(winner) else doBroadcastMessage("O evento acabou, infelizmente ninguém ganhou!") end doSetStorage(ZE_STATUS, 0) doSetStorage(ZE_PLAYERS_NUMBER, ZE_DEFAULT_NUMBER_OF_PLAYERS) doSetStorage(ZE_ZOMBIES_TO_SPAWN, 0) doSetStorage(ZE_ZOMBIES_SPAWNED, 0) local width = (math.max(ZE_spawnFromPosition.x, ZE_spawnToPosition.x) - math.min(ZE_spawnFromPosition.x, ZE_spawnToPosition.x)) / 2 + 1 local height = (math.max(ZE_spawnFromPosition.y, ZE_spawnToPosition.y) - math.min(ZE_spawnFromPosition.y, ZE_spawnToPosition.y)) / 2 + 1 local centerPos = {x=math.min(ZE_spawnFromPosition.x, ZE_spawnToPosition.x)+width,y=math.min(ZE_spawnFromPosition.y, ZE_spawnToPosition.y)+height,z=ZE_spawnFromPosition.z} for z = math.min(ZE_spawnFromPosition.z, ZE_spawnToPosition.z), math.max(ZE_spawnFromPosition.z, ZE_spawnToPosition.z) do centerPos.z = z for i, uid in pairs(getSpectators(centerPos, width, height, false)) do if(isMonster(uid)) then doRemoveCreature(uid) end end end end end function onStatsChange(target, cid, changetype, combat, value) if((cid and isMonster(cid) and getCreatureName(cid) == "Zombie Event") or (isInRange(getThingPosition(target), ZE_spawnFromPosition, ZE_spawnToPosition) and changetype == STATSCHANGE_HEALTHLOSS and math.abs(value) >= getCreatureHealth(target))) then doCreatureAddHealth(target, getCreatureMaxHealth(target)) loseOnZombieArena(target) return false end return true end
-
vai em creaturescripts\scripts\zombie\onattack e substitua tudo por isso: function loseOnZombieArena(cid) kickPlayerFromZombiesArea(cid) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Voce perdeu.") local players = getZombiesEventPlayers() if(#players <= 1) then local winner = players[1] if(winner) then doPlayerAddItem(winner, 2157, 5, true) doPlayerAddItem(winner, 6119, 1, true) doPlayerSendTextMessage(winner, MESSAGE_STATUS_CONSOLE_BLUE, "Voce ganhou o Zombie Event.") doBroadcastMessage("Depois de " .. os.time() - getPlayerZombiesEventStatus(winner) .. " segundos, o jogador " .. getCreatureName(winner) .. " ganhou o Zombie Arena Event com " .. getStorage(ZE_ZOMBIES_SPAWNED) .. " zumbis!") kickPlayerFromZombiesArea(winner) else doBroadcastMessage("O evento acabou, infelizmente ninguém ganhou!") end doSetStorage(ZE_STATUS, 0) doSetStorage(ZE_PLAYERS_NUMBER, ZE_DEFAULT_NUMBER_OF_PLAYERS) doSetStorage(ZE_ZOMBIES_TO_SPAWN, 0) doSetStorage(ZE_ZOMBIES_SPAWNED, 0) local width = (math.max(ZE_spawnFromPosition.x, ZE_spawnToPosition.x) - math.min(ZE_spawnFromPosition.x, ZE_spawnToPosition.x)) / 2 + 1 local height = (math.max(ZE_spawnFromPosition.y, ZE_spawnToPosition.y) - math.min(ZE_spawnFromPosition.y, ZE_spawnToPosition.y)) / 2 + 1 local centerPos = {x=math.min(ZE_spawnFromPosition.x, ZE_spawnToPosition.x)+width,y=math.min(ZE_spawnFromPosition.y, ZE_spawnToPosition.y)+height,z=ZE_spawnFromPosition.z} for z = math.min(ZE_spawnFromPosition.z, ZE_spawnToPosition.z), math.max(ZE_spawnFromPosition.z, ZE_spawnToPosition.z) do centerPos.z = z for i, uid in pairs(getSpectators(centerPos, width, height, false)) do if(isMonster(uid)) then doRemoveCreature(uid) end end end end end function onStatsChange(target, cid, changetype, combat, value) if((cid and isMonster(cid) and getCreatureName(cid) == "Zombie Event") or (isInRange(getThingPosition(target), ZE_spawnFromPosition, ZE_spawnToPosition) and changetype == STATSCHANGE_HEALTHLOSS and math.abs(value) >= getCreatureHealth(target))) then doCreatureAddHealth(target, getCreatureMaxHealth(target)) loseOnZombieArena(target) return false end return true end Depois vai em lib\032-position.lua e substitue por: function isInRange(position, fromPosition, toPosition) return (position.x >= fromPosition.x and position.y >= fromPosition.y and position.z >= fromPosition.z and position.x <= toPosition.x and position.y <= toPosition.y and position.z <= toPosition.z) end function getDistanceBetween(fromPosition, toPosition) local x, y = math.abs(fromPosition.x - toPosition.x), math.abs(fromPosition.y - toPosition.y) local diff = math.max(x, y) if(fromPosition.z ~= toPosition.z) then diff = diff + 9 + 6 end return diff end function getDirectionTo(pos1, pos2) local dir = NORTH if(pos1.x > pos2.x) then dir = WEST if(pos1.y > pos2.y) then dir = NORTHWEST elseif(pos1.y < pos2.y) then dir = SOUTHWEST end elseif(pos1.x < pos2.x) then dir = EAST if(pos1.y > pos2.y) then dir = NORTHEAST elseif(pos1.y < pos2.y) then dir = SOUTHEAST end else if(pos1.y > pos2.y) then dir = NORTH elseif(pos1.y < pos2.y) then dir = SOUTH end end return dir end function getCreatureLookPosition(cid) return getPosByDir(getThingPos(cid), getCreatureLookDirection(cid)) end function getPositionByDirection(position, direction, size) local n = size or 1 if(direction == NORTH) then position.y = position.y - n elseif(direction == SOUTH) then position.y = position.y + n elseif(direction == WEST) then position.x = position.x - n elseif(direction == EAST) then position.x = position.x + n elseif(direction == NORTHWEST) then position.y = position.y - n position.x = position.x - n elseif(direction == NORTHEAST) then position.y = position.y - n position.x = position.x + n elseif(direction == SOUTHWEST) then position.y = position.y + n position.x = position.x - n elseif(direction == SOUTHEAST) then position.y = position.y + n position.x = position.x + n end return position end function doComparePositions(position, positionEx) return position.x == positionEx.x and position.y == positionEx.y and position.z == positionEx.z end function getArea(position, x, y) local t = {} for i = (position.x - x), (position.x + x) do for j = (position.y - y), (position.y + y) do table.insert(t, {x = i, y = j, z = position.z}) end end return t end
-
@ Não vi erro na script. Tente criar um outro arquivo.lua e coloca os codigos neles. Talvez seja um probleminha no arquivo, as vezes acontece. O evento funciona normal? Talvez esteja faltando arquivos do evento em outras pastas. creaturescripts globalevents lib movements talkactions.
-
[Resolvido] Problema com Distro TFS e Allisow
pergunta respondeu ao jvcasarin de Yan Liima em Resolvidos
1º método Eu sei porque amigo, importe sua database denovo mais não abre a distro... Vai nas suas source procure definitions.h Tente achar #define VERSION_DATABASE e vê qual o número que está exemplo: #define VERSION_DATABASE 27 Após ter feito isso vai no seu banco de dados do servidor e procure: server_config Altere o db_version para o número da versão da database que você viu no DEFINITIONS.H. EXEMPLO: Config value db_version 27 Ou você pode olhar a que ficou com este problema que você diz, pois se a versão da database da distro for uma e na sua database for outra a sua distro altera para a dela, por isso muda, mais ele não muda so isso não viu, nos players muda os loot e talz e pode bugar na hora de morrer... 2º métedo (pela sources) Abre suas sources pelo C++ e abre a databasemanager.cpp procure isto: db->query("DELETE FROM `player_storage` WHERE `key` = 30018;"); db->query("ALTER TABLE `accounts` ADD `name` VARCHAR(32) NOT NULL DEFAULT '';"); if((result = db->storeQuery("SELECT `id` FROM `accounts`;"))) { do { query << "UPDATE `accounts` SET `name` = '" << result->getDataInt("id") << "' WHERE `id` = " << result->getDataInt("id") << ";"; db->query(query.str()); query.str(""); } while(result->next()); result->free(); } Altere para: /*db->query("DELETE FROM `player_storage` WHERE `key` = 30018;"); db->query("ALTER TABLE `accounts` ADD `name` VARCHAR(32) NOT NULL DEFAULT '';"); if((result = db->storeQuery("SELECT `id` FROM `accounts`;"))) { do { query << "UPDATE `accounts` SET `name` = '" << result->getDataInt("id") << "' WHERE `id` = " << result->getDataInt("id") << ";"; db->query(query.str()); query.str(""); } while(result->next()); result->free(); }*/ Pronto isso não alteraria o Login da sua conta. Eu preferia fazer o método 1 rsrs mais fique de sua escolha. -
pedido Adaptação para 0.4 e Correção de Bug!
pergunta respondeu ao Luga03 de Yan Liima em Programação
Acho que você não instalou o Devpack vai na pasta Stian's Repack Dev-Cpp Abre o Packman.exe vai em install e seleciona este arquivo que estarei deixando aqui para você baixar. Depois é so você instalar normal dando Next > e pronto. Download: OpenSLL 0.9.8 -
Tópico resolvido.
-
Cara, tem skype? seria melhor eu te ajudar por lá add yan.brendo
-
Se usa no-ip? otimo cria um link por lá exemplo: yanlima.hopto.org e usa este no seu servidor, se não der certo deve ser porcausa que você usa net compartilhada... Neste caso o hamachi resolveria, com IP dele iria dboa, porém os players teria que entrar na sua rede do hamachi.
-
Bom localhost seria a mesma coisa que 127.0.0.1. Mande os dois IPs para um amigo teu e vê se ele consegue entrar num dos dois se um funcionar coloque o que funcionou, seria mais facil você usar No-ip rsrs
-
Isso daí ta mais pra SAGA hausahusa
-
Pqp cara... Como eu imaginava, tentar conectar a 127.0.0.1, você está dado laços imediatamente para trás a sua própria máquina. Ou seja 127.0.0.1 é você. não tem como uma outra pessoa colocar o link 127.0.0.1 e entrar no teu site, este IP estara acessando a propia maquina sua, so o dono do computador pode acessar seu servidor com este IP. Olha abre o Prompt de Comando (WINDOWS+R) do teclado, e digite CMD. vai abrir uma janela digite IPCONFIG. Procure o Endereço de IPv4 copie e mande pros seus amigos. ou tente também usar o IP da sua internet (meio arriscado) www.meuip.com.br Não esqueça de mudar o IP no config.lua do teu servidor sqlHost = "SEU IP"
-
Você só precisa liberar as portas: 7171,7172,80,4499. Tudo TCP Pelo o que você disse não da pros players entrar no teu site e no teu servidor certo? ou da pra entrar no site mais não no servidor? Se der para entrar no site e não der pra entrar no servidor basta configura as linhas que o Gabriel disse. Se não esta dando pra entrar em nenhum lugar o IP que você passou para os seus amigos esta errado, talvez você passou o 127.0.0.1 (IP usado para uma pessoa só, o hostiador do servidor) rsrs Ou talvez você usa internet compartilhada, não é faço por servidor online com internet compartilhada (wi-fi,via radio etc) Bom eu não sei exatamente o que esta apassar por ai, mais manda um convite para mim no skype que estarei ajudando você sem problemas... Antes tente desativar o Firewall do Windows, uma vez ninguém conseguiu entrar no meu servidor e eu desativei e funcionou. Painel de Controle\Todos os Itens do Painel de Controle\Firewall do Windows e vai em: Ativar ou Desativar o Firewall do Windows. E desative os dois. OBS: Se for por hamachi os jogadores precisam entrar na sua rede...
-
Quem Está Navegando 0 membros estão online
- Nenhum usuário registrado visualizando esta página.