Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?xml version="1.0" encoding="UTF-8"?>
- <mod name="Partner System" version="1.0" author="LuckOake" contact="none" enabled="yes">
- ------------------------------------------------------------------------------------
- <config name="partner_config"><![CDATA[
- function setOfflinePlayerStorageValue(name, key, value)
- local result = db.getResult("SELECT * FROM `player_storage` WHERE `player_id` = ".. getPlayerGUIDByName(name) .." AND `key` = ".. key ..";")
- if result:getID() == -1 then
- return db.executeQuery("INSERT INTO `player_storage` (`player_id`, `key`, `value`) VALUES (".. getPlayerGUIDByName(name) ..", ".. key ..", ".. value ..");")
- else
- result:free()
- return db.executeQuery("UPDATE `player_storage` SET `value` = ".. value .." WHERE `player_id` = ".. getPlayerGUIDByName(name) .." AND `key` = ".. key ..";")
- end
- end
- function getOfflinePlayerStorageValue(name, key)
- local result, ret = db.getResult("SELECT `value` FROM `player_storage` WHERE `player_id` = '".. getPlayerGUIDByName(name) .."' AND `key` = ".. key ..";")
- if result:getID() == -1 then
- return nil
- end
- ret = result:getDataInt("value")
- result:free()
- return ret
- end
- waittime = 24 -- Tempo de espera em horas para convidar alguém novamente
- storage = 4651
- level = 100 -- Level necessário para convidar alguém
- maxlevel = 50000 -- Level máximo para alguém virar partner e para ter bônus de EXP
- maxp = 5 -- Maximo de partners que alguém pode ter
- rate = 1.1 -- Rate do bônus
- invstatus = 9156
- invstor = 9157
- upd = 9160
- ]]></config>
- ------------------------------------------------------------------------------------
- <talkaction words="!partner" event="buffer"><![CDATA[
- domodlib('partner_config')
- local pid = getPlayerByNameWildcard(param)
- local invname = getPlayerStorageValue(cid, 9155)
- local stor = getPlayerStorageValue(cid, invstor)
- if param ~= "aceitar" and param ~= "rejeitar" then
- if not pid or (isPlayerGhost(pid) and getPlayerGhostAccess(pid) > getPlayerGhostAccess(pid)) then
- doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Player "..param.." não encontrado.") return true
- elseif pid == cid then
- doPlayerSendCancel(cid, "Você não pode convidar a si mesmo.") return true
- elseif getPlayerLevel(cid) < level then
- doPlayerSendCancel(cid, "Você precisa ser level "..level.." para usar esse comando.") return true
- elseif getPlayerLevel(pid) > maxlevel then
- doPlayerSendCancel(cid, "O player "..param.." é level muito alto para ser seu partner.") return true
- elseif stor >= maxp then
- doPlayerSendCancel(cid, "Você já atingiu seu limite de partners.") return true
- elseif getPlayerStorageValue(pid, 9158) >= 1 then
- doPlayerSendCancel(cid, "Este player já foi partner de alguém.") return true
- elseif exhaustion.check(cid, storage) then
- doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Aguarde "..math.floor((exhaustion.get(cid, exhastor)/3600)).." horas para utilizar esse comando novamente.") return true
- elseif getPlayerStorageValue(pid, invstatus) == 1 then
- doPlayerSendCancel(cid, "Este player já possui um convite pendente.") return true
- end
- exhaustion.set(cid, storage, waittime*3600)
- doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Convite enviado à "..param..".")
- doPlayerSendTextMessage(pid, MESSAGE_STATUS_CONSOLE_BLUE, ""..getCreatureName(cid).." está te convidando para ser seu partner. Use o comando !partner aceitar ou rejeitar.")
- setPlayerStorageValue(pid, invstatus, 1)
- setPlayerStorageValue(pid, 9155, getCreatureName(cid))
- return true
- else
- if getPlayerStorageValue(cid, invstatus) < 1 then
- doPlayerSendCancel(cid, "Você não possui convites pendentes.") return true
- elseif param == "aceitar" then
- if not isCreature(getPlayerByName(invname)) then
- setOfflinePlayerStorageValue(invname, invstor, getOfflinePlayerStorageValue(invname, invstor) == -1 and 1 or getOfflinePlayerStorageValue(invname, invstor)+1)
- setOfflinePlayerStorageValue(invname, upd, 1)
- else
- setPlayerStorageValue(getPlayerByName(invname), invstor, getPlayerStorageValue(getPlayerByName(invname), invstor) == -1 and 1 or getPlayerStorageValue(getPlayerByName(invname), invstor)+1)
- doPlayerSendTextMessage(getPlayerByName(invname), MESSAGE_STATUS_CONSOLE_ORANGE, "Convite aceito. O player "..getCreatureName(cid).." agora é seu partner.")
- end
- setPlayerStorageValue(cid, 9158, 1)
- doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Você agora é partner de "..invname..". Você será deslogado em 5 segundos.")
- addEvent(doRemoveCreature, 5000, cid)
- setPlayerStorageValue(cid, invstatus, -1)
- elseif param == "rejeitar" then
- if not isCreature(getPlayerByName(invname)) then
- doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Você rejeitou o convite.")
- setOfflinePlayerStorageValue(invname, upd, 2)
- setPlayerStorageValue(cid, invstatus, -1)
- else
- doPlayerSendTextMessage(getPlayerByName(invname), MESSAGE_STATUS_CONSOLE_ORANGE, "Seu convite foi rejeitado.")
- doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Você rejeitou o convite de "..invname..".")
- setPlayerStorageValue(cid, invstatus, -1)
- end
- end
- end
- return true
- ]]></talkaction>
- ------------------------------------------------------------------------------------
- <event type="login" name="PartnerSyst" event="script"><![CDATA[
- domodlib('partner_config')
- function onLogin(cid)
- registerCreatureEvent(cid, "PartnerSyst")
- if getPlayerStorageValue(cid, upd) >= 1 then
- doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, getPlayerStorageValue(cid, upd) == 1 and "Seu convite de Partner foi aceito." or getPlayerStorageValue(cid, upd) == 2 and "Seu convite de partner foi rejeitado.")
- setPlayerStorageValue(cid, upd, -1)
- elseif getPlayerStorageValue(cid, 9158) == 1 then
- doPlayerSetExperienceRate(cid, rate)
- doPlayerPopupFYI(cid, "Você obteve "..(rate*10-1).."% de bônus de experiência até o level "..maxlevel..".")
- setPlayerStorageValue(cid, 9158, 2)
- elseif getPlayerLevel(cid) > maxlevel and getPlayerStorageValue(cid, 9158) == 2 then
- doPlayerSetExperienceRate(cid, 1.0)
- doPlayerPopupFYI(cid, "Seu bônus de partner acabou por você ter atingido o level "..maxlevel..".")
- setPlayerStorageValue(cid, 9158, 3)
- end
- return true
- end
- ]]></event>
- </mod>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement