• 20 Avril 2019, 06:55:29


Auteur Sujet: Problème: Aucun gain après une victoire.  (Lu 3236 fois)

0 Membres et 1 Invité sur ce sujet

Hors ligne Slipknot

  • *
  • Nouveau
  • Messages: 21
    • Voir le profil
Problème: Aucun gain après une victoire.
« le: 21 Octobre 2013, 19:00:27 »
Bonjour,

Mon serveur à un petit soucis, lorsqu'un joueur gagne une map, il ne gagne pas d'argent.

Voici le script pour cette partie:

if getPlayerCount() >= 2 then
local cashToWin = moneyEarnPart*getPlayerCount()
if (tonumber(loadPlayerData(winner,"level")) >= 26) then
cashToWin = cashToWin*1.1
end
local playerCash = loadPlayerData(winner,"cash")
savePlayerData(winner,"cash",playerCash +cashToWin)
local playerCash = loadPlayerData(winner,"cash")
outputChatBox ("#0000ff* #FFFFFF" .. getPlayerName(winner) .." #FFFFFFhas won! He/She gets $" .. tostring(cashToWin) .."#0000ff!",getRootElement(),255,255,255,true)
return
else
outputChatBox("#0000ff* #FFFFFFNot enough players to earn money - #ABCDEF2 #FFFFFFrequired.",winner,255,255,255,true)
end
callClientFunction(winner,"deathReset")
callClientFunction(winner,"playWinSound")
local thePlayer = winner
local newAmount = cashToWin
totalMoneyEarnedAdd(thePlayer,cashToWin)
scoreboardRefresh(thePlayer)
refreshStats(thePlayer)
progressBarUpdate(thePlayer)
totalMoneyAchievements(thePlayer)
end)" alt="" class="bbc_img" />
J'ai revu le script, mais pour moi il n'y a aucun problème.
Merci.

-> Slip'k

Hors ligne Citizen

  • Scripteur LUA confirmé
  • *
  • Messages: 235
    • Voir le profil
    • Byston Evolution
Re : Problème: Aucun gain après une victoire.
« Réponse #1 le: 21 Octobre 2013, 21:16:39 »
Bonsoir Slipknot,
Alors déjà, je ne vois pas d'event nommé [...] sur le wiki de la ressource Race (en supposant que c'est ce GM que tu utilises) ce qui pourrait expliquer que ça ne fonctionne pas.
Pour être sûr que tu rentres dans ta fonction, ajoute un outputChatBox bidon au tout début de la fonction.

Sinon, en supposant que cet event existe et que tu rentres bien dans la fonction, jette un coups d'oeil à ces lignes.
Code: Lua
  1. local playerCash = loadPlayerData(winner,"cash")
  2. savePlayerData(winner,"cash",playerCash +cashToWin)
  3. local playerCash = loadPlayerData(winner,"cash")
Rien ne t'interpelles ? (Indice: playerCash)
Donc en effet, on n'a pas le droit de créer 2 variables portant le même nom dans le même scope.

Et normalement tu auras dû voir une belle erreur au démarrage de la ressource te signalant ce problème.
Si t'as pas eu d'erreur, vérifie que ton script est bien dans la meta.xml et que t'as redémarré la ressource (je sais ça peut paraître un oubli de débutant, mais ça arrive à tout le monde).

Supprime la 3ème ligne qui sert strictement à rien.

Après, si tu veux que l'argent soit mit à jour, faudrait ptetre enlever le return qui sert à rien à part empêcher le script d'atteindre les fonctions de mises à jour ...
Donc supprime le aussi et j'ai encore d'autres remarques:

Cette partie:
Code: Lua
  1. local thePlayer = winner
  2. [...]
  3. totalMoneyEarnedAdd(thePlayer,cashToWin)
  4. scoreboardRefresh(thePlayer)
  5. refreshStats(thePlayer)
  6. progressBarUpdate(thePlayer)
  7. totalMoneyAchievements(thePlayer)
Niveau optimisation, tu peux juste supprimer la 1ère ligne et utiliser winner au lieu de thePlayer dans les fonctions ...
Et tu devrais prendre toute cette partie et la mettre à l'intérieur du
Code: Lua
  1. if getPlayerCount() >= 2 then
  2.     [...]
  3. end
Car on est d'accord que ces fonctions ne servent que si quelqu'un à gagné.

A quoi sert cette variable ?
Code: Lua
  1. local newAmount = cashToWin
A rien on est d'accord, supprime la :)

Et par rapport à cette ligne:
Code: Lua
  1. callClientFunction(winner,"deathReset")
Je présume que c'est pour dire que le joueur n'est plus mort pour le prochain round mais du coups, faut le faire pour tout le monde, pas seulement le winner nan ?

Voilà c'est à peut prêt tout. Essaye ça et dit moi ce qu'il en est.

Cordialement,
Citizen
The rEvolution is coming ...

Hors ligne Slipknot

  • *
  • Nouveau
  • Messages: 21
    • Voir le profil
Re : Re : Problème: Aucun gain après une victoire.
« Réponse #2 le: 21 Octobre 2013, 21:56:23 »
Voici le message de démarrage:

[noae][/noae]

(Pour la première erreur "Problem with resource: play; Failed to link to freeroam", c'est normal j'avais supprimé le dossier freeroam par erreur).

-> Le script est bien dans le meta.xml

-> Troisième ligne supprimé. "function (winner)"

-> "return" supprimé

-> "Theplayer" remplacer par "winner"

-> "local thePlayer = winner" et "local newAmount = cashToWin" supprimé

Citer
Et par rapport à cette ligne:
Code: Lua
  1. callClientFunction(winner,"deathReset")
[/noae]
Je présume que c'est pour dire que le joueur n'est plus mort pour le prochain round mais du coups, faut le faire pour tout le monde, pas seulement le winner nan ?
J'ai pas compris.

------------------------------------------------------

Après avoir fait tout ça, j'ai redémarré le serveur est voila ce qu'il en est:
[noae][/noae]

-> Le panel joueur marche mais les stats ne s'affichent plus dans le scoreboard.
J'ai ça qui apparaît maintenant...:
[noae][/noae]

Le script après avoir fait tes modifications:

Code: Lua
  1. --------------
  2. -- Race winner
  3. --------------
  4.  
  5. addEvent("onPlayerDestructionDerbyWin",true)
  6. addEventHandler("onPlayerDestructionDerbyWin",getRootElement(),
  7.         if getPlayerCount() >= 2 then
  8.                 local cashToWin = moneyEarnPart*getPlayerCount()
  9.                 if (tonumber(loadPlayerData(winner,"level")) >= 26) then
  10.                         cashToWin = cashToWin*1.1
  11.                 end
  12.                 local playerCash = loadPlayerData(winner,"cash")
  13.                 savePlayerData(winner,"cash",playerCash +cashToWin)
  14.                 local playerCash = loadPlayerData(winner,"cash")
  15.                 outputChatBox ("#0000ff* #FFFFFF" .. getPlayerName(winner) .." #FFFFFFhas won! He/She gets $" .. tostring(cashToWin) .."#0000ff!",getRootElement(),255,255,255,true)
  16.         else
  17.                 outputChatBox("#0000ff* #FFFFFFNot enough players to earn money - #ABCDEF2 #FFFFFFrequired.",winner,255,255,255,true)
  18.         end
  19.         callClientFunction(winner,"deathReset")
  20.         callClientFunction(winner,"playWinSound")
  21.         totalMoneyEarnedAdd(winner,cashToWin)
  22.         scoreboardRefresh(winner)
  23.         refreshStats(winner)
  24.         progressBarUpdate(winner)
  25.         totalMoneyAchievements(winner)
  26. end)
