• TibiaFace

    Tibiaface | Una comunidad Open Tibia donde encontras : mapas, scripts, Otserver, npc y amigos etc ...

    .
    demo menumenu

    Afiliados



    Votar:

    pedido de script onlook

    Compartir:

    Ver el tema anterior Ver el tema siguiente Ir abajo  Mensaje (Página 1 de 1.)

    1default pedido de script onlook el Lun Ene 29, 2018 3:09 am

    hola amigos de tibiaface, hoy les vengo con un pedido de onlook.

    uso otxserver 2.9 version 8.6

    este es el pedido que quiero, que cuando des look a un player salga las frags,critical,dodge,hp y mana. :

    Código:
    01:04 You see El dios (Level 750). He is a Dragon Warrior [Frags: 2], [Critical: 1%], [Dodge: 6%], HP: [65965952], Mana: [65965802].

    01:09 You see yourself (Level 750). You are Taoist. [Frags: 0], [Critical: 0%], [Dodge: 0%]
    HP: [4637], Mana: [3745].

    por cierto uso sqlite

    gracias por su atencion Smile

    Ver perfil de usuario

    2default Re: pedido de script onlook el Lun Ene 29, 2018 8:02 am

    [Admin] God Maya

    avatar
    Administrador
    Administrador
    aqui lo tienes

    Código:
    function getPlayerFrags(cid)
       local time = os.time()
       local times = {today = (time - 86400), week = (time - (7 * 86400))}
       
       local contents, result = {day = {}, week = {}, month = {}}, db.getResult("SELECT `pd`.`date`, `pd`.`level`, `p`.`name` FROM `player_killers` pk LEFT JOIN `killers` k ON `pk`.`kill_id` = `k`.`id` LEFT JOIN `player_deaths` pd ON `k`.`death_id` = `pd`.`id` LEFT JOIN `players` p ON `pd`.`player_id` = `p`.`id` WHERE `pk`.`player_id` = " .. getPlayerGUID(cid) .. " AND `k`.`unjustified` = 1 AND `pd`.`date` >= " .. (time - (30 * 86400)) .. " ORDER BY `pd`.`date` DESC")
       if(result:getID() ~= -1) then
          repeat
             local content = {date = result:getDataInt("date")}
             if(content.date > times.today) then
                table.insert(contents.day, content)
             elseif(content.date > times.week) then
                table.insert(contents.week, content)
             else
                table.insert(contents.month, content)
             end
          until not result:next()
          result:free()
       end
       
       local size = {
          day = table.maxn(contents.day),
          week = table.maxn(contents.week),
          month = table.maxn(contents.month)
       }
       return size.day + size.week + size.month
    end

    function onLogin(cid)
       registerCreatureEvent(cid, "fraglook")
       return true
    end

    function onLook(cid, thing, position, lookDistance)
       if isPlayer(thing.uid) and thing.uid ~= cid then
          doPlayerSetSpecialDescription(thing.uid,' [Frags: '..getPlayerFrags(thing.uid)..'], [Critical: '..math.max(0,(tonumber(getCreatureStorage(thing.uid,48913)) or 0))..'], [Dodge: '..math.max(0,(tonumber(getCreatureStorage(thing.uid,48902)) or 0))..']')
          return true
       elseif thing.uid == cid then
          doPlayerSetSpecialDescription(cid,' [Frags: '..getPlayerFrags(cid)..'], [Critical: '..math.max(0,(tonumber(getCreatureStorage(cid,48913)) or 0))..'], [Dodge: '..math.max(0,(tonumber(getCreatureStorage(cid,48902)) or 0))..']')
          local string = 'You see yourself.'
          if getPlayerFlagValue(cid, PLAYERFLAG_SHOWGROUPINSTEADOFVOCATION) then
             string = string..' You are '.. getPlayerGroupName(cid) ..'.'
          elseif getPlayerVocation(cid) ~= 0 then
             string = string..' You are '.. getPlayerVocationName(cid) ..'.'
          else
             string = string..' You have no vocation.'
          end
          string = string..getPlayerSpecialDescription(cid)..''
          
          if getPlayerNameByGUID(getPlayerPartner(cid), false, false) ~= nil then
             string = string..' You are '.. (getPlayerSex(cid) == 0 and 'wife' or 'husband') ..' of '.. getPlayerNameByGUID(getPlayerPartner(cid)) ..'.'
          end
          
          if getPlayerGuildId(cid) > 0 then
             string = string..' You are ' .. (getPlayerGuildRank(cid) == '' and 'a member' or getPlayerGuildRank(cid)) ..' of the '.. getPlayerGuildName(cid)
             string = getPlayerGuildNick(cid) ~= '' and string..' ('.. getPlayerGuildNick(cid) ..').' or string..'.'
          end
          
          if getPlayerFlagValue(cid, PLAYERCUSTOMFLAG_CANSEECREATUREDETAILS) then
             string = string..'\nHealth: ['.. getCreatureHealth(cid) ..' / '.. getCreatureMaxHealth(cid) ..'], Mana: ['.. getCreatureMana(cid) ..' / '.. getCreatureMaxMana(cid) ..'].'
             string = string..'\nIP: '.. doConvertIntegerToIp(getPlayerIp(cid)) ..'.'
          end
          
          if getPlayerFlagValue(cid, PLAYERCUSTOMFLAG_CANSEEPOSITION) then
             string = string..'\nPosition: [X:'.. position.x..'] [Y:'.. position.y..'] [Z:'.. position.z..'].'
          end
          doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, string)
          return false
       end
       return true
    end



    Ver perfil de usuario http://www.tibiaface.com

    3default Re: pedido de script onlook el Lun Ene 29, 2018 4:03 pm

    me sale este error admin:
    Código:
    [29/1/2018 12:3:19] [Error - CreatureScript Interface]
    [29/1/2018 12:3:19] data/creaturescripts/scripts/onlook.lua:onLook
    [29/1/2018 12:3:19] Description:
    [29/1/2018 12:3:19] (LuaInterface::luaGetPlayerNameByGUID) Player not found

    Ver perfil de usuario

    4default Re: pedido de script onlook el Lun Ene 29, 2018 4:09 pm

    [Admin] God Maya

    avatar
    Administrador
    Administrador
    agrega esto a tus 50-functions.lua

    Código:
    function getPlayerNameByGUID(guid)
    local resultx = db.storeQuery("SELECT `name` FROM `players` WHERE `id` = " .. guid)
    if resultx then
    name = result.getDataString(resultx, 'name')
    result.free(resultx)
    return name
    end
    return LUA_ERROR
    end
     



    Ver perfil de usuario http://www.tibiaface.com

    5default Re: pedido de script onlook el Lun Ene 29, 2018 4:16 pm

    me sale este error
    Código:

    [29/1/2018 12:15:26] [Error - CreatureScript Interface]
    [29/1/2018 12:15:26] data/creaturescripts/scripts/onlook.lua:onLook
    [29/1/2018 12:15:26] Description:
    [29/1/2018 12:15:26] data/creaturescripts/scripts/onlook.lua:50: attempt to concatenate a boolean value
    [29/1/2018 12:15:26] stack traceback:
    [29/1/2018 12:15:26]    data/creaturescripts/scripts/onlook.lua:50: in function <data/creaturescripts/scripts/onlook.lua:33>

    Ver perfil de usuario

    6default Re: pedido de script onlook el Lun Ene 29, 2018 4:24 pm

    Creo que el problema esta aqui
    Código:

     if getPlayerNameByGUID(getPlayerPartner(cid), false, false) ~= nil then

    Código:

    if getPlayerNameByGUID(getPlayerPartner(cid)) ~= nil then



    Si necesitas hospedaje para tu servidor usa este enlace y mira las buenos planes de Windows y Linux:

    SevuOT Online, Version:10 and Custom.

    Ver perfil de usuario

    7default Re: pedido de script onlook el Lun Ene 29, 2018 4:30 pm

    el problema persiste :v
    mismo error

    Ver perfil de usuario

    8default Re: pedido de script onlook el Lun Ene 29, 2018 4:37 pm

    [Admin] God Maya

    avatar
    Administrador
    Administrador
    Código:
    function onLook(cid, thing, position, lookDistance)
    function getDeathsAndKills(cid, type) -- by vodka
        local query,d = db.getResult("SELECT `player_id` FROM "..(tostring(type) == "kill" and "`player_killers`" or "`player_deaths`").." WHERE `player_id` = "..getPlayerGUID(cid)),0
            if (query:getID() ~= -1) then
                repeat
                    d = d+1
                until not query:next()
                query:free()
            end
        return d 
    end
    if isPlayer(thing.uid) then
    doPlayerSetSpecialDescription(thing.uid, "\n"..(getPlayerSex(thing.uid) == 0 and "She" or "He").." has Killed: ["..getDeathsAndKills(thing.uid, "kill").."] Players.\n"..(getPlayerSex(thing.uid) == 0 and "She" or "He").." has Died: ["..getDeathsAndKills(thing.uid, "death").."] Times.\n"..(getPlayerSex(thing.uid) == 0 and "She" or "He").." has Dodge: ["..math.max(0,(tonumber(getCreatureStorage(cid,48902)) or 0)).."].\n"..(getPlayerSex(thing.uid) == 0 and "She" or "He").." has Critical: ["..math.max(0,(tonumber(getCreatureStorage(cid,48902)) or 0)).."].")
    end
    return true
    end

    Código:
    <event type="look" name="showKD" event="script" value="KillsandDeath.lua"/>

    Código:
    registerCreatureEvent(cid, "showKD")



    Ver perfil de usuario http://www.tibiaface.com

    9default teste el Lun Ene 29, 2018 9:31 pm

    ME SIRVIO ADMIN GOD MAYA, muchas gracias Very Happy


    admin acabo de notarle un problema, ya no me marca error ni nada pero. Cuando tu te pones una dodge o una critical te das look y te sale (1) pero al darle look a los players salen con la misma cantidad de dodge y criticals que tu. me cree otro chart y no me metí ninguna stones y pues como tenia 0 criticals y dodges, las personas al darles looks tienen igual que tu las critical y dodges.

    puse el mismo storage de las criticals y dodges que tengo en ese sistema

    Ver perfil de usuario

    10default Re: pedido de script onlook el Lun Ene 29, 2018 11:07 pm

    [Admin] God Maya

    avatar
    Administrador
    Administrador
    testea
    Código:
    function onLook(cid, thing, position, lookDistance)
    function getDeathsAndKills(cid, type) -- by vodka
        local query,d = db.getResult("SELECT `player_id` FROM "..(tostring(type) == "kill" and "`player_killers`" or "`player_deaths`").." WHERE `player_id` = "..getPlayerGUID(cid)),0
            if (query:getID() ~= -1) then
                repeat
                    d = d+1
                until not query:next()
                query:free()
            end
        return d 
    end
    if isPlayer(thing.uid) and thing.uid ~= cid then
    doPlayerSetSpecialDescription(thing.uid, "\n"..(getPlayerSex(thing.uid) == 0 and "She" or "He").." has Killed: ["..getDeathsAndKills(thing.uid, "kill").."] Players.\n"..(getPlayerSex(thing.uid) == 0 and "She" or "He").." has Died: ["..getDeathsAndKills(thing.uid, "death").."] Times.\n"..(getPlayerSex(thing.uid) == 0 and "She" or "He").." has Dodge: ["..math.max(0,(tonumber(getCreatureStorage(cid,48902)) or 0)).."].\n"..(getPlayerSex(thing.uid) == 0 and "She" or "He").." has Critical: ["..math.max(0,(tonumber(getCreatureStorage(cid,48902)) or 0)).."].")

     elseif thing.uid == cid then

    doPlayerSetSpecialDescription(cid, "\n"..(getPlayerSex(thing.uid) == 0 and "She" or "He").." has Killed: ["..getDeathsAndKills(thing.uid, "kill").."] Players.\n"..(getPlayerSex(thing.uid) == 0 and "She" or "He").." has Died: ["..getDeathsAndKills(thing.uid, "death").."] Times.\n"..(getPlayerSex(thing.uid) == 0 and "She" or "He").." has Dodge: ["..math.max(0,(tonumber(getCreatureStorage(cid,48902)) or 0)).."].\n"..(getPlayerSex(thing.uid) == 0 and "She" or "He").." has Critical: ["..math.max(0,(tonumber(getCreatureStorage(cid,48902)) or 0)).."].")

    end
    return true
    end



    Ver perfil de usuario http://www.tibiaface.com

    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.

     

    BienvenidosTibiaFace es una comunidad de Open Tibia. Para participar debes estar registrado (click para Regístrate).