Beiträge von Kaliber

    -Ein Objekt erzeugen


    Naja so z.B.


    #define PreloadAnim(%0,%1) ApplyAnimation(%0,%1,"null",0.0,0,0,0,0,0)


    //Unter OnPlayerRequestClass
    PreloadAnim(playerid,"BOMBER");


    ocmd:legeBombe(playerid)
    {
    new Float:p[3];
    GetPlayerPos(playerid,p[0],p[1],p[2]);
    CreateObject(1252,p[0],p[1],p[2]-0.5,0,0,0);
    ApplyAnimation(playerid,"BOMBER","BOM_PLANT_LOOP",4.0,0,0,0,0,1);
    return 1;
    }


    mfg. :thumbup:

    Nun als erstes, schreib es einfach mal so:


    case DIALOG_FRAKBANK_EINZAHLEN:
    {
    if(response == 0) return ShowPlayerDialog(playerid,DIALOG_FRAKBANK,DIALOG_STYLE_LIST,"Fraktionsbank","Ausrüsten\nEinzahlen\nAuszahlen\nMaterial\nDrogen","Weiter","Abbruch");
    new cmd = strval(inputtext),string[350],frakid = Spieler[playerid][pFraktion];
    if((Spieler[playerid][pGeld] - cmd) < 0) return SendClientMessage(playerid,ROT,"Du hast nicht genug Geld!");
    if(!IsNumeric(inputtext)){
    format(string,sizeof(string),"Gebe bitte nun den Betrag ein, welchen du in die Fraktionkasse einzahlen möchtest!\nDerzeitiger Fraktionskassen Stand: %i$",FrakInfo[frakid][frakgeld]);
    ShowPlayerDialog(playerid,DIALOG_FRAKBANK_EINZAHLEN,DIALOG_STYLE_INPUT,"Fraktionsbank Einzahlung",string,"Weiter","Abbruch");
    return SendClientMessage(playerid,ROT,"Es sind nur Zahlen möglich!");
    }
    if(cmd < 1 || cmd > 10000) {
    format(string,sizeof(string),"Gebe bitte nun den Betrag ein, welchen du in die Fraktionkasse einzahlen möchtest!\nDerzeitiger Fraktionskassen Stand: %i$",FrakInfo[frakid][frakgeld]);
    ShowPlayerDialog(playerid,DIALOG_FRAKBANK_EINZAHLEN,DIALOG_STYLE_INPUT,"Fraktionsbank Einzahlung",string,"Weiter","Abbruch");
    return SendClientMessage(playerid,ROT,"Betrag nur zwischen 1 und 10.000$ möglich!");
    }
    FrakInfo[frakid][frakgeld] += cmd,ACMoney(playerid, -cmd);
    format(string,sizeof(string),""#HTML_WHITE"[ "#HTML_LOGIN"FrakBank: "#HTML_WHITE"Das Mitglied "#HTML_ORANGE"%s "#HTML_WHITE"hat so eben "#HTML_GREEN"%i$ "#HTML_WHITE"in der Fraktionkasse eingezahlt! "#HTML_WHITE"Neuer Stand: "#HTML_ORANGE"%i$ ]",SpielerName(playerid),cmd,FrakInfo[frakid][frakgeld]);
    FraktionsChat(Spieler[playerid][pFraktion],WEISS,string);


    format(string,sizeof(string),"INSERT INTO "#DATENBANK"_frakgeldlog (`fID`,`name`,`count`,`timestamp`,`op`) VALUES ('%d','%s','%d','%d','1')",frakid,SpielerName(playerid),cmd,gettime());
    mysql_function_query(MYSQLVerbindung,string,false,"","");
    ShowPlayerDialog(playerid,DIALOG_FRAKBANK,DIALOG_STYLE_LIST,"Fraktionsbank","Ausrüsten\nEinzahlen\nAuszahlen\nMaterial\nDrogen","Weiter","Abbruch");
    return true;
    }
    }
    return true;


    Probier das mal so aus, sollte es nicht klappen, mach es einfach so:


    frakid = Spieler[playerid][pFraktion]+1;


    mfg. :thumbup:

    Ja, das kannst du z.B. so machen:


    enum SpielerEnum //Das hast du bestimmt schon
    {
    pPremium, //Das da einfach reinmachen und abspeichern
    };



    //Da wo du Premium vergibst:
    new tage,pID;
    if(sscanf(params,"ud",pID,tage)) return...;
    SpielerInfo[pID][pPremium] = gettime()+60*60*24*tage; //28,30,31 Tage wäre z.B. 1 Monat


    //Dann da wo du deinen Account Laden lässt:
    if(gettime() > SpielerInfo[playerid][pPremium] && SpielerInfo[playerid][pPremium] != 0)
    {
    SpielerInfo[playerid][pPremium] = 0;
    SCM(playerid,-1,"Dein Premium Account ist ausgelaufen!");
    }


    Ich hoffe du hast den Ansatz so grob verstanden :)


    mfg. :thumbup:


    //Edit: Rechtschreibfehler

    Ich habe bereits alles versucht, aber die werden einfach nicht geladen. An was könnte das liegen???


    Nun, mach mal evtl einen print-Debug (evtl sind die Koordinaten alle auf 0)...


    Wenn da gar nichts aufgerufen wird, hau mal das crashdetect Plugin rein, vielleicht hast du einen Run Time Error...


    Oder dieser Codeblock wird gar nicht erst aufgerufen :)


    mfg. :thumbup:

    Ich hoffe ihr könnt helfen... :/


    Hier mal ganz grob:


    enum e_Eis {
    e_Preis,
    e_ID
    };
    new eis_verkauf[MAX_PLAYERS][e_Eis];


    #define Eis_Reset(%0) eis_verkauf[%0][e_ID]=-1


    //Unter OnPlayerConnect
    eis_verkauf[playerid][e_ID] = -1;


    //gebeeis
    new pID,preis;
    if(sscanf(params,"ud",pID,preis)) return Verwendung /gebeeis [ID][Preis];
    if(!IsPlayerConnected(pID)) return SCM(playerid,-1,"Spieler nicht connected!");
    if(!InRange(playerid,pID,15.0)) return SCM(playerid,-1,"Dieser Spieler ist nicht in deiner Nähe!");
    eis_verkauf[pID][e_Preis] = preis;
    eis_verkauf[pID][e_ID] = playerid;


    //eisannehmen
    if(eis_verkauf[playerid][e_ID] == -1) return SCM(playerid,-1,"Dir hat niemand ein Eis angeboten!");
    if(GetPlayerMoney(playerid) < eis_verkauf[playerid][e_Preis]) return SCM(playerid,-1,"Nicht genug Geld!");
    if(!InRange(playerid,eis_verkauf[playerid][e_ID],15.0)) //Impliziert !IsPlayerConnected
    {
    SCM(playerid,-1,"Der Verkäufer ist nicht in deiner Nähe!");
    return Eis_Reset(playerid);
    }
    GivePlayerMoney(playerid, -eis_verkauf[playerid][e_Preis]);
    //Gib ihm hier ein Eis
    //Nachricht senden...
    Eis_Reset(playerid);
    return 1;


    //Edit: Hier noch die InRange Funktion
    stock InRange(playerid,pID,Float:x) {
    new Float:p[3];
    GetPlayerPos(pID,p[0],p[1],p[2]);
    return IsPlayerInRangeOfPoint(playerid,x,p[0],p[1],p[2]);
    }


    mfg. :thumbup:

    Run time error 4: "Array index out of bounds"


    Genau das dachte ich mir ^^


    Da hast du deinen Fehler, jetzt mach einen print-Debug in der PayDay Funktion bzw evtl weißt du ja, welches Array exakt 16 cells hat...und such dir da den Fehler :)


    Nur zur Verdeutlichung, der Fehler wird durch folgendes verursacht:


    new test[16];
    test[17] = 5; //Hier ist der Fehler


    mfg. :thumbup:

    Der PayDay wird garnicht nach den 60min aufgerufen...


    Dann verwendest du nicht unseren Code...oder es kommt zu einem Run Time Error...(benutzte mal das crashdetect Plugin).


    Den Timer hast du auch nur auf einer Minute gestellt, das weißt du schon oder?


    Ist ja auch richtig...weil pro Minute ++..und 60 Minuten = 1ne Stunde :D


    mfg. :thumbup: