1. Ce site utilise des cookies. En continuant à utiliser ce site, vous acceptez l'utilisation des cookies. En savoir plus.

Ressources Web NPC Addon V2

Valfunde11 Juillet 2016

  1. Valfunde

    Valfunde Nouveau membre Membre

    Messages:
    11
    J'aime reçus:
    3
    Points:
    3
    Pseudo RP:
    Miguel
    Bonjour, je vous propose une nouvelle version de l'addon Web NPC Addon.
    Cet addon propose :
    • Un premier menu où se trouve un nombre variable de boutons
    • Un design du menu "Responsive"
    • Un Panel customisable (Changer les couleurs, les liens, les textes..)
    • Un NPC customisable ( Changer le texte, la couleur et le playermodel)
    • Un bouton retour en arrière & fermer
    • Ouverture de page web de votre choix
    Voici les différents screenshots de l'addon :

    [​IMG]

    [​IMG]

    [​IMG]

    [​IMG]

    [​IMG]

    L'installation de l'addon est très simple :
    Une fois téléchargé, vous trouverez dans le fichier .rar un dossier nommé valfunde_web_npc_v2.
    Prenez ce fichier et glissez le dans votre dossier addons.
    Pour ce qui est de la configuration de l'addon, allez dans : valfunde_web_npc_v2>lua>entities>tab_panel_npc puis ouvrez le fichier cl_config.lua .
    Suivez ensuite les instructions dans ce même fichier.


    J’espère que vous apprécierez mon addon.
    A plus tard !
     
    • J'aime J'aime x 1
    • Amusant Amusant x 1
    #1
  2. WareZ

    WareZ L'Otaku de Gcity | Base de donnée d'Ecchi Membre du personnel Modérateur DarkRP SuperAdmin Gestion joueurs

    Messages:
    2 330
    J'aime reçus:
    851
    Points:
    430
    Pseudo RP:
    Dieu Judas de GarryCity
    #2
  3. mignoti

    mignoti daiveulopeur scripte feau-d'heure Membre

    Messages:
    302
    J'aime reçus:
    35
    Points:
    88
    Pseudo RP:
    Renardo Serasa
    Script ultra simple a réaliser mais sinon bonne chance pour la suite.
    PS: Ton menu est pas "responsive" comme tu le dis et tu fais très mal la gestion des boutons.

    Utilise plutot un ListLayout ou un PanelList dans lequel tu ajoute tes boutons et ou tu a ajusté la taille avec des calculs simples auparavant.

    (Nan parceque
    if Valfunde.Number.NumberLinkTab == 1 then

    elseif Valfunde.Number.NumberLinkTab == 2 then

    elseif Valfunde.Number.NumberLinkTab == 3 then

    elseif Valfunde.Number.NumberLinkTab == 4 then

    elseif Valfunde.Number.NumberLinkTab >= 5 then
    voilà quoi...)

    Et, pour ta fonction "webpanel"

    Fais plutot ca: (en modifiant un peut ton code)

    Code:
    function WebPanel( url )
        local webframe = vgui.Create("DFrame")
            webframe:SetSize(1280,720) -- Ton menu n'est pas "responsive" car il ne s'adapte pas a la taille des écrans.
            webframe:Center()
            webframe:SetTitle("")
            webframe:SetVisible(true)
            webframe:SetDraggable(false)
            webframe:MakePopup()
            webframe:ShowCloseButton(false)
    
            webframe.Paint = function( self )
    
                Derma_DrawBackgroundBlur( self, 1 )
                draw.RoundedBox(1, 0, 0, self:GetWide(), self:GetTall(), Valfunde.Colour.Secondary)
                draw.RoundedBox(4, 2, 2, self:GetWide()-4, self:GetTall()-4, Valfunde.Colour.Primary)
            end
    
        local htmlPart = vgui.Create("DHTML", webframe)
            htmlPart :Dock( FILL )
            htmlPart :OpenURL( url )
            htmlPart :SetAllowLua( true )
    
        local closebuttonone = vgui.Create("DButton", webframeone)
            closebuttonone:SetPos(1240,6.5)
            closebuttonone:SetText("Х")
            closebuttonone:SetSize(25,15)
            closebuttonone:SetTextColor(Valfunde.Colour.Primary)
    
        closebuttonone.Paint = function(s , w , h)
            draw.RoundedBox(1, 0, 0, w, h, Valfunde.Colour.Secondary)
        end
        closebuttonone.DoClick = function ( self )
            webframe:Close(true)
        end
    
            local backbuttonone = vgui.Create("DButton", webframeone)
            backbuttonone:SetPos(20,6.5)
            backbuttonone:SetText("<")
            backbuttonone:SetSize(25,15)
            backbuttonone:SetTextColor(Valfunde.Colour.Primary)
    
        backbuttonone.Paint = function(s , w , h)
            draw.RoundedBox(1, 0, 0, w, h, Valfunde.Colour.Secondary)
        end
        backbuttonone.DoClick = function ( self )
            webframe:Close(true)
            PaneL ()
        end
    end
    J'ai pas tout modifié mais j'èspère que tu as compris l'idée. Ca prends moins de place, ca fais un plus beau code et c'est globalement plus performant.

    J'ai pas encore regardé tout ton code, (car il me fais vraiment mal aux yeux) mais je le faire vite fais.

    Après avoir regardé la dernère partie de ton code,
    Code:
    hook.Add("PostDrawOpaqueRenderables", "PaneL", function()[/SIZE][/SIZE]
    [SIZE=1][SIZE=4]    for _, ent in pairs (ents.FindByClass("tab_panel_npc")) do
            if ent:GetPos():Distance(LocalPlayer():GetPos()) < 1000 then
                local Ang = ent:GetAngles()
    
                Ang:RotateAroundAxis( Ang:Forward(), 90)
                Ang:RotateAroundAxis( Ang:Right(), -90)
          
                cam.Start3D2D(ent:GetPos()+ent:GetUp()*85, Ang, 0.20)
                    draw.SimpleTextOutlined( Valfunde.Text.TextAboveHead, "HUDNumber5", 0, 0, Valfunde.Colour.TextAboveHeadColor, TEXT_ALIGN_CENTER, TEXT_ALIGN_TOP, 1, Color(0, 0, 0, 255))          
                cam.End3D2D()
            end
        end
    end)
    

    Non, tu fais pas ca. Jamais. Pas dans une entité en plus.

    Dans ton cas, fais tout ca dans ent:Draw() ou ent:DrawTranslucent()

    ca t'évitera déja ca for _, ent in pairs (ents.FindByClass("tab_panel_npc")) do

    et, pour le " if ent:GetPos():Distance(LocalPlayer():GetPos()) < 1000 then "

    change le en " if ent:GetPos():Distance(LocalPlayer():GetPos()) < 255 then"

    et fais que l'alpha de ton texte (au dessus du npc) est calulé comme tel:

    (Je part de l'idée que tu est dans la fonction ENT:Draw())

    Code:
    [/SIZE][/SIZE][/SIZE][/SIZE]
    [SIZE=1][SIZE=4][SIZE=1][SIZE=4]
                local Ang = self:GetAngles()
                local Pos = self:GetPos()
                local clr = Valfunde.Colour.TextAboveHeadColor
          if Pos:Distance(LocalPlayer():GetPos()) <= 255 then
    
                Ang:RotateAroundAxis( Ang:Forward(), 90)
                Ang:RotateAroundAxis( Ang:Right(), -90)
          
                cam.Start3D2D(Pos, Ang, 0.20) -- Pourquoi +ent:GetUp()*85 ?
                    draw.SimpleTextOutlined( Valfunde.Text.TextAboveHead, "HUDNumber5", 0, 0, Color(clr.r,clr.g,clr.b,math.Clamp(Pos:Distance( LocalPlayer():GetPos() ),0,255), TEXT_ALIGN_CENTER, TEXT_ALIGN_TOP, 1, Color(0, 0, 0, 255))          
                cam.End3D2D()
            end
    
    
    


    PS: Aucun de mon code a été testé, mais si tu sait un minimum coder tu devrait pouvoir l'adapter simplement.

    Ah et j'avais oublié:

    cl_config.lua = Fichier clientside(cl_)

    tu fais une référence a ce fichier dans init.lua, je sait pas si t'a testé ton truc sur un serveur srcds ou autre mais pas un serv local mais logiquement ca devrait pas marcher.
     
    • J'aime J'aime x 1
    • Utile Utile x 1
    Dernière édition: 11 Juillet 2016
    #3
  4. Valfunde

    Valfunde Nouveau membre Membre

    Messages:
    11
    J'aime reçus:
    3
    Points:
    3
    Pseudo RP:
    Miguel
    Merci de m'avoir aidé, je compte m'occuper d'opti le code dès que j'ai le temps, oui mon code est assez caca :3
    Je dirait quand j'aurais update tt sa ^^
     
    • J'aime J'aime x 1
    #4
  5. mignoti

    mignoti daiveulopeur scripte feau-d'heure Membre

    Messages:
    302
    J'aime reçus:
    35
    Points:
    88
    Pseudo RP:
    Renardo Serasa
    D'accord.
     
    • J'aime J'aime x 1
    #5
  6. Valfunde

    Valfunde Nouveau membre Membre

    Messages:
    11
    J'aime reçus:
    3
    Points:
    3
    Pseudo RP:
    Miguel
    Et comme je débute, je compte bien m’améliorer
     
    • J'aime J'aime x 1
    #6
  7. Pol

    Pol J'aime les chats Membre du personnel Fondateur Modérateur DarkRP SuperAdmin Equipe développement

    Messages:
    5 202
    J'aime reçus:
    764
    Points:
    174
    Pseudo RP:
    Pol Morteau
    :thumbsup::thumbsup::thumbsup::thumbsup:
     
    • Amusant Amusant x 1
    #7
  8. Valfunde

    Valfunde Nouveau membre Membre

    Messages:
    11
    J'aime reçus:
    3
    Points:
    3
    Pseudo RP:
    Miguel
    mignoti, aussi quand j'ai dit responsive, c'est pas par rapport a la résolution de l'écran, mais plus la taille du panel "menu" en fonction du nombre de buttons ^^
     
    #8
  9. mignoti

    mignoti daiveulopeur scripte feau-d'heure Membre

    Messages:
    302
    J'aime reçus:
    35
    Points:
    88
    Pseudo RP:
    Renardo Serasa
    Oui mais c'est pas ca que ca veut dire en vrai x)
     
    • J'aime J'aime x 2
    #9
  10. Valfunde

    Valfunde Nouveau membre Membre

    Messages:
    11
    J'aime reçus:
    3
    Points:
    3
    Pseudo RP:
    Miguel
    Oui, c'est exacte :p :3 Bon, je vais enfin pouvoir commencer sur l'optimisation du code :)
     
    #10
  11. mignoti

    mignoti daiveulopeur scripte feau-d'heure Membre

    Messages:
    302
    J'aime reçus:
    35
    Points:
    88
    Pseudo RP:
    Renardo Serasa
    Bonne chance.
     
    • Je suis d'accord Je suis d'accord x 1
    #11
  12. Valfunde

    Valfunde Nouveau membre Membre

    Messages:
    11
    J'aime reçus:
    3
    Points:
    3
    Pseudo RP:
    Miguel
    Mignoti, quand tu me dis que tu a edit le code de la fonction du webpanel, avec le DHTML, il n'a pas bougé :p c'est le même ^^'
     
    #12
  13. mignoti

    mignoti daiveulopeur scripte feau-d'heure Membre

    Messages:
    302
    J'aime reçus:
    35
    Points:
    88
    Pseudo RP:
    Renardo Serasa
    Naah, tu m'a mal compris.
    Fais une fonction pour ouvrir le menu en spécifiant l'url a la place d'a chaque fois recréer le code et hardcoder l'url dedans.

    Si tu veut, je peut t'expliquer en détail si tu n'a pas compris.
     
    • Utile Utile x 1
    #13
  14. Valfunde

    Valfunde Nouveau membre Membre

    Messages:
    11
    J'aime reçus:
    3
    Points:
    3
    Pseudo RP:
    Miguel
    Oui, je veux bien o_O Car j'arrive pas a voir comment je peux faire pour sa ..
     
    #14
  15. mignoti

    mignoti daiveulopeur scripte feau-d'heure Membre

    Messages:
    302
    J'aime reçus:
    35
    Points:
    88
    Pseudo RP:
    Renardo Serasa
    https://mega.nz/#!TRh2QAQI!rTfwspenGlv55w_PVPJGMvixi2GTsUz1xNmCbykXz-I

    J'ai modifié ton code en reprennant celui de base. Le miens prends beaucoup moins de place et est beaucoup plus optimisé :)

    Je te donne toutes les permissions par rapport au code; tu en fais ce que tu veut.
    (btw, j'ai juste modifié le code client. Et j'ai retiré la limite de "boutons")
     
    • Gagnant Gagnant x 1
    Dernière édition: 24 Juillet 2016
    #15
  16. Valfunde

    Valfunde Nouveau membre Membre

    Messages:
    11
    J'aime reçus:
    3
    Points:
    3
    Pseudo RP:
    Miguel
    Super ! Merci bien, je vais essayer de voir un peu comment tu a fait et le modifier :)
     
    #16
  17. Valfunde

    Valfunde Nouveau membre Membre

    Messages:
    11
    J'aime reçus:
    3
    Points:
    3
    Pseudo RP:
    Miguel
    Oui mais il a quand même un bug au dessus de 7 buttons, je vais essayer de comprendre pourquoi ^^
     
    #17
  18. mignoti

    mignoti daiveulopeur scripte feau-d'heure Membre

    Messages:
    302
    J'aime reçus:
    35
    Points:
    88
    Pseudo RP:
    Renardo Serasa
    Faut que tu joues sur la valeur de la mutliplication ( la valeur "h" ) je crois que si tu mets la base a 75 et que tu mets le truc a 84 normalement ca devrais marcher, non testé mais j'ai fais les calculs et c'est bon normalement.
     
    • J'aime J'aime x 1
    • Utile Utile x 1
    #18
Chargement...
Sujets similaires
  1. SkyNokK
    Réponses:
    0
    Affichages:
    109
  2. SadeX
    Réponses:
    5
    Affichages:
    238
  3. Paul Cohen
    Réponses:
    1
    Affichages:
    234
  4. Romain_RP
    Réponses:
    1
    Affichages:
    121
  5. Valfunde
    Réponses:
    0
    Affichages:
    114

Partager cette page