Bonjour Wayken,
Alors pour commencer, il te faut créer une autre ressource dans laquelle tu vas ajouter toutes tes modifications et qui devra être lancée en même temps que le GM.
- Gagner de l'argent pour le dernier survivant
C'est plutôt simple, il suffit d'utiliser l'event
"onPlayerWinDD" qui est déclenché lorsque quelqu'un gagne une map de type
Destruction Derby et qui à pour source, le dernier joueur en vie (le gagnant).
addEvent("onPlayerWinDD", true)
function giveMoneyForWinner()
local theWinner = source --source est une variable "cachée" qui vient avec les events
local money = 500 --tu peux changer comme bon te semble
givePlayerMoney(theWinner, money) -- on lui donne son argent (ça changera l'affichage de l'argent en haut à droite de GTA)
--Lorsqu'on ajoute une colonne perso à la scoreboard, cette dernière va
-- chercher la valeur à afficher via un getElementData sur le joueur dont il
-- veut afficher les infos. Donc on est obliger de faire un setElementData pour l'argent
setElementData(theWinner, "money", money)
-- Bien sûr lorsqu'on dira à la scoreboard de rajouter une colonne, on lui donnera le nom de
-- l'element data qui "garde" la valeur. Ici ça sera "money" si on rajoute la colonne money
end
addEventHandler("onPlayerWinDD", root, giveMoneyForWinner)
- Gagner de l'argent lors d'un top time et celui si s'affichent
C'est aussi simple que le précédent. La ressource
race_toptimes qui vient avec le GM ajoute un nouvel event qui se nomme
"onPlayerToptimeImprovement" qui se déclenche lorsque quelqu'un améliore son propre record.
"Mais heuuu je veux lui donner de l'argent que lorsqu'il établit un nouveau record par rapport à tous les autres joueurs."
Oui pas de soucis, cet event nous donne aussi en 2ème paramètre la nouvelle position de son record perso. Si la nouvelle position est 1, ça veut dire que son record est en 1ère position de tous les autres records.
addEvent("onPlayerToptimeImprovement", true)
function giveMoneyForTopTime(thePlayer, newPos)
if newPos == 1 then --si c'est un nouveau record global
local money = 1000 --tu peux changer comme bon te semble
givePlayerMoney(thePlayer, money) --pas besoin de réexpliquer
setElementData(thePlayer, "money", money) --et ça non plus
end
end
addEventHandler("onPlayerToptimeImprovement", root, giveMoneyForTopTime)
- Régler le Scoreboard car il n'y a que ( 'FPS ' 'States' 'Country' ' Name' )
Là par contre c'est un peu plus compliqué car on va devoir appeler une fonction d'une autre ressource.
Il est possible pour une ressource d'exposer une ou plusieurs de ses fonctions afin que d'autres ressources les utilisent (voir le tag <export /> de
cette page)
La ressource
scoreboard exporte cette fonction:
scoreboardAddColumn( name, forElement, width, friendlyName, priority )
Arguments:
- name - le nom de l'element data ou sera stocké la valeur pour un joueur (ex: "money")
- forElement - (optionel) pour qui seulement doit fonctionner la colonne. (Je ne suis pas sûr) (par défaut: tout le monde)
- width - (optionel) la largeur en pixel de cette colonne (par défaut: 70)
- friendlyName - (optionel) le nom de la colonne à afficher en haut de la scoreboard (par défaut: le même que le 1er argument)
- priority - (optionel) (J'ai pas du tout compris à quoi il servait :D)
Voilà un exemple pour ajouter une colonne dans laquelle sera afficher l'argent de chaque joueur:
function addCustomColumns()
exports.scoreboard:scoreboardAddColumn("money", root, 100, "Money")
end
addEventHandler("onResourceStart", resourceRoot, addCustomColumns)
- Régler l'userpanels
Là va falloir détailler parce que c'est beaucoup trop vague.
Cordialement,
Citizen