local showing = {} local sprite = {} local image = {} pressed = 0 local xpos = 0 --where the top left of the sprite will be local ypos = 0 --where the top left of the sprite will be local sprite_size = 100 --% of the screen the sprite will take up local folder = "scriptbank\\images\\notes\\" --where the images are found within GG files (remember to put the \\ in and again at the end.. i.e. "scriptbank\\images\\") --the name of the entity must match the name of the image to show (remember to include the file type) function note_sprite_init_name(e,name) showing[e] = 0 image[e] = LoadImage(folder..tostring(name)) end function note_sprite_main(e) if sprite[e] == nil then sprite[e] = CreateSprite(image[e]) SetSpriteSize(sprite[e],sprite_size,sprite_size) SetSpritePosition(sprite[e],500,500) else if PlayerLooking(e,100,20) == 1 then x1 = GetEntityPositionX(e) y1 = GetEntityPositionY(e)+0.5 z1 = GetEntityPositionZ(e) y2 = g_PlayerPosY x2 = g_PlayerPosX z2 = g_PlayerPosZ obstructionhit = IntersectAll(x2,y2,z2,x1,y1,z1,g_Entity[e]['obj']) if obstructionhit == nil then obstructionhit = 0 end if obstructionhit ~= 0 then --Prompt ( "cannot see weapon to collect it" ) else PromptLocal(e,"Read scroll?") if g_KeyPressE == 1 and pressed == 0 then pressed = 1 PlaySound(e,0) if showing[e] == 0 then showing[e] = 1 SetSpritePosition(sprite[e],xpos,ypos) else showing[e] = 0 SetSpritePosition(sprite[e],500,500) end end end else if showing[e] == 1 then SetSpritePosition(sprite[e],500,500) showing[e] = 0 end end end if GetScancode() == 0 then pressed = 0 end end function PlayerLooking(e,dis,v) if g_Entity[e] ~= nil then if dis == nil then dis = 3000 end if v == nil then v = 0.5 end if GetPlayerDistance(e) <= dis then local destx = g_Entity[e]['x'] - g_PlayerPosX local destz = g_Entity[e]['z'] - g_PlayerPosZ local angle = math.atan2(destx,destz) angle = angle * (180.0 / math.pi) if angle <= 0 then angle = 360 + angle elseif angle > 360 then angle = angle - 360 end while g_PlayerAngY < 0 or g_PlayerAngY > 360 do if g_PlayerAngY <= 0 then g_PlayerAngY = 360 + g_PlayerAngY elseif g_PlayerAngY > 360 then g_PlayerAngY = g_PlayerAngY - 360 end end local L = angle - v local R = angle + v if L <= 0 then L = 360 + L elseif L > 360 then L = L - 360 end if R <= 0 then R = 360 + R elseif R > 360 then R = R - 360 end if (L < R and math.abs(g_PlayerAngY) > L and math.abs(g_PlayerAngY) < R) then return 1 elseif (L > R and (math.abs(g_PlayerAngY) > L or math.abs(g_PlayerAngY) < R)) then return 1 else return 0 end else return 0 end end end