[/noae]

Hors ligne Citizen

  • Scripteur LUA confirmé
  • *
  • Messages: 235
    • Voir le profil
    • Byston Evolution
Re : Problème: Aucun gain après une victoire.
« Réponse #3 le: 22 Octobre 2013, 01:38:59 »
Citer
-> Troisième ligne supprimé. "function (winner)"
nan ça fallait laissé, quand j'avais dit 3ème ligne, je sous-entendais la 3ème ligne du bout de code que je remet ici:
Code: Lua
  1. local playerCash = loadPlayerData(winner,"cash")
  2. savePlayerData(winner,"cash",playerCash +cashToWin)
  3. local playerCash = loadPlayerData(winner,"cash")

donc tu supprimes le 2ème <local playerCash = loadPlayerData(winner,"cash")>

Et j'avais aussi suggéré de déplacer ceci:
Code: Lua
  1. callClientFunction(winner,"deathReset")
  2. callClientFunction(winner,"playWinSound")
  3. totalMoneyEarnedAdd(winner,cashToWin)
  4. scoreboardRefresh(winner)
  5. refreshStats(winner)
  6. progressBarUpdate(winner)
  7. totalMoneyAchievements(winner)
à l'intérieur du if
là où y avait le return

Voilà, et désolé pour le temps de réponse.
Cordialement,
Citizen

EDIT: Ah et pour le
Code: Lua
  1. callClientFunction(winner,"deathReset")
J'aimerais savoir à quoi il sert. Car le nom de l'event me laisse croire à un event qui doit être appelé pour tout le monde afin que tout le monde soit, à nouveau, "vivant" afin de pouvoir jouer la map suivante. Mais je me trompe peut être. En tout cas tu l'appelles que pour le winner donc ça me laisse perplexe, dès que ta fonction marche, on se penchera dessus, ce n'est pas vraiment la priorité pour l'instant.
« Modifié: 22 Octobre 2013, 02:00:10 par Citizen »
The rEvolution is coming ...

Hors ligne Slipknot

  • *
  • Nouveau
  • Messages: 21
    • Voir le profil
Re : Problème: Aucun gain après une victoire.
« Réponse #4 le: 22 Octobre 2013, 02:10:16 »
Ok donc, les stats réapparaissent dans le scoreboard.

J'ai remodifié le script et le gagnant d'une map de gagne toujours rien, voici le script actuel:
Code: Lua
  1. --------------
  2. -- Race winner
  3. --------------
  4.  
  5. addEvent("onPlayerDestructionDerbyWin",true)
  6. addEventHandler("onPlayerDestructionDerbyWin",getRootElement(),
  7. function (winner)
  8.         if getPlayerCount() >= 2 then
  9.                 local cashToWin = moneyEarnPart*getPlayerCount()
  10.                 if (tonumber(loadPlayerData(winner,"level")) >= 26) then
  11.                         cashToWin = cashToWin*1.1
  12.                 end
  13.                 local playerCash = loadPlayerData(winner,"cash")
  14.                 savePlayerData(winner,"cash",playerCash +cashToWin)
  15.                 outputChatBox ("#0000ff* #FFFFFF" .. getPlayerName(winner) .." #FFFFFFhas won! He/She gets $" .. tostring(cashToWin) .."#0000ff!",getRootElement(),255,255,255,true)
  16.                 callClientFunction(winner,"deathReset")
  17.                 callClientFunction(winner,"playWinSound")
  18.                 totalMoneyEarnedAdd(winner,cashToWin)
  19.                 scoreboardRefresh(winner)
  20.                 refreshStats(winner)
  21.                 progressBarUpdate(winner)
  22.                 totalMoneyAchievements(winner)
  23.         else
  24.                 outputChatBox("#0000ff* #FFFFFFNot enough players to earn money - #ABCDEF2 #FFFFFFrequired.",winner,255,255,255,true)
  25.         end
  26. end)

