Ir para conteúdo

Farathor

Membro
  • Registro em

  • Última visita

  1. Bom dia, pessoal. Estou com um problema com o sharp map tracker da versão 10.0x Ele simplesmente abre o cliente, mas não consigo logar no servidor... Podem me ajudar? DA erro 10053
  2. Galera, estou com erro 500 no phpmyadmin, podem ajudar? Esta página não está funcionando www.baiak-hells.com não consegue atender a esta solicitação no momento. HTTP ERROR 500
  3. Galera, to tentando criar um evento no meu servidor onde eu queria fazer com que eles quando atacassem o objetivo do evento, o shooteffect e o HIT fossem pré definidos. Mesmo sendo KNIGHT, poderia atacar de longe na distancia de 5sqm. Alguém poderia me ajudar? Tentei fazer com onstatschange, com oncombat mas nada certo...
  4. Queria ajudar para passar esse script a baixo pra 0.4 if not Spoof then Spoof = { players = { } } end Spoof.trainerTeleportPosition = Position(997, 1004, 7) Spoof.blockedLookTypes = {159,160,226,194,253,254,255,264,874,900,909,929,956,1024,963,969,965,967,971,973,975,1297,1336,1392,1261,1295,1183,1217,1227,1258,1020,1050,1070,1103,1128,1147,1162,1174,1152,1256,1285,1415,1408,1400,1402,1404,873,899,908,931,955,957,1023,962,968,964,966,970,972,974,1021,1051,1094,1069,1102,1127,1146,1161,1173,1416,1407,1399,1401,1403} local randomTimes = { ["levelAdvance"] = {storage = 54839827, minMinutes = 20, maxMinutes = 30, maxLevel = 300, afterMaxMinPorcentage = 1}, ["exchangeOutfit"] = {storage = 54839828, minMinutes = 240, maxMinutes = 380, chanceToGainAddon = 3}, ["fragAndDeath"] = {storage = 54839829, minMinutes = 480, maxMinutes = 1020, chance = 3}, ["newItem"] = {storage = 54839830, minMinutes = 86400, maxMinutes = 86400 * 2}, ["newQuest"] = {storage = 54839831, minMinutes = 6 * 3600, maxMinutes = 12 * 3600}, ["skillAdvance"] = {storage = 54839832, minMinutes = 30, maxMinutes = 80, maxSkill = 80, afterMaxMinPorcentage = 1} } local itensTable = { [1] = { -- MS [{100, 120}] = {8820, 8819, 7730, 2643, 2190, 2175, 2175}, [{121, 181}] = {2323, 8871, 7730, 2195, 2187, 2175, 2175}, [{181, 220}] = {2323, 8871, 7730, 2195, 2187, 2514, 2175}, [{221, 300}] = {9778, 12643, 7730, 6132, 36101, 2514, 2175}, [{301, 999}] = {9778, 12643, 18400, 6132, 36101, 8918, 2175}, }, [2] = { -- ED [{100, 120}] = {8820, 8819, 7730, 2643, 2182, 2175, 8266}, [{121, 181}] = {2323, 8871, 7730, 2195, 2183, 2175, 8266}, [{181, 220}] = {2323, 8871, 7730, 2195, 2183, 2514, 8266}, [{221, 300}] = {9778, 12643, 7730, 6132, 36101, 2514, 8266}, [{301, 999}] = {9778, 12643, 18400, 6132, 36101, 8918, 8266}, }, [3] = { -- RP [{100, 120}] = {2480, 2660, 2478, 2195, 7368, 2525}, [{121, 181}] = {2480, 2660, 2478, 2195, 7368, 2525, 8266}, [{181, 220}] = {2493, 2660, 9777, 2514, 7368, 2514, 8266}, [{221, 999}] = {12645, 18404, 9777, 6132, 7368, 2514, 8266}, }, [4] = { -- EK [{100, 120}] = {2460, 2465, 2478, 2195, 2525}, [{121, 181}] = {2460, 2465, 2478, 2195, 2525, 8266}, [{181, 220}] = {2493, 2465, 2478, 2195, 2514, 8266}, [{221, 999}] = {2493, 12642, 2478, 2195, 18410, 8266}, }, } local randomAddons = { [1] = {male = 128, female = 136, name = 'Citizen Outfit'}, -- citizen [2] = {male = 129, female = 137, name = 'Hunter addon'}, -- hunter [3] = {male = 132, female = 140, name = 'Nobleman addon'}, -- Noblewoman [4] = {male = 133, female = 138, name = 'Summoner addon'}, -- Summoner [5] = {male = 134, female = 142, name = 'Warrior addon'}, -- Warrior [6] = {male = 143, female = 147, name = 'Barbarian addon'}, -- Barbarian [7] = {male = 144, female = 148, name = 'Druid addon'}, -- Druid [8] = {male = 145, female = 149, name = 'Wizard addon'}, -- Wizard [9] = {male = 146, female = 150, name = 'Oriental addon'}, -- Oriental [10] = {male = 151, female = 155, name = 'Pirate addon'}, -- Pirate [11] = {male = 153, female = 157, name = 'Beggar addon'}, -- Beggar [12] = {male = 154, female = 158, name = 'Shaman addon'}, -- Shaman [13] = {male = 251, female = 252, name = 'Norsewoman addon'}, -- Norsewoman [14] = {male = 152, female = 156, name = 'Assassin addon'}, -- Assassin [15] = {male = 335, female = 336, name = 'Warmaster addon'}, -- Warmaster [16] = {male = 367, female = 366, name = 'Wayfarer addon'}, -- Wayfarer [17] = {male = 463, female = 464, name = 'Deepling addon'}, -- Deepling [18] = {male = 131, female = 139, name = 'Knight addon'} -- Knight Outfit } function Spoof.onLoad(self) local resultId = db.storeQuery("SELECT `name` FROM `players` WHERE `spoof` = 1") if resultId then repeat local playerName = result.getString(resultId, "name") if not self.players[playerName] then self.players[playerName] = 0 end until not result.next(resultId) result.free(resultId) end end function Spoof.isASpoofer(self, name) return self.players[name] end function Spoof.onLogin(self, player) local playerName = player:getName() if not self:isASpoofer(playerName) then return end player:teleportTo(self.trainerTeleportPosition) self.players[playerName] = addEvent(function(self, playerId) self:executeAction(playerId) end, 60 * 1000, self, player:getId()) end function Spoof.getRandomOutfit(self, sex) local resultId = db.storeQuery(string.format("SELECT `looktype`, `lookhead`, `lookbody`, `looklegs`, `lookfeet` FROM `players` WHERE `level` >= 200 AND `sex` = %d ORDER BY rand() LIMIT 1", sex)) local t = { lookType = 0, lookHead = 0, lookBody = 0, lookLegs = 0, lookFeet = 0 } if resultId then local lookType = result.getNumber(resultId, "looktype") local lookHead = result.getNumber(resultId, "lookhead") local lookBody = result.getNumber(resultId, "lookbody") local lookLegs = result.getNumber(resultId, "looklegs") local lookFeet = result.getNumber(resultId, "lookfeet") result.free(resultId) t.lookType = lookType t.lookHead = lookHead t.lookBody = lookBody t.lookLegs = lookLegs t.lookFeet = lookFeet end if isInArray(self.blockedLookTypes, t.lookType) then local look = (sex == 0) and math.random(136, 142) or math.random(128, 134) t.lookType = look if math.random(10) <= 6 then local equalColor = math.random(100) t.lookHead = equalColor t.lookBody = equalColor t.lookLegs = equalColor t.lookFeet = equalColor else t.lookHead = math.random(100) t.lookBody = math.random(100) t.lookLegs = math.random(100) t.lookFeet = math.random(100) end end return t end function Spoof.executeAction(self, playerId) -- Spoof:executeAction(player:getId()) local player = Player(playerId) if not player then return end local action = randomTimes local playerSex = player:getSex() local playerGuid = player:getGuid() local playerName = player:getName() -- Verifica se est? nos Trainers if player:isInTrainers() then -- Pega o tempo do Spoof para uma acao -- Dar Frags & mortes local fragAndDeath = action["fragAndDeath"] if (math.random(10) <= fragAndDeath.chance and player:getStorageValue(fragAndDeath.storage) > math.random(fragAndDeath.minMinutes, fragAndDeath.maxMinutes) * 60) and player:getLevel() > 250 then if math.random(10) <= 4 then -- 40% de chance de ser para player a morte -- Player local allSpoofLoggeds = { } for tmpName, _ in pairs(self.players) do if tmpName ~= playerName then allSpoofLoggeds[#allSpoofLoggeds + 1] = tmpName end end if next(allSpoofLoggeds) ~= nil then local randomAmount = math.random(2, 10) local participantsTable = { } for i = 1, randomAmount do local randomParticipant = allSpoofLoggeds[math.random(#allSpoofLoggeds)] if randomParticipant then participantsTable[#participantsTable + 1] = randomParticipant end end local mostDamage = '' local killerName = '' local participants = '' for index, participantName in ipairs(participantsTable) do -- O primeiro participante ter? dado o dano maior e n?o ser? inserido na database como participantes if index == 1 then mostDamage = participantName else -- O Index 2 vai dar o participante como o matador if index == 2 then killerName = participantName end local participantGuid = getPlayerGUIDByName(participantName) participants = string.format('%s%d', participants == '' and '' or participants .. ',', participantGuid) db.query(string.format('UPDATE `players` SET `frags` = `frags` + 1 WHERE `name` = %s', db.escapeString(participantName))) end end db.query(string.format('UPDATE `players` SET `deaths` = `deaths` + 1 WHERE `name` = %s', db.escapeString(playerName))) -- Se por acaso nao tenha um killerName e mostDamage tiver com nome de um player, vamos pegar ele. if killerName == '' and mostDamage ~= '' then killerName = mostDamage end db.query(string.format('INSERT INTO `player_deaths` (`player_id`, `time`, `level`, `killed_by`, `is_player`, `mostdamage_by`, `mostdamage_is_player`, `unjustified`, `mostdamage_unjustified`, `participants`) VALUES (%d, %d, %d, %s, %d, %s, %d, %d, %d, %s)', playerGuid, os.time(), player:getLevel(), db.escapeString(killerName), 1, db.escapeString(mostDamage), 1, 1, 1, db.escapeString(participants))) local removeExperience = #participantsTable * 100000 player:removeExperience(removeExperience) end else -- 60% de chance de ser para monstro normal -- Monstro local resultId = db.storeQuery(string.format("SELECT `killed_by`, `mostdamage_by` FROM `player_deaths` WHERE `mostdamage_is_player` = 0 AND `player_id` != %d ORDER BY RAND() DESC LIMIT 1", playerGuid)) if resultId then local killedBy = result.getString(resultId, "killed_by") local mostDamage = result.getString(resultId, "mostdamage_by") result.free(resultId) -- Verifica se ? VIP o monstro, se for, ent?o vai dar VIP para o Spoofer if (isInArray(VIP_MONSTERS, killedBy) or isInArray(VIP_MONSTERS, mostDamage)) and not player:isVip() then player:loadVipData() player:addVipDays(3) player:updateVipTime() end local participants = '' db.query(string.format('INSERT INTO `player_deaths` (`player_id`, `time`, `level`, `killed_by`, `is_player`, `mostdamage_by`, `mostdamage_is_player`, `unjustified`, `mostdamage_unjustified`, `participants`) VALUES (%d, %d, %d, %s, %d, %s, %d, %d, %d, %s)', playerGuid, os.time(), player:getLevel(), db.escapeString(killedBy), 0, db.escapeString(mostDamage), 0, 0, 0, db.escapeString(participants))) local removeExperience = (math.random(5, 10)) * 100000 player:removeExperience(removeExperience) end player:setStorageValue(fragAndDeath.storage, 0) end end -- Melhorar o Set local newItem = action["newItem"] if (player:getStorageValue(newItem.storage) > math.random(newItem.minMinutes, newItem.maxMinutes) * 60) then if math.random(10) <= 3 then local itemListVocation = itensTable[player:getVocation():getBase():getId()] if itemListVocation then local itemList = nil for v, k in pairs(itemListVocation) do if 301 >= v[1] and 301 <= v[2] then itemList = k break end end if itemList then local itemId = nil local slotItem = nil for i = 1, 100 do local randomItem = itemList[math.random(#itemList)] local itemType = ItemType(randomItem) if itemType then local slot = itemType:getSlotPosition() local tmpSlotItem = SLOTS_CONST[slot] local itemPlayerSlot = player:getSlotItem(tmpSlotItem) if itemPlayerSlot then if randomItem ~= itemPlayerSlot:getId() then itemPlayerSlot:remove() slotItem = tmpSlotItem itemId = randomItem break end else slotItem = tmpSlotItem itemId = itemType:getId() break end end end -- Search for Weapons Avaliable if not player:getSlotItem(CONST_SLOT_LEFT) then for i = 1, 100 do local randomItem = itemList[math.random(#itemList)] local itemType = ItemType(randomItem) if itemType then local slot = itemType:getSlotPosition() local tmpSlotItem = SLOTS_CONST[slot] if slot == 48 and itemType:getWeaponType() ~= 4 then player:addItem(randomItem, 1) break end end end end if itemId then local itemType = ItemType(itemId) if itemType then player:addItem(itemId, 1, false, -1, slotItem) end end end end -- Repara Soft Boots local feetSloot = player:getSlotItem(CONST_SLOT_FEET) if feetSloot then if feetSloot:getId() == 10021 then feetSloot:transform(2640) end end player:save() end end local newQuest = action["newQuest"] -- TODO -- Avan?ar level local advanceLevel = action["levelAdvance"] if (player:getStorageValue(advanceLevel.storage) > math.random(advanceLevel.minMinutes, advanceLevel.maxMinutes) * 60) then local experience = nil if player:getLevel() >= advanceLevel.maxLevel then local randomChance = math.random(1, 2) randomChance = randomChance * 0.1 experience = getExpForLevel(player:getLevel()) * randomChance print(experience) --player:addExperience(experience, false) else experience = getExpForLevel(player:getLevel() + math.random(5)) - player:getExperience() player:addExperience(experience, false) end ExperienceOnline_time:increaseExperience(player:getId(), experience) player:setStorageValue(advanceLevel.storage, 0) end -- Mudar Outfit local exchangeOutfit = action["exchangeOutfit"] if (player:getStorageValue(exchangeOutfit.storage) > math.random(exchangeOutfit.minMinutes, exchangeOutfit.maxMinutes) * 60) then local getRandomOutfit = self:getRandomOutfit(playerSex) player:setOutfit({lookType = getRandomOutfit.lookType, lookHead = getRandomOutfit.lookHead, lookBody = getRandomOutfit.lookBody, lookLegs = getRandomOutfit.lookLegs, lookFeet = getRandomOutfit.lookFeet}) if math.random(10) <= exchangeOutfit.chanceToGainAddon then local randomAddon = nil for i = 1, 100 do local randomOutfit = randomAddons[math.random(#randomAddons)] if randomOutfit then if not player:hasOutfit(playerSex == PLAYERSEX_FEMALE and randomOutfit.female or randomOutfit.male, 3) then randomAddon = randomOutfit break end end end if randomAddon then player:addOutfitAddon(randomAddon.female, 3) player:addOutfitAddon(randomAddon.male, 3) player:getPosition():sendMagicEffect(CONST_ME_FIREWORK_BLUE) local outfit = player:getOutfit() player:setOutfit({lookType = playerSex == PLAYERSEX_FEMALE and randomAddon.female or randomAddon.male, lookHead = outfit.lookHead, lookBody = outfit.lookBody, lookLegs = outfit.lookLegs, lookFeet = outfit.lookFeet, lookAddons = 3}) end end player:setStorageValue(exchangeOutfit.storage, 0) end -- Aumentar Skill local skillAdvance = action["skillAdvance"] if (player:getStorageValue(skillAdvance.storage) > math.random(skillAdvance.minMinutes, skillAdvance.maxMinutes) * 60) then if player:isKnight() or player:isPaladin() then local highestSkill = player:getHigherSkill(player) local getSkill = player:getSkillLevel(highestSkill) if getSkill >= skillAdvance.maxSkill then player:addSkillTries(highestSkill, player:getSkillLevel(highestSkill) + 1 * 0.1) else player:addSkillTries(highestSkill, player:getVocation():getRequiredSkillTries(highestSkill, player:getSkillLevel(highestSkill) + 1) - player:getSkillTries(highestSkill)) end -- Avan?o de Magic Level para Knights & Paladin local magicLevel = player:getMagicLevel() if player:isKnight() then local formula = math.random(2500, 5000) * (player:getVocation():getManaGainAmount() / player:getVocation():getManaGainTicks()) if magicLevel >= 10 then formula = formula * (math.random(3) * 0.1) end player:addManaSpent(formula) else local formula = math.random(3600, 10000) * (player:getVocation():getManaGainAmount() / player:getVocation():getManaGainTicks()) if magicLevel >= 30 then formula = formula * (math.random(5) * 0.1) end player:addManaSpent(formula) end elseif player:isMage() then local playerGetSkill = player:getMagicLevel() if playerGetSkill >= skillAdvance.maxSkill then player:addManaSpent(player:getVocation():getRequiredManaSpent(player:getBaseMagicLevel()) + 1 * 0.1) else player:addManaSpent(player:getVocation():getRequiredManaSpent(player:getBaseMagicLevel()) + 1) end end player:setStorageValue(skillAdvance.storage, 0) -- Treinar Shielding player:addOfflineTrainingTries(SKILL_SHIELD, math.random(500, 1000) / 4) end -- Definir de vez enquanto o personagem para hidden no Site if (player:getStorageValue(54839836) > 86300) then local value = player:isHidden() and 0 or 1 db.query(string.format('UPDATE `players` SET `hidden` = %d WHERE `id` = %d', value, player:getGuid())) player:setStorageValue(54839832, 0) end for _, infoSpoof in pairs(action) do local storage = infoSpoof.storage player:setStorageValue(storage, math.max(0, player:getStorageValue(storage)) + 60) end player:setStorageValue(54839832, math.max(0, player:getStorageValue(54839832)) + 60) end self.players[player:getName()] = addEvent(function(self, playerId) self:executeAction(playerId) end, 60 * 1000, self, playerId) end
  5. Galera, queria uma noção de vocês se é possível eu criar uma função pela source ou script mesmo, que quando o player execute o comando CTRL + M no cliente, execute uma função...
  6. monsters.cpp: In member function ‘void MonsterType::dropLoot(Container*)’: monsters.cpp:212:9: error: suggest explicit braces to avoid ambiguous ‘else’ [-Werror=parentheses] else if(message == LOOTMSG_PLAYER || message == LOOTMSG_BOTH)
  7. Quero igual a da foto, o AZUL CLARO
  8. Como eu faço pra colocar a mensagem em azul claro igual este print abaixo? Versão 8.60
  9. Farathor postou uma resposta no tópico em Códigos C++
    A minha é mais otimizada, rs. e tem muita coisa nela, vou tentar adaptar o cast com seta seu nela...
  10. Farathor postou uma resposta no tópico em Códigos C++
    protocolgame.cpp: In member function ‘void ProtocolGame::spectate(const string&, const string&)’: protocolgame.cpp:141:27: error: ‘stoi’ is not a member of ‘std’ uint32_t total = ctime - std::stoi(value); ^ protocolgame.cpp:172:35: error: request for member ‘addProtocolToAutosend’ in ‘OutputMessagePool::getInstance()’, which is of pointer type ‘OutputMessagePool*’ (maybe you meant to use ‘->’ ?) OutputMessagePool::getInstance().addProtocolToAutosend(shared_from_this()); ^ protocolgame.cpp:172:74: error: ‘shared_from_this’ was not declared in this scope OutputMessagePool::getInstance().addProtocolToAutosend(shared_from_this()); ^ protocolgame.cpp: In member function ‘bool ProtocolGame::spectatePlayer(const string&, const string&)’: protocolgame.cpp:206:24: error: ‘class Spectators’ has no member named ‘resetOwner’ player_old->client->resetOwner(); ^ protocolgame.cpp:216:2: error: ‘knownCreatureSet’ was not declared in this scope knownCreatureSet.clear(); ^ protocolgame.cpp:229:27: error: ‘stoi’ is not a member of ‘std’ uint32_t total = ctime - std::stoi(value); ^ protocolgame.cpp:258:35: error: request for member ‘addProtocolToAutosend’ in ‘OutputMessagePool::getInstance()’, which is of pointer type ‘OutputMessagePool*’ (maybe you meant to use ‘->’ ?) OutputMessagePool::getInstance().addProtocolToAutosend(shared_from_this()); ^ protocolgame.cpp:258:74: error: ‘shared_from_this’ was not declared in this scope OutputMessagePool::getInstance().addProtocolToAutosend(shared_from_this()); ^ protocolgame.cpp: In member function ‘void ProtocolGame::returnPlayer()’: protocolgame.cpp:273:35: error: ‘getThis’ was not declared in this scope player->client->setOwner(getThis()); ^ protocolgame.cpp:276:2: error: ‘knownCreatureSet’ was not declared in this scope knownCreatureSet.clear(); ^ protocolgame.cpp: In member function ‘void ProtocolGame::spectatorTurn(uint8_t)’: protocolgame.cpp:325:30: warning: comparison is always false due to limited range of data type [-Wtype-limits] if (index == 0 && direction == -1) { ^ protocolgame.cpp:349:2: error: ‘knownCreatureSet’ was not declared in this scope knownCreatureSet.clear(); ^
  11. Farathor postou uma resposta no tópico em Códigos C++
    protocolgame.cpp: In member function ‘void ProtocolGame::spectate(const string&, const string&)’: protocolgame.cpp:139:27: error: ‘stoi’ is not a member of ‘std’ uint32_t total = ctime - std::stoi(value); ^ protocolgame.cpp: In member function ‘void ProtocolGame::spectatorTurn(uint8_t)’: protocolgame.cpp:210:30: warning: comparison is always false due to limited range of data type [-Wtype-limits] if (index == 0 && direction == -1) { ^ protocolgame.cpp:234:2: error: ‘knownCreatureSet’ was not declared in this scope knownCreatureSet.clear();
  12. Farathor postou uma resposta no tópico em Códigos C++
    tambem tem a opcao de dar look nos itens?
  13. Woox, como fazemos essa substituicao ?

Informação Importante

Confirmação de Termo