Apparition d'un fatal error sur la page batiment

Fermé
Mars2010 Messages postés 4 Date d'inscription lundi 27 avril 2015 Statut Membre Dernière intervention 28 janvier 2022 - 27 avril 2015 à 15:05
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 - 10 juin 2015 à 22:26
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
A voir également:

5 réponses

jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650
27 avril 2015 à 16:24
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 vendredi 30 mai 2014 Statut Membre Dernière intervention 27 juin 2016 130
27 avril 2015 à 16:01
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
comment puis-je faire pour le résoudre ?
0
ReDLoG Messages postés 243 Date d'inscription mardi 12 mars 2013 Statut Membre Dernière intervention 28 octobre 2021 57
24 mai 2015 à 11:38
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
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 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650 > Mars2010
7 juin 2015 à 18:58
Comme je te l'ai dit dans ma réponse précédente
... merci de nous montrer TON CODE.
0
 $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
 $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 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650
10 juin 2015 à 15:02
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
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 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650
10 juin 2015 à 22:26
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