Beiträge von Kaliber

    Immer diese GF Schreibweise...Bitte noch mehr Klammern und mehr Zeilen Code...man kann es auch einfach so schreiben:


    if(!strcmp("/muell", cmdtext, true)) {
    if(PlayerInfo[playerid][pJob] != 2) return SendClientMessage(playerid,Rot,"Du bist kein muelfahrer");
    if(Muellmann[playerid][pmi_bAktiv]) return SendClientMessage(playerid, Rot, "Es laeuft schon eine Mission!");
    if(GetVehicleModel(GetPlayerVehicleID(playerid)) != 408) return SendClientMessage(playerid, Rot, "Du bist nicht im Muellwagen!");
    Muellmann[playerid][pmi_Checkpoint]=0,Muellmann[playerid][pmi_bAktiv]=true;
    SendClientMessage(playerid, Neongruen, "Muellabfuhr gestartet, fahre nun zu den einzelnen Haeusern!");
    SetPlayerCheckpoint(playerid,Muellabfuhr_Stationen[0][M_fX],Muellabfuhr_Stationen[0][M_fY],Muellabfuhr_Stationen[0][M_fZ],Muellabfuhr_Stationen[0][M_fRad]);
    return 1;
    }


    mfg. :thumbup:

    Mal als kleinen Verbesserungsvorschlag dieser Code:


    ocmd:admins(playerid,params[]) {
    new name[MAX_PLAYER_NAME],string[24 + MAX_PLAYER_NAME];
    for(new i,l=GetMaxPlayers();i<l;i++) {
    if(!IsPlayerConnected(i)) continue;
    GetPlayerName(i,name,MAX_PLAYER_NAME);
    switch(GetPVarInt(i,"Adminlevel")) { //evtl anpassen
    case 0: continue;
    case 1: format(string,sizeof(string),"Testsupporter: %s",name);
    case 2: format(string,sizeof(string),"Supporter: %s",name);
    case 3: format(string,sizeof(string),"ProSUP: %s",name);
    case 4: format(string,sizeof(string),"Moderator: %s",name);
    case 5: format(string,sizeof(string),"SupMOD: %s",name);
    case 6: format(string,sizeof(string),"ProMOD: %s",name);
    case 7: format(string,sizeof(string),"High Moderator: %s",name);
    case 8: format(string,sizeof(string),"Admin: %s",name);
    case 9: format(string,sizeof(string),"ProADM: %s",name);
    case 10: format(string,sizeof(string),"High Admin: %s",name);
    case 11: format(string,sizeof(string),"Stellv. Projektleiter: %s",name);
    case 12: format(string,sizeof(string),"Projektleiter: %s",name);
    }
    SendClientMessage(playerid,COLOR_GRAD1,string);
    }
    return 1;
    }


    PS: Achtet besonders auf die Schleife und die Deklaration der Variablen ;)


    mfg. :thumbup:

    Dann sag mir mal bitte welche Funktion das sein soll. Welchen sinn würde das auch ergeben? Erst ist das normale Objekt da und dann verwandelt sich das wie ein Transformer in ein anderes? Nenn mir mal bitte diese Funktion.


    So eine Funktion gibt es auch nicht ^^

    Ja mehr als genaug, zuviele unnötige klammern..


    Das stimmt schon mal, aber man kann noch mehr verbessern:


    if(!strcmp(cmd, "/pay", true)){
    new string[128];
    tmp = strtok(cmdtext, idx);
    if(!tmp[0])return SendClientMessage(playerid, 0xFF00C3FF, "NUTZUNG: /pay [Spieler ID / Name] [betrag]");
    giveplayerid = strval(tmp),tmp = strtok(cmdtext, idx);
    if(!tmp[0]) return SendClientMessage(playerid, 0xFF00C3FF, "NUTZUNG: /pay [Spieler ID / Name] [betrag]");
    moneys = strval(tmp);
    if(moneys > 1000 && PlayerInfo[playerid][pLevel] < 1)return SendClientMessage(playerid, 0xFF00C3FF, "Du musst mindestens Level 3 sein, um über $1000 abgeben zu können.");
    if(moneys < 1 || moneys > 99999)return SendClientMessage(playerid, 0xFF00C3FF, "Der Betrag muss zwischen $1 und $99999 sein!");
    if(!IsPlayerConnected(giveplayerid)) return SendClientMessage(playerid, 0xFF00C3FF, "Ein Spieler mit dieser ID ist nicht online!");
    if(!ProxDetectorS(5.0, playerid, giveplayerid)) return SendClientMessage(playerid, 0xFF00C3FF, "Du musst näher an dem Spieler sein!");
    GetPlayerName(giveplayerid,giveplayer,MAX_PLAYER_NAME),GetPlayerName(playerid,sendername,MAX_PLAYER_NAME),playermoney = GetPlayerMoney(playerid);
    if(playermoney < moneys) return SendClientMessage(playerid, 0xFF00C3FF, "Du besitzt nicht genug Geld.");
    ConsumingMoney[giveplayerid] = 1,GivePlayerMoney(playerid,-moneys),GivePlayerMoney(giveplayerid, moneys);
    format(string, sizeof(string), " Du hast %s(Spieler ID: %d), $%d auf die Hand gegeben.", giveplayer,giveplayerid, moneys);
    PlayerPlaySound(playerid, 1052, 0.0, 0.0, 0.0),SendClientMessage(playerid, COLOR_GRAD1, string);
    format(string, sizeof(string), " Du hast $%d von %s(Spieler ID: %d) auf die Hand gegeben.", moneys, sendername, playerid);
    SendClientMessage(giveplayerid, COLOR_GRAD1, string);
    format(string, sizeof(string), "%s hat $%d dem Spieler %s auf die Hand gegeben.", sendername, moneys, giveplayer);
    PayLog(string),PlayerPlaySound(giveplayerid, 1052, 0.0, 0.0, 0.0);
    if(moneys >= 1000000)return ABroadCast(COLOR_YELLOW,string,1);
    format(string, sizeof(string), "* %s nimmt etwas Geld aus seiner Tasche und gibt es %s.", sendername ,giveplayer);
    ProxDetector(30.0, playerid, string, 0xFF00C3FF,0xFF00C3FF,0xFF00C3FF,0xFF00C3FF,0xFF00C3FF);
    return 1;
    }


    Zudem ist strtok so wie es im GF verwendet wird, scheiße :S


    mfg. :thumbup:

    Ja toll, warum soll ich die Include nutzen wenn ich mir den Name doch da sowieso schon hole ? ..
    Kann ich auch als Parameter einfach Name eintragen ..


    ...wie gesagt, les dir meinen Beitrag doch durch den ich auf BlackAce seine Antwort geschrieben habe :rolleyes:

    Kaliber, in der Zeile 'if(rows)', wo soll ich dort dann die Dialoge hinschreiben? Also wenn ein Account existiert soll sein Loginfenster kommen, wenn er ein Account hat, soll ein Registerfenster kommen
    irgendwie blick ich grad nicht durch, was du gepostet hast.


    Achso :D Das wolltest du einfach nur...dann einfach so:


    public SpielerVorhanden(playerid)
    {
    new rows, fields;
    cache_get_data(rows, fields);
    if(rows) return ShowPlayerDialog(playerid,DIALOG_EINLOGGEN,DIALOG_STYLE_PASSWORD,"login",string,"Spielen"," ");
    return ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_PASSWORD,"regist",string,"Anmelden"," ");
    }


    mfg. :thumbup:


    Schreib das mal so:


    public SpielerVorhanden(playerid)
    {
    new rows, fields;
    cache_get_data(rows, fields);
    if(rows)
    {
    //Wenn der Account existiert
    new fetch[11],id;
    cache_get_row(0, 0, fetch), id = strval(fetch);
    //fetch holt den String aus dem cache und da id ein Integer ist, muss es dann nochmal umgewandelt werden.
    //Du fragst ja nur die id ab in deinem Query, deshalb sind alle anderen Felder leer, wenn du mehr abfragen würdest, machst du das einfach so:
    //cache_get_row(0, 1, fetch); hier hättest du dann den nächsten Eintrag
    }
    return 1;
    }


    mfg. :thumbup:

    Also heißt das jetzt genau, dass was in dem listitem steht wird mit info[listitem] ausgegeben`?


    Ja, genau so ist es ;)


    Allerdings hat mich BlackAce gerade darüber aufgeklärt, dass inputtext...schon diese Information enthält...jedoch kann man damit ja aber auch noch mehr machen, die davor und dahinter abfragen und bei ner MSGBox den String rausholen, wenn man ihn braucht...


    Mhm...ich lass es einfach mal drinnen ;)


    mfg. :thumbup: