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 38486 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

jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
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
VlkPr3s Messages postés 235 Date d'inscription   Statut Membre Dernière intervention   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
Mars2010
 
comment puis-je faire pour le résoudre ?
0
ReDLoG Messages postés 243 Date d'inscription   Statut Membre Dernière intervention   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
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
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752 > Mars2010
 
Comme je te l'ai dit dans ma réponse précédente
... merci de nous montrer TON CODE.
0
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
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
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
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
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
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