Par contre, je reçois d'autres erreurs et je n'arrive pas à les régler, c'est sur le même fichier, ça pourrait peut-être être la cause du bug:

[2013-10-22 01:54:32] WARNING: [gamemodes]/[race]/[addons]/FOXpanel/main_server.lua:175: Bad argument @ 'setTimer' [Expected function at argument 1, got nil]
Code: Lua
  1. setTimer(outputDebug0000ffString,700,1,"Resource sucessfully started: PoD Script ")

[2013-10-22 01:54:32] WARNING: killmessages/killmessages_server.lua:80: Bad argument @ 'addEvent' [Expected bool at argument 2, got string 'wasted,killer,weapon']
Code: Lua
  1. addEvent ( "onPlayerKillMessage", "wasted,killer,weapon" )
  2. function eventTriggered ( source,killer,weapon,bodypart,suicide,usedVehicle )
  3.         local wr,wg,wb = getPlayerNametagColor  ( source )
  4.         if getPlayerTeam ( source ) then
  5.                 wr,wg,wb = getTeamColor ( getPlayerTeam ( source ) )
  6.         end

[2013-10-22 01:55:32] WARNING: [gamemodes]/[race]/[addons]/FOXpanel/main_server.lua:898: Bad argument @ 'getElementData' [Expected element at argument 1, got nil]
Code: Lua
  1. local ifSet = tonumber(getElementData(thePlayer,"everPurchasedNametagColor"))

Hors ligne Citizen

  • Scripteur LUA confirmé
  • *
  • Messages: 235
    • Voir le profil
    • Byston Evolution
Re : Problème: Aucun gain après une victoire.
« Réponse #5 le: 22 Octobre 2013, 02:50:21 »
Citer
le gagnant d'une map de gagne toujours rien
Hummm est-ce qu'il y a au moins le outputChatBox qui dit que bidule à gagné avec le montant de son gain ?
Car si y a bien le message, il doit certainement gagner de l'argent ou gagner 0 et dans ce cas y a un problème dans le calcul. Combien vaut moneyEarnPart ?
Sur quoi te bases tu pour dire qu'il ne gagne rien ? sur l'argent en haut à droite qui ne bouge pas ? c'est normal, par contre si moneyEarnPart à bien une valeur correcte, tu devrais voir la différence dans la scoreboard.

[2013-10-22 01:54:32] WARNING: [gamemodes]/[race]/[addons]/FOXpanel/main_server.lua:175: Bad argument @ 'setTimer' [Expected function at argument 1, got nil]
Code: Lua
  1. setTimer(outputDebug0000ffString,700,1,"Resource sucessfully started: PoD Script ")
Y a rien qui te choque dans le nom de la fonction que t'essaye de passer au setTimer ??
Code: Lua
  1. outputDebug0000ffString
Personnellement, je ne connais pas cette fonction. Par contre outputDebugString je connais XD
Mais ça ne peut pas être la cause de ton bug d'argent.

[2013-10-22 01:54:32] WARNING: killmessages/killmessages_server.lua:80: Bad argument @ 'addEvent' [Expected bool at argument 2, got string 'wasted,killer,weapon']
Code: Lua
  1. addEvent ( "onPlayerKillMessage", "wasted,killer,weapon" )
  2. function eventTriggered ( source,killer,weapon,bodypart,suicide,usedVehicle )
  3.         local wr,wg,wb = getPlayerNametagColor  ( source )
  4.         if getPlayerTeam ( source ) then
  5.                 wr,wg,wb = getTeamColor ( getPlayerTeam ( source ) )
  6.         end
Le deuxième argument d'un addEvent n'a jamais été un string (=texte) mais plutôt un booléen pour dire si cet event à le droit d'être appelé depuis l'autre côté (si le addEvent est du côté serveur, et si le 2ème argument est true, alors le code côté client aura la possibilité de l'appelé via un triggerServerEvent)
Donc essaye plutôt ça:
Code: Lua
  1. addEvent ( "onPlayerKillMessage", true )

[2013-10-22 01:55:32] WARNING: [gamemodes]/[race]/[addons]/FOXpanel/main_server.lua:898: Bad argument @ 'getElementData' [Expected element at argument 1, got nil]
là ça veut clairement dire que l'argument que tu lui as donné en tant que 1ère argument n'existe tout simplement pas. Donc thePlayer n'existe pas à l'endroit où tu l'appelles. Pour voir comment corriger ça, j'aurais besoin de plus de détails (la fonction entière si possible).

Je déplace aussi ce topic dans Scripting LUA

Cordialement,
Citizen
« Modifié: 22 Octobre 2013, 03:02:21 par Citizen »
The rEvolution is coming ...

Hors ligne Slipknot

  • *
  • Nouveau
  • Messages: 21
    • Voir le profil
Re : Problème: Aucun gain après une victoire.
« Réponse #6 le: 22 Octobre 2013, 03:14:27 »
Il n'y a pas d'argent "en haut à droite".
Il y a un panel joueur dans lequel on peut acheter des niveaux, réparations ect...
L'argent se gagne:
- en prenant le hunter à la fin de la map.
- en gagnant une map (bug actuel)
- en faisant le test de rapidité(un mot est donné et il faut l'écrire dans le chat)
- en pariant (bet)
-------------------------------------------------------------

Oui il y a le bidule qui dit que bidule à gagner le montant de son gain :tongue:
Code: Lua
  1. outputChatBox ("#0000ff* #FFFFFF" .. getPlayerName(winner) .." #FFFFFFhas won! He/She gets $" .. tostring(cashToWin) .."#0000ff!",getRootElement(),255,255,255,true)
  2.         else
  3.                 outputChatBox("#0000ff* #FFFFFFNot enough players to earn money - #ABCDEF2 #FFFFFFrequired.",winner,255,255,255,true)
  4.         end
  5.         callClientFunction(winner,"deathReset")
  6.         callClientFunction(winner,"playWinSound")
  7.         totalMoneyEarnedAdd(winner,cashToWin)
  8.         scoreboardRefresh(winner)
  9.         refreshStats(winner)
  10.         progressBarUpdate(winner)
  11.         totalMoneyAchievements(winner)
  12. end)
(il est dans le script que je t'ai donné dans la réponse précédante.)
-------------------------------------------------------------------------

Pour le MoneyEarnPart, je viens de regardé à nouveau le script que je t'ai donné précédament, il n'y a pas de "somme", ce n'est pas ça la cause du problème ?
-> Soit le joueur gagne une somme d'argent en fonction du nombre de joueurs connecté.
-> Soit il gagne une somme fixe. (En gros, peut-importe le nombre de joueurs connecté, il gagnera toujours 500$[par exemple])
--------------------------------------------------------------------------

Pour cette erreur:

Voila la fonction:
Code: Lua
  1. function setNametagColor(thePlayer)
  2.         local ifSet = tonumber(getElementData(thePlayer,"everPurchasedNametagColor"))
  3.         if ifSet == 1 then
  4.                 local useColor = loadPlayerData(thePlayer,"useCustomNametag")
  5.                 if useColor == "true" then
  6.                         local r = tonumber(loadPlayerData(thePlayer,"nametagRed"))
  7.                         local g = tonumber(loadPlayerData(thePlayer,"nametagGreen"))
  8.                         local b = tonumber(loadPlayerData(thePlayer,"nametagBlue"))
  9.                         callClientFunction(thePlayer,"setCustomNametagColor",true,r,g,b)
  10.                 end
  11.         end
  12. end

Hors ligne Citizen

  • Scripteur LUA confirmé
  • *
  • Messages: 235
    • Voir le profil
    • Byston Evolution
Re : Problème: Aucun gain après une victoire.
« Réponse #7 le: 22 Octobre 2013, 11:09:47 »
Alors si c'est sur le panel que l'argent ne se met pas à jour, c'est toi qui doit faire en sorte de mettre à jour sa valeur.
Je ne sais pas comment ton panel est créé, ni comment il récupère l'argent du joueur etc.
Mais je pense qu'il serait pertinent de modifier la fonction totalMoneyEarnedAdd de façon à mettre à jour le panel.

MoneyEarnPart doit surement être déclarée dans ton script, à l’extérieur d'une fonction. Et je dirai qu'il est tout en haut de ton script avec les autres variables. En général c'est comme ça que ça marche si on ne passe pas par des fichiers de conf.
Mais si tu dis que le message de victoire s'affiche bien avec un montant logique, alors il n'y a pas besoin de s'attarder dessus.

Pour ton erreur sur le setNametagColor. Elle dit que thePlayer vaut nil. Donc il te faut trouver l'endroit où cette fonction est appelée avec une variable qui, elle même, vaut nil. Ou alors carrément appelée sans argument: setNametagColor().
Ce que je te conseil donc de faire c'est de placer un outputDebugString (pas de outputChatBox car si c'est appelé à la connexion, c'est pas sûr qu'il s'affiche) :
Exemple:
Je lance une recherche et je trouve un 1er setNametagColor à la ligne 220:
Code: Lua
  1. setNametagColor( player )
Je rajoute mon petit outputDebugString avec la variable utilisée dans le setNametagColor ainsi que le numéro de la ligne dans le script:
Code: Lua
  1. outputDebugString( "Ligne 220: "..tostring( player ) )
  2. setNametagColor( player )
et je répète l'opération sur tous les autres setNametagColor que je peux trouver.

Après tu relances, tu essayes et dès que tu vois un "Ligne X: nil" dans la console, tu l'auras trouvé ! :)
Suffit d'aller à la ligne X et d'essayer de comprendre. Peut être que le nom de la variable que tu (ou qqu'un d'autre) voulais passer n'est pas bon (oubli d'une majuscule etc).

Si tu as réussi à trouver la ligne du setNametagColor foireux, mais que tu ne comprends pas pourquoi la variable vaut nil, prends le soin de me donner le plus de code en ammont possible (comme tu faisais en me donnant la fonction entière).

J'attends le résultat de ton investigation. :D

Cordialement,
Citizen
The rEvolution is coming ...

Hors ligne Slipknot

  • *
  • Nouveau
  • Messages: 21
    • Voir le profil
Re : Problème: Aucun gain après une victoire.
« Réponse #8 le: 22 Octobre 2013, 14:16:25 »
Le panel, le scoreboard se met à jours lorsqu'on fini 2ème, 3ème, 4ème, 5ème... (ect)
Quand on gagne le test de réaction, un pari...
Mais quand le joueur gagne une map:
ex: Citizen won the map !
Normalement, il devrait y avoir ce message:
* Citizen has won! He/She gets $500 !
(normalement il y a les couleurs).

Alors que la il n'y a aucuns messages, aucuns changement d'argent dans les stats et le scorebaord:


Concernant le bug du "getelement", je pense qu'il est régler, je ne reçois plus de message d'erreur au démarrage.

Il nous reste juste ce bug "assez important" du gain après une victoire.

(PS: normalement tu as reçu un MP avec le panel)
« Modifié: 22 Octobre 2013, 15:25:43 par Slipknot »

Hors ligne Citizen

  • Scripteur LUA confirmé
  • *
  • Messages: 235
    • Voir le profil
    • Byston Evolution
Re : Problème: Aucun gain après une victoire.
« Réponse #9 le: 22 Octobre 2013, 14:30:45 »
Citer
Normalement, il devrait y avoir ce message:
* Citizen has won! He/She gets $500 !

Alors que la il n'y a aucuns messages
tu m'avais dit que ça fonctionnait ! :wacko:
Je cite ...
Citation de: Citizen
Hummm est-ce qu'il y a au moins le outputChatBox qui dit que bidule à gagné avec le montant de son gain ?
Citation de: Slipknot
Oui il y a le bidule qui dit que bidule à gagner le montant de son gain :tongue:
Faudrait éviter de me donner de fausses informations. Là c'est plus grave car on revient en arrière.

Je t'avais aussi demandé de faire ceci:
Citation de: Citizen
Pour être sûr que tu rentres dans ta fonction, ajoute un outputChatBox bidon au tout début de la fonction.
Fait le et si ce message passe pas, c'est que t'as inventé cet évent. Tu l'as trouvé où ce onPlayerDestructionDerbyWin ?
Si c'est un event de chez vous, peux-tu me coller la fonction qui se charge de trigger/lancer cet event.

Pour ton/votre panel, je ne peux regarder que ce soir.
The rEvolution is coming ...

Hors ligne Slipknot

  • *
  • Nouveau
  • Messages: 21
    • Voir le profil
Re : Problème: Aucun gain après une victoire.
« Réponse #10 le: 22 Octobre 2013, 17:05:07 »
Je pensais que tu me demandais si il était présent dans le script.
Le 
Code: Lua
  1.  outputChatBox("#0000ff* #FFFFFFNot enough players to earn money - #ABCDEF2 #FFFFFFrequired.",winner,255,255,255,true)
marche très bien.
Pourquoi le
Code: Lua
  1. outputChatBox ("#0000ff* #FFFFFF" .. getPlayerName(winner) .." #FFFFFFhas won! He/She gets $" .. tostring(cashToWin) .."#0000ff!",getRootElement(),255,255,255,true)
ne marcherait pas ?

-> Je te laisse regarder le script dans le .zip que je t'ai envoyé.
       

Hors ligne Citizen

  • Scripteur LUA confirmé
  • *
  • Messages: 235
    • Voir le profil
    • Byston Evolution
Re : Problème: Aucun gain après une victoire.
« Réponse #11 le: 22 Octobre 2013, 17:24:02 »
Hummm je ne te pensais pas aussi débutant (ce n'est pas une remarque désobligeante  :rolleyes:).
Tu as le if qui vérifie si le nombre de joueur présent sur le serveur est supérieur ou égal à 2.
    Si c'est le cas, on fait toutes les instructions qui sont dans le if.
Sinon
   On affiche un message disant qu'il n'y a pas assez de joueur (pour gagner de l'argent)

Code: Lua
  1. if getPlayerCount() >= 2 then -- si le nbr de joueur est supérieur ou égal à 2
  2.     -- Lui faire gagner de l'argent
  3. else -- Sinon
  4.     -- Lui dire qu'il ne peut pas gagner d'argent car il est tout seul sur le serveur.
  5. end

En revanche, je vois que t'es motivé, c'est bien continu comme ça, mais voit d'abord les bases comme:
- les conditions "if .. then .. else ... end"
- les opérateurs logiques principaux: "and", "or" et "not"
- les boucles "while", "for" et "do while"
- les fonctions avec les return
- les tableaux.

Pour ton test, modifie la condition pour que ça marche en étant tout seul.
Indice: Fait en sorte que la condition soit équivalent en français à "Si le nombre de joueur est supérieur ou égal à 1 alors"
The rEvolution is coming ...

Hors ligne Slipknot

  • *
  • Nouveau
  • Messages: 21
    • Voir le profil
Re : Problème: Aucun gain après une victoire.
« Réponse #12 le: 22 Octobre 2013, 19:35:24 »
J'ai donc changer le player count à 1, mais ça ne change absolument rien.
Le gagnant d'une map ne gagne toujours rien.

(ps: as-tu jeté un œil au script ?)

Alors, j'ai un autre soucis, je ne sais pas pourquoi, il vient de faire son apparition :ohmy:


Le toptimes sur un serveur race:dm est très important et c'est embêtant...
J'ai regardé le fichier meta.xml de mon fichier race.zip et le race_toptimes est bien présent dans le fichier...
Code: Lua
  1. setting name="#addons" value="race_toptimes, race_traffic_sensor"
  2.                                         accept="*"
  3.                                         desc="List of race addon resources to load automatically"
  4.                                         />


ps2: je suis en train de mettre l'ancien toptimes et l'ancien panel pour voir si ça change quelque chose.
J'ai peut-être fais une mauvaise manipulation.
---------------------------------------------------------------------------------

Les bugs indiqué si dessus viennent d'être fixé.
Pour le gain de sous après une victoire, je vous tiens au courant dans les prochaines minutes
« Modifié: 22 Octobre 2013, 20:00:53 par Slipknot »

Hors ligne Slipknot

  • *
  • Nouveau
  • Messages: 21
    • Voir le profil
Re : Problème: Aucun gain après une victoire.
« Réponse #13 le: 23 Octobre 2013, 13:00:38 »
(excusez moi pour le double post.)

-> Tu as raison, les victoires "won map: X", ne se mettent pas à jour dans le panel.
Et il n'y a toujours aucuns messages de victoire.

Hors ligne Citizen

  • Scripteur LUA confirmé
  • *
  • Messages: 235
    • Voir le profil
    • Byston Evolution
Re : Re : Problème: Aucun gain après une victoire.
« Réponse #14 le: 23 Octobre 2013, 13:23:53 »
-> Tu as raison, les victoires "won map: X", ne se mettent pas à jour dans le panel.
Je ne me souviens pas avoir dit ça Oo

Et il n'y a toujours aucuns messages de victoire.
Mais est-ce que le message:
Code: Lua
  1. outputChatBox("#0000ff* #FFFFFFNot enough players to earn money - #ABCDEF2 #FFFFFFrequired.",winner,255,255,255,true)
apparaît à la place du
Code: Lua
  1. outputChatBox ("#0000ff* #FFFFFF" .. getPlayerName(winner) .." #FFFFFFhas won! He/She gets $" .. tostring(cashToWin) .."#0000ff!",getRootElement(),255,255,255,true)
? Ou alors j'ai pas compris ?

Est-ce que tu peux me dire exactement ce qu'il s'affiche à l'écran plutôt que de dire que tel truc ne marche pas ?
Ça m'aiderai à comprendre par où passe le code.

Bon du coups, comme j'ai l'impression de revenir en arrière dans le troubleshooting, essaye tout simplement ça:

Code: Lua
  1. addEventHandler("onPlayerDestructionDerbyWin",getRootElement(),
  2. function (winner)
  3.         if getPlayerCount() >= 1 then
  4.                 outputChatBox ("#0000ff* #FFFFFF" .. getPlayerName(winner) .." #FFFFFFhas won!",getRootElement(),255,255,255,true)
  5.         else
  6.                 outputChatBox("#0000ff* #FFFFFFNot enough players to earn money - #ABCDEF2 #FFFFFFrequired.",winner,255,255,255,true)
  7.         end
  8. end)
Et dit moi lequel de ces 2 messages s'affiche.



EDIT: Bon j'ai regardé rapidement (je suis en stage) et il me faudrait votre destructionderby.lua qui se trouve dans la ressource race: [gamemodes]/[race]/race/modes
Parce que je viens de regarder la dernière version du gamemode race et l'évent s'appelle onPlayerWinDD et non pas onPlayerDestructionDerbyWin.
Donc j'ai besoin de voir à quoi ressemble le votre.
« Modifié: 23 Octobre 2013, 16:24:15 par Citizen »
The rEvolution is coming ...