Apparition d'un fatal error sur la page batiment

Mars2010 Messages postés 4 Date d'inscription   Statut Membre Dernière intervention   -  
jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   -
bonjours, bonsoir j'ai un un se message : Fatal error: Call to undefined function bcmul() in /data/multiserv/users/1301085/projects/2722321/www/includes/functions/IsElementBuyable.php on line 53
qui et apparue sur la page bâtiment du jeux que j'ai crée j'utiliser notepade++ et nova X

merci pour toute aide

5 réponses

  1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 831
     
    Bonjour,

    La réponse de VlkPr3s est la bonne...
    Par contre si tu bloques pour trouver la réponse.. n'hésites pas à nous montrer ton code.

    NB : Merci de bien vouloir utiliser la coloration syntaxique (les balises de code) lorsque tu postes du code sur le forum.
    Explications disponibles ici :
    https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
    2
  2. VlkPr3s Messages postés 251 Statut Membre 130
     
    Ta fonction n'est pas définie en fait. Tu fais appel à une fonction qui n'existe pas et il n'est pas content.

    Soit elle est définis en local et donc tu ne peux y accéder ailleurs soit elle n'existe vraiment pas.
    1
    1. Mars2010
       
      comment puis-je faire pour le résoudre ?
      0
    2. ReDLoG Messages postés 393 Statut Membre 57
       
      Bonjour,
      >> comment puis-je faire pour le résoudre ?
      Soit la fonction bcmul() existe quelque part dans un fichier sur ton ordinateur (ou dans un dossier sur ton espace hébergement), soit il te reste à la créer, sachant qu'avant de la créer tu dois savoir ce que doit exécuter cette fonction, doit-elle retourner un booléen ou un résultat, à toi de savoir car d'après ton message initial, c'est toi qui a créé ce jeu!
      Cordialement.
      0
    3. Mars2010
       
      j'ai juste tenter de modifier le nom et la description des bâtiment c'est tous se que j'ai fait comme modification
      0
    4. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 831 > Mars2010
       
      Comme je te l'ai dit dans ma réponse précédente
      ... merci de nous montrer TON CODE.
      0
    5. Mars2010
       
       $cost[$ResType] = bcmul($pricelist[$Element][$ResType], bcpow($pricelist[$Element]['factor'], $level), 1);


      se serai cette ligne de code si je comprend bien l'érreur
      0
  3. Mars2010
     
     $cost = array();
    foreach ($array as $ResType) {
    if ($pricelist[$Element][$ResType] != 0) {
    if ($Incremental) {
    $cost[$ResType] = bcmul($pricelist[$Element][$ResType], bcpow($pricelist[$Element]['factor'], $level), 1);
    } else {
    $cost[$ResType] = $pricelist[$Element][$ResType];
    }

    if ($ForDestroy) {
    $cost[$ResType] = bcdiv($cost[$ResType], 2, 0);
    }

    if (bccomp($cost[$ResType], $CurrentPlanet[$ResType]) > 0) {
    return false;
    }
    }
    }
    return false;
    }


    voila le code après c'est tous je fichier
    0
    1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 831
       
      Donc... si c'est TOUT ton code ... je pense qu'il y a un souci ...
      A quel endroit est déclaré ta fonction bcmul() ?
      N'aurais-tu pas oublié un INCLUDE quelque part ?

      Ce code que tu viens de nous montrer .... il n'y a que ça dans ton fichier php ??
      Comment appelles tu cette page ?
      0
  4. Mars2010
     
    function IsElementBuyable ($CurrentUser, $CurrentPlanet, $Element, $Incremental = true, $ForDestroy = false) {
        global $pricelist, $resource;
    
        if (IsVacationMode($CurrentUser)) {
            return false;
        }
    
        if ($Incremental) {
            $level  = ($CurrentPlanet[$resource[$Element]]) ? $CurrentPlanet[$resource[$Element]] : $CurrentUser[$resource[$Element]];
        }
    
        $array = array(
            Legacies_Empire::RESOURCE_METAL,
            Legacies_Empire::RESOURCE_CRISTAL,
            Legacies_Empire::RESOURCE_DEUTERIUM,
            'energy_max'
            );
    
        $cost = array();
        foreach ($array as $ResType) {
            if ($pricelist[$Element][$ResType] != 0) {
                if ($Incremental) {
                    $cost[$ResType] = bcmul($pricelist[$Element][$ResType], bcpow($pricelist[$Element]['factor'], $level), 1);
                } else {
                    $cost[$ResType] = $pricelist[$Element][$ResType];
                }
    
                if ($ForDestroy) {
                    $cost[$ResType]  = bcdiv($cost[$ResType], 2, 0);
                }
    
                if (bccomp($cost[$ResType], $CurrentPlanet[$ResType]) > 0) {
                    return false;
                }
            }
        }
        return false;
    }
    


    c'est tous les ligne du fichier la
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 831
     
    Après quelques vérifications .. ton souci avec la fonction bcmul viendrait de la configuration de ton serveur....
    Il faut qu'il dispose de la librairie BCMath (et avoir été compilé avec) ...
    => https://www.php.net/manual/en/book.bc.php

    Seul les ADMINS de ton serveur pourront te renseigner et/ou te résoudre ce problème.

    A la limite.. pour contourner ce pb .. tu peux utiliser l'opérateur * pour faire tes multiplications....
    et la fonction pow (à la place de bcpow) pour les puissances :

    un truc du genre :
      $cost[$ResType] = ($pricelist[$Element][$ResType] *  pow($pricelist[$Element]['factor'], $level);
    

    0