BlackTibia

No estás conectado. Conéctate o registrate

 » Open Tibia » Pedido de Scripts » 

Ayuda con reset system [Solucionado]

Ayuda con reset system [Solucionado]

#1 Ayuda con reset system [Solucionado] el Vie Abr 25, 2014 10:11 pm

lost-hunter


Novato
Acabo de agregar un sistema de reset en mi server (subes a cierto lvl dices reset y se te regresa a nivel x con la misma mana y vida que tenias antes), pero quiero saber algunas cosas, como por ejemplo como hacer para cuando demos look a un player diga el numero de resets que tiene, tambien hacer spells pero solo para los que tienen por decir 5 reset o asi :Des todo

Código:
function onSay(cid, words, param)
config = {
level=700, -- level que necesitan para hacer el reset.
RemainingLvl=8, -- level que tendran despues del reset.
exper=4200, -- experience that will be reset after.
pid=getPlayerGUID(cid),
skull="yes", -- players with white skull can reset? ("yes" or "no").
redskull="yes", -- players with red skull can reset? ("yes" or "no").
prot="yes", -- players need to be in protection zone to reset? ("yes" or "no").
bat="yes" --Players must be no fight to reset ("yes" or "no").
}

function getResets(cid)
reset = getPlayerStorageValue(cid,1020)
if reset < 0 then
reset = 0
end
return reset
end

if(config.skull == "no") and (getCreatureSkullType(cid) == 3) then
doPlayerSendTextMessage(cid,22,"only players without white skull can reset.")
return TRUE
end

if(config.redskull == "no") and (getCreatureSkullType(cid) == 4) then
doPlayerSendTextMessage(cid,22,"only player without red skull can reset.")
return TRUE
end

if(config.prot == "yes") and (getTilePzInfo(getCreaturePosition(cid)) == FALSE) then
doPlayerSendTextMessage(cid,22,"you need stay in PZ to reset.")
return TRUE
end

if(config.bat == "yes") and (getCreatureCondition(cid, CONDITION_INFIGHT) == TRUE) then
doPlayerSendTextMessage(cid,22,"players without battle can reset.")
return TRUE
end

if getPlayerLevel(cid) >= config.level then
setPlayerStorageValue(cid,1020,getResets(cid)+1)
doPlayerSetNameDescription(cid, " Have a "..getResets(cid)+(1).." reset\'s.")
doPlayerPopupFYI(cid,"you now was reset, you have "..getResets(cid)+(1).." reset\'s.")
doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)))
doRemoveCreature(cid)
db.executeQuery("UPDATE `players` SET `level` = "..config.RemainingLvl..", `experience` = "..config.exper.." WHERE `id` = "..config.pid)
else
doPlayerSendCancel(cid, "You need to have level "..config.level.." or more you may be reset.")
doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF)
end

return TRUE
end



Última edición por lost-hunter el Sáb Abr 26, 2014 1:40 am, editado 2 veces

#2 Re: Ayuda con reset system [Solucionado] el Vie Abr 25, 2014 10:18 pm

ekkamacho


Estudiante
Podrías editar el post y poner el script que utilizas para el reset? gracias.

Edit:

Ok mira, crea un archivo .lua en data\creaturescripts\scripts llamado ResetDescriptiony ponle esto:
Código:
function onLook(cid, thing, position, lookDistance)
   if(isPlayer(thing.uid) and thing.uid ~= cid and getCreatureStorage(thing.uid, 85987) ~= -1) then
      doPlayerSetSpecialDescription(thing.uid, (getPlayerSex(thing.uid) == PLAYERSEX_FEMALE and ".\nShe" or ".\nHe") .. " has prestiged " .. getCreatureStorage(thing.uid, 85987) .. " " .. (getCreatureStorage(thing.uid, 85987) == 1 and "time" or "times"))
   elseif(thing.uid == cid and getCreatureStorage(cid, 85987) ~= -1) then
      local message = "You see yourself."
      if(getPlayerFlagValue(cid, PLAYERFLAG_SHOWGROUPINSTEADOFVOCATION)) then
         message = message .. " You are " .. getPlayerGroupName(cid) .. "."
      elseif(getPlayerVocation(cid) ~= 0) then
         message = message .. " You are a " .. getPlayerVocationName(cid):lower() .. "."
      else
         message = message .. " You have no vocation."
      end
 
      if(getPlayerNameByGUID(getPlayerPartner(cid), false, false) ~= nil) then
         message = message .. " You are " .. (getPlayerSex(cid) == PLAYERSEX_FEMALE and "wife" or "husband") .. " of " .. getPlayerNameByGUID(getPlayerPartner(cid)) .. "."
      end
 
      if(getPlayerGuildId(cid) > 0) then
         message = message .. " You are " .. (getPlayerGuildRank(cid) == "" and "a member" or getPlayerGuildRank(cid)) .. " of the " .. getPlayerGuildName(cid)
         message = getPlayerGuildNick(cid) ~= "" and message .. " (" .. getPlayerGuildNick(cid) .. ")." or message .. "."
      end
 
      if(getPlayerFlagValue(cid, PLAYERCUSTOMFLAG_CANSEECREATUREDETAILS)) then
         message = message .. "\nHealth: [" .. getCreatureHealth(cid) .. " / " .. getCreatureMaxHealth(cid) .. "], Mana: [" .. getCreatureMana(cid) .. " / " .. getCreatureMaxMana(cid) .. "]."
         message = message .. "\nIP: " .. doConvertIntegerToIp(getPlayerIp(cid)) .. ", Client: " .. getClientVersion(cid) .. "."
      end
 
      if(getPlayerFlagValue(cid, PLAYERCUSTOMFLAG_CANSEEPOSITION)) then
         message = message .. "\nPosition: [X: " .. position.x .. "] [Y: " .. position.y .. "] [Z: " .. position.z .. "]."
      end
 
      return false, doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, message .. " \nTu has hecho prestige " .. getCreatureStorage(cid, 85987) .. " " .. (getCreatureStorage(cid, 85987) == 1 and "vez." or "veces."))
   end
 
   return true
end

Después en data\creaturescripts abrecreaturescript.xml y agrega esta línea
Código:
<event type="look" name="ResetDescription" event="script" value="resetdescription.lua"/>

Después ve a data\creaturescripts\scripts y abre login.lua y agrega esto al final:
Código:
registerCreatureEvent(cid, "ResetDescription")

Y es todo, si tienes problemas avísame.

#3 Re: Ayuda con reset system [Solucionado] el Vie Abr 25, 2014 11:52 pm

lost-hunter


Novato
Muchisimas Gracias me funciono a la perfección (y)



Última edición por lost-hunter el Sáb Abr 26, 2014 12:16 am, editado 2 veces

#4 Re: Ayuda con reset system [Solucionado] el Vie Abr 25, 2014 11:57 pm

ekkamacho


Estudiante
De nada , no se te olvide agregar un [Solucionado] al titulo del post.

#5 Re: Ayuda con reset system [Solucionado] el Sáb Abr 26, 2014 12:17 am

lost-hunter


Novato
Pero oyes man cuando le doy look al player me sale esto:
You see Mamador Have a 2 reset's. Have a 3 reset's. Have a 4 reset's. (Level 8). He is a master sorcerer.

no habra forma de que solo diga have 4 resets o los que lleva, y no 2,3,4,5 etc xD

#6 Re: Ayuda con reset system [Solucionado] el Sáb Abr 26, 2014 12:24 am

ekkamacho


Estudiante
Enserio?, yo lo tengo así y solo sale uno o.O.
Te puedo pasar el mío pero es con npc

#7 Re: Ayuda con reset system [Solucionado] el Sáb Abr 26, 2014 12:30 am

lost-hunter


Novato
haber pasame el script de tu reset a lo mejor eso es o no xD

#8 Re: Ayuda con reset system [Solucionado] el Sáb Abr 26, 2014 12:38 am

ekkamacho


Estudiante
Oka, aquí está:
data\npc\scripts\Rebirth.lua
Código:
local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
local talkState = {}
 
function onCreatureAppear(cid)            npcHandler:onCreatureAppear(cid) end
function onCreatureDisappear(cid)         npcHandler:onCreatureDisappear(cid) end
function onCreatureSay(cid, type, msg)         npcHandler:onCreatureSay(cid, type, msg) end
function onThink()               npcHandler:onThink() end
 
function creatureSayCallback(cid, type, msg)
   if(not npcHandler:isFocused(cid)) then
      return false
   end
 
   local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid
 
   if(msgcontains(msg, 'prestige')) then
      selfSay('Estas seguro que quieres hacer reset y empezar una nueva vida?', cid)
      talkState[talkUser] = 1
   elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 1) then
      -------CONFIGS-------
      local level = 70000
      local cost = 0
      ------/CONFIGS-------
      -----LOCALS-----
      local id = getPlayerGUID(cid)
      local name = getCreatureName(cid)
      local vocation = getPlayerVocation(cid)
      local storage = getCreatureStorage(cid, 85987)
      ----/LOCALS-----
      if(getPlayerLevel(cid) >= level) then
         if(doPlayerRemoveMoney(cid, cost) == TRUE) then
            if(isInArray({1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 15, 15, 16}, vocation)) then
               doCreatureSetStorage(cid, 85987, storage == -1 and 1 or storage + 1)
               doRemoveCreature(cid)
               db.executeQuery("UPDATE `players` SET `level` = 1000, `experience` = 4200, `promotion` = 0 WHERE `id` ='"..id.."';")
               db.executeQuery("UPDATE `players` SET `name` = '"..name.."' WHERE `id` ='"..id.."';")
            else
               selfSay('Please talk with Forgotten King and promote first.', cid)
               talkState[talkUser] = 0
            end
         else
            selfSay('Tu no tienes el dinero suficiente para hacer rebirth.', cid)
            talkState[talkUser] = 0
         end
      else
         selfSay('Solo jugadores con level 70000 o mas pueden hacer rebirth.', cid)
         talkState[talkUser] = 0
      end
   elseif(msgcontains(msg, 'no') and talkState[talkUser] == 1) then
      selfSay('Okey. Come back when you feel ready.', cid)
      talkState[talkUser] = 0
   end
 
   return true
