
Bruno Rezende
Membro
-
Registro em
-
Última visita
Solutions
-
Bruno Rezende's post in (Resolvido)Char não pega PZ ao atacar PK was marked as the answer.Qual servidor ou website você utiliza como base?
OTX 2
Você tem o código disponível? Se tiver publique-o aqui:
void Player::onTarget(Creature* target) { Creature::onTarget(target); if(target == this) { addInFightTicks(false); return; } if(hasFlag(PlayerFlag_NotGainInFight)) return; Player* targetPlayer = target->getPlayer(); if(targetPlayer && !isPartner(targetPlayer) && !isAlly(targetPlayer)) { if(!pzLocked && g_game.getWorldType() == WORLDTYPE_HARDCORE) { pzLocked = true; sendIcons(); } if(getSkull() == SKULL_NONE && getSkullType(targetPlayer) == SKULL_YELLOW) { addAttacked(targetPlayer); targetPlayer->sendCreatureSkull(this); } else if(!targetPlayer->hasAttacked(this)) { if(!pzLocked) { pzLocked = true; sendIcons(); } if(!Combat::isInPvpZone(this, targetPlayer) && !isEnemy(this)) { addAttacked(targetPlayer); if(targetPlayer->getSkull() == SKULL_NONE && getSkull() == SKULL_NONE && (!guildId || !targetPlayer->getGuildId())) { setSkull(SKULL_WHITE); g_game.updateCreatureSkull(this); } if(getSkull() == SKULL_NONE) targetPlayer->sendCreatureSkull(this); } } } addInFightTicks(false); }
Bom dia pessoal, hoje percebi que meu servidor está com um comportamento (não sei se esperado) mas indesejado, vamos pensar no seguinte cenário:
Player 1 Ataca Player 2 (e pega White Skull)
Player 2 ataca de volta player 1 e consegue entrar numa Protection Zone (não deveria/gostaria)
Após sair da PZ, o player 2 ataca novamente o player 1 e vira Yellow Skull, e agora sim fica com PZ lock
Gostaria que já no primeiro ataque o Player 2 ficasse com PZ lock, poderiam me ajudar?
Consegui resolver:
// DE else if(!targetPlayer->hasAttacked(this)) { if(!pzLocked) { pzLocked = true; sendIcons(); } // PARA else { if(!pzLocked) { pzLocked = true; sendIcons(); }
-
Bruno Rezende's post in (Resolvido)[0.3.6] Item que boosta skills was marked as the answer--<action itemid="XXXX" event="script" value="script.lua"/> local config = { level = false, remove = true, time = 30, -- Time is in minutes message = {MESSAGE_EVENT_ADVANCE, "You feel the power growing."}, conditions = {} } -- Sorcerer config.conditions[1] = createConditionObject(CONDITION_ATTRIBUTES) setConditionParam(config.conditions[1], CONDITION_PARAM_TICKS, config.time * 1000 * 60) setConditionParam(config.conditions[1], CONDITION_PARAM_STAT_MAGICLEVEL, 5) setConditionParam(config.conditions[1], CONDITION_PARAM_BUFF, true) -- Druid config.conditions[2] = createConditionObject(CONDITION_ATTRIBUTES) setConditionParam(config.conditions[2], CONDITION_PARAM_TICKS, config.time * 1000 * 60) setConditionParam(config.conditions[2], CONDITION_PARAM_STAT_MAGICLEVEL, 5) setConditionParam(config.conditions[2], CONDITION_PARAM_BUFF, true) -- Paladin config.conditions[3] = createConditionObject(CONDITION_ATTRIBUTES) setConditionParam(config.conditions[3], CONDITION_PARAM_TICKS, config.time * 1000 * 60) setConditionParam(config.conditions[3], CONDITION_PARAM_SKILL_DISTANCE, 15) setConditionParam(config.conditions[3], CONDITION_PARAM_STAT_MAGICLEVEL, 3) setConditionParam(config.conditions[3], CONDITION_PARAM_BUFF, true) -- Knight config.conditions[4] = createConditionObject(CONDITION_ATTRIBUTES) setConditionParam(config.conditions[4], CONDITION_PARAM_TICKS, config.time * 1000 * 60) setConditionParam(config.conditions[4], CONDITION_PARAM_SKILL_CLUB, 30) setConditionParam(config.conditions[4], CONDITION_PARAM_SKILL_SWORD, 30) setConditionParam(config.conditions[4], CONDITION_PARAM_SKILL_AXE, 30) setConditionParam(config.conditions[4], CONDITION_PARAM_BUFF, true) function onUse(cid, item, fromPosition, itemEx, toPosition) if config.level then if getPlayerLevel(cid) < config.level then return doPlayerSendCancel(cid, "You need to be level " .. config.level .. " or higher.") end end if hasCreatureCondition(cid, CONDITION_ATTRIBUTES) then return doPlayerSendCancel(cid, "You cannot use this item more than once.") end if config.remove then doRemoveItem(item.uid, 1) end if config.message then doPlayerSendTextMessage(cid, config.message[1], config.message[2]) end local voc = (getPlayerVocation(cid) == 1 or getPlayerVocation(cid) == 5) and 1 or (getPlayerVocation(cid) == 2 or getPlayerVocation(cid) == 6) and 2 or (getPlayerVocation(cid) == 3 or getPlayerVocation(cid) == 7) and 3 or (getPlayerVocation(cid) == 4 or getPlayerVocation(cid) == 8) and 4 doAddCondition(cid, config.conditions[voc]) return true end Resolvi com esse código