kleines PHP Problem

  • Hallo! Habe mal wieder ein kleines Problem und seh den Wald vor lauter Bäumen nicht !

    folgendes Problem, ich habe:

    php:
    function dwcostcopper_dohook($hookname,$args) {
    global $session;
    switch ($hookname) {
    case "dwellings-buy-valuecheck":
    $typeid= get_module_setting("typeid",$args['type']);
    $paidcopper = abs((int)httppost('paidcopper'));
    if ($paidcopper < 0) $paidcopper = 0;
    $allprefs=unserialize(get_module_pref('allprefs','metalmine'));
    $copperavailable = $allprefs['metal2'];
    if($copperavailable<$paidcopper){
    $args['allowpay']=0;
    blocknav("runmodule.php?module=dwellings&op=build&type=".$args['type']."&dwid=".$args['dwid']."");
    output("`nYou do not have that much copper.");
    }elseif($paidcopper>(get_module_objpref("dwellingtypes",$typeid,"coppercost")-get_module_objpref("dwellings",$args['dwid'],"copperspent"))){
    $args['allowpay']=0;
    blocknav("runmodule.php?module=dwellings&op=build&type=".$args['type']."&dwid=".$args['dwid']."");
    output("`nYou have tried to spend more copper than you need to.");
    }
    break;
    case "dwellings-buy-setup":
    $typeid= get_module_setting("typeid",$args['type']);
    $paidcopper = abs((int)httppost('paidcopper'));
    if ($paidcopper < 0) $paidcopper = 0;
    $copperspent=get_module_objpref("dwellings",$args['dwid'],"copperspent")+$paidcopper;
    set_module_objpref("dwellings",$args['dwid'],"copperspent",$copperspent);
    $allprefs=unserialize(get_module_pref('allprefs','metalmine'));
    $allprefs['metal2']=$allprefs['metal2']-$paidcopper;
    set_module_pref('allprefs',serialize($allprefs),'metalmine');
    if($copperspent<get_module_objpref("dwellingtypes",$typeid,"coppercost")){
    $args['finished']=0;
    }
    break;
    case "dwellings-pay-costs":
    $typeid=get_module_setting("typeid",$args['type']);
    $costcopper=get_module_objpref("dwellingtypes",$typeid,"coppercost") - get_module_objpref("dwellings",$args['dwid'],"copperspent");
    if($costcopper) output("`Q%s Grams of Copper`n`0",$costcopper);
    break;
    case "dwellings-pay-input":
    $typeid= get_module_setting("typeid",$args['type']);
    $costcopper=get_module_objpref("dwellingtypes",$typeid,"coppercost") - get_module_objpref("dwellings",$args['dwid'],"copperspent");
    $copper = translate_inline("Copper");
    if($costcopper) rawoutput("$copper: <input id='input' name='paidcopper' width=5><br>");
    break;
    }
    return $args;
    }
    php

    und so soll das ganze aussehen (statt gems halt mit copper):

    if ($gemspay > 0){
    if ($gemspay <= $session['user']['gems']){
    $paidgems = get_module_pref ("gemspaid");
    if (($paidgems + $gemspay) > get_module_setting ("gemcosts")){
    $gemspay = get_module_setting ("gemcosts") - $paidgems;
    }
    set_module_pref ("gemspaid", get_module_pref ("gemspaid") + $gemspay);
    $session['user']['gems'] -= $gemspay;
    output ("`3Du hast `%%s`3 Edelsteine eingezahlt!`n", $gemspay);
    }else{
    output ("`3Du hast doch gar nicht soviele Klunker!`n");
    }
    }


    was muss ich jetzt wo übernehmen, damit das auch mit copper funktioniert???
    denn gems werden aus einem extra feld in der Datenbank ausgelesen, das copper ist aber nur in den modul_prefs und ich habe schon stundenlang rumgebastelt, wie ich das ändern bzw. einbauen kann.


    Danke schonmal für Eure Hilfe!!

  • So einen unformatierten Quellcode sieht sich niemand an, poste den Kram mit entsprechenden BB-Code, also

    [ php ]Quellcode [ /php ] (ohne die Blanks bei den eckigen Klammern)


  • Ich versteh garnicht worums hier geht, sieht nach nem Browsergame aus. Da werden auch ein paar Funktionen benutzt, wo niemand genau weiss, was sie machen. Erklär das bitte mal, so blick ich da noch nich durch.

    Der, der weiß dass er nichts weiß, weiß mehr als der, der nicht weiß, dass er nichts weiß.

    Wer nach etwas fragt, geht grundsätzlich das Risiko ein, es auch zu bekommen!

  • In wievielen Foren hast du eigentlich diese Frage gestellt? Drei sind mir schon aufgefallen! :( Kopfschüttel :(

  • crossposting ist hier nicht gern gesehen, deswegen

    geschlossen