end
 
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

data\npc\rebirth.xml
Código:
<?xml version="1.0" encoding="UTF-8"?>
<npc name="Prestige Npc" script="data/npc/scripts/rebirth.lua" walkinterval="2000" floorchange="0">
    <health now="100" max="100"/>
<look type="73" head="78" body="88" legs="0" feet="88" addons="3"/>
    <parameters>
        <parameter key="message_gret" value="Hello |PLAYERNAME|. m in charge of the 'Prestige' system."/>
        <parameter key="message_farewll" value="Good bye my dear friend."/>
    </parameters>
</npc>
data\creaturescripts\scripts\RebirthDescription.lua
Código:
function onLook(cid, thing, position, lookDistance)
   if(isPlayer(thing.uid) and thing.uid ~= cid and getCreatureStorage(thing.uid, 85987) ~= -1) then
      doPlayerSetSpecialDescription(thing.uid, (getPlayerSex(thing.uid) == PLAYERSEX_FEMALE and ".\nShe" or ".\nHe") .. " has prestiged " .. getCreatureStorage(thing.uid, 85987) .. " " .. (getCreatureStorage(thing.uid, 85987) == 1 and "time" or "times"))
   elseif(thing.uid == cid and getCreatureStorage(cid, 85987) ~= -1) then
      local message = "You see yourself."
      if(getPlayerFlagValue(cid, PLAYERFLAG_SHOWGROUPINSTEADOFVOCATION)) then
         message = message .. " You are " .. getPlayerGroupName(cid) .. "."
      elseif(getPlayerVocation(cid) ~= 0) then
         message = message .. " You are a " .. getPlayerVocationName(cid):lower() .. "."
      else
         message = message .. " You have no vocation."
      end
 
      if(getPlayerNameByGUID(getPlayerPartner(cid), false, false) ~= nil) then
         message = message .. " You are " .. (getPlayerSex(cid) == PLAYERSEX_FEMALE and "wife" or "husband") .. " of " .. getPlayerNameByGUID(getPlayerPartner(cid)) .. "."
      end
 
      if(getPlayerGuildId(cid) > 0) then
         message = message .. " You are " .. (getPlayerGuildRank(cid) == "" and "a member" or getPlayerGuildRank(cid)) .. " of the " .. getPlayerGuildName(cid)
         message = getPlayerGuildNick(cid) ~= "" and message .. " (" .. getPlayerGuildNick(cid) .. ")." or message .. "."
      end
 
      if(getPlayerFlagValue(cid, PLAYERCUSTOMFLAG_CANSEECREATUREDETAILS)) then
         message = message .. "\nHealth: [" .. getCreatureHealth(cid) .. " / " .. getCreatureMaxHealth(cid) .. "], Mana: [" .. getCreatureMana(cid) .. " / " .. getCreatureMaxMana(cid) .. "]."
         message = message .. "\nIP: " .. doConvertIntegerToIp(getPlayerIp(cid)) .. ", Client: " .. getClientVersion(cid) .. "."
      end
 
      if(getPlayerFlagValue(cid, PLAYERCUSTOMFLAG_CANSEEPOSITION)) then
         message = message .. "\nPosition: [X: " .. position.x .. "] [Y: " .. position.y .. "] [Z: " .. position.z .. "]."
      end
 
      return false, doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, message .. " \nTu has hecho prestige " .. getCreatureStorage(cid, 85987) .. " " .. (getCreatureStorage(cid, 85987) == 1 and "vez." or "veces."))
   end
 
   return true
end

data\creaturescripts\creaturescripts.xml
Código:
<event type="look" name="RebirthDescription" event="script" value="rebirthdescription.lua"/>

data\creaturescripts\scripts\login.lua
Código:
registerCreatureEvent(cid, "RebirthDescription")

Creo que es todo

#9 Re: Ayuda con reset system [Solucionado] el Sáb Abr 26, 2014 1:40 am

lost-hunter


Novato
Muchisimas gracias we de nuevo ahora si funciona a la perfeccion. post cerrado

Contenido patrocinado


Ver el tema anterior Ver el tema siguiente Volver arriba  Mensaje [Página 1 de 1.]

Permisos de este foro:
No puedes responder a temas en este foro.

 

¿Quién está en línea?

En total hay 0 usuarios en línea: 0 Registrados, 0 Ocultos y 0 Invitado

Usuarios navegando en este foro: Ninguno

Forum Statistics

Nuestros miembros han públicado un total de posts en temas.
Actualmente hay miembros registrados.
Démosle la bienvenida al miembro más reciente,
La mayor cantidad de usuarios en línea ha sido de .