local config ={ level =50, count =5, messages ={[12000]="[GOT]The guild %s is entering the castle.",[12001]="[GOT]The guild %s is already inside the castle.",[12002]="[GOT]The guild %s is close to conquer the castle."}, actionId ={12000,4819}}function tableInsert(table, value)-- technically this doesn't need to be #table + 1, it can just be #table table[#table + 1] = valueendfunction onStepIn(cid, item, position, fromPosition) local pid, ip = {}, {} -- now they will hold the values generated by get getGuildOnlineMembers local function getGuildOnlineMembers(guildId) for _, cid in pairs(getPlayersOnline()) do if getPlayerGuildId(cid) == guildId and getPlayerLevel(cid) >= config.level and not isInArray(ip, getPlayerIp(cid)) then tableInsert(pid, cid) tableInsert(ip, getPlayerIp(cid)) end end return pid end if not isPlayer(cid) then return true end if item.actionid == config.actionId[1] then if getPlayerGuildId(cid) < 1 or #getGuildOnlineMembers(getPlayerGuildId(cid)) < config.count then doPlayerSendCancel(cid, "You need to be on guild or your guild must have at least "..config.count.." players level "..config.level.." or more.") doSendMagicEffect(getThingPos(cid), CONST_ME_MAGIC_BLUE) doTeleportThing(cid, fromPosition, true) return true end end if getGlobalStorageValue(item.actionid + config.actionId[2]) < os.time() then broadcastMessage(config.messages[item.actionid]:format(getPlayerGuildName(cid))) setGlobalStorageValue(item.actionid + config.actionId[2], os.time() + 10) end doCreatureSetSkullType(cid, 3) return trueend
/movemments/tile_acess_members_of_throne.lua
local guilds ={--[actionid]= número da cidade configurado em cityMonsters,[2391]=1,[2392]=2,[2393]=3,[2394]=4,[2395]=5,[2396]=6,[2397]=7,[2398]=8,}function onStepIn(cid, item, position, fromPosition)ifnot isPlayer(cid)thenreturntrueendlocal guildId = getGlobalStorageValue(guilds[item.actionid]+ DEFAULT_STORAGE)if getPlayerGuildId(cid)~= guildId then doTeleportThing(cid, fromPosition) doPlayerSendCancel(cid,'This territory is not of your Guild')endreturntrueend
CreatureScripts
<!-- Guild own throne +25%de exp --><eventtype="death"name="mDeath"event="script"value="GOT/expbonus_got.lua"/><eventtype="statschange"name="mStatsChange"event="script"value="GOT/expbonus_got.lua"/><eventtype="target"name="mTarget"event="script"value="GOT/expbonus_got.lua"/><eventtype="login"name="mLogin"event="script"value="GOT/expbonus_got.lua"/>
/creaturescripts/scripts/expbonus_got.lua
function onTarget(cid, target)local m, playerGuild = cityMonsters[getCreatureName(target)], getPlayerGuildId(cid)if isPlayer(cid)and isMonster(target)and m and playerGuild >0thenreturn getGlobalStorageValue(DEFAULT_STORAGE + m)~= playerGuild endreturntrueendfunction onStatsChange(cid, attacker, type, combat, value)if isPlayer(attacker)and isMonster(cid)and type == STATSCHANGE_HEALTHLOSS thenlocal m, playerGuild = cityMonsters[getCreatureName(cid)], getPlayerGuildId(attacker)if m and playerGuild >0thenreturn getGlobalStorageValue(DEFAULT_STORAGE + m)~= playerGuild endendreturntrueendfunction onLogin(cid)local guildId = getPlayerGuildId(cid)if guildId >0and getGuildExpRate(guildId)>1then doPlayerSetExperienceRate(cid, getGuildExpRate(guildId))end registerCreatureEvent(cid,"mTarget") registerCreatureEvent(cid,"mStatsChange")returntrueendfunction onDeath(cid, corpse, deathList)local killer, m = deathList[1], cityMonsters[getCreatureName(cid)]if killer and isPlayer(killer)and m thenlocal atualGuild, playerGuild = getPlayerStorageValue(cid, DEFAULT_STORAGE + m), getPlayerGuildId(killer)if playerGuild >0and atualGuild ~= playerGuild thenif atualGuild >-1then setGuildExperience(atualGuild, getGuildExpRate(atualGuild)-0.25)end setGuildExperience(playerGuild, getGuildExpRate(playerGuild)+0.25) setGlobalStorageValue(DEFAULT_STORAGE + m, playerGuild) broadcastMessage("The guild "..getPlayerGuildName(killer).."just dominate the throne of"..getCreatureName(cid):explode(" ")[2].."!")endendreturntrueend
Preciso de ajuda com duas coisas:
1- Como fazer pra fazer cancelamentos se já tiver um territorio
Como por exemplo:
function onTarget(cid, target)if SUAGUILDA TEM ALGUM TERRITORIO CANCELA O ATK DIZENDO QUE SUA GUILDA JA TEM UM TERRITORIO endlocal m, playerGuild = cityMonsters[getCreatureName(target)], getPlayerGuildId(cid)if isPlayer(cid)and isMonster(target)and m and playerGuild >0thenreturn getGlobalStorageValue(DEFAULT_STORAGE + m)~= playerGuild endreturntrueend
if SUAGUILDA TEM ALGUM TERRITORIO doPlayerSendCancel(cid,"Your guild already has a throne dominated! Only one per guild.") doSendMagicEffect(getThingPos(cid), CONST_ME_MAGIC_BLUE) doTeleportThing(cid, fromPosition,true)returntrueend
2- Como fazer uma placa pra eu colocar em frente de cada castelo, que quando os caras derem look aparecesse o nome da guilda dominante?
Sei la algo como esse pseudo codigo
onlook item sing value = NAOSEI local guildName = getGuildName(getGlobalStorageValue(value))if guildName then"City owned by guild"..guildName.."!"else"No one guild own this city!"end
Pergunta
warriorfrog 3
Tenho esse script de dominar cidades feito pelo zipster98, algo assim, alias muito obrigado...
Mas queria mudar 2 coisas q me faltam conhecimento, alguem mais experiente poderia me ajudar?
Scripts:
/lib/GOTlib.lua
Monster exemple:
/movemments/throne_capturing.lua
/movemments/tile_acess_members_of_throne.lua
CreatureScripts
/creaturescripts/scripts/expbonus_got.lua
Preciso de ajuda com duas coisas:
1- Como fazer pra fazer cancelamentos se já tiver um territorio
Como por exemplo:
2- Como fazer uma placa pra eu colocar em frente de cada castelo, que quando os caras derem look aparecesse o nome da guilda dominante?
Sei la algo como esse pseudo codigo
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados