Beiträge von Jeffry

    So zum Beispiel:
    ocmd:fhelp(playerid,params[])
    {
    new string[512];
    format(string,sizeof(string),""COLO" FraktionsBefehle:\n");
    switch(SpielerInfo[playerid][pFraktion])
    {
    case 1:
    {
    format(string,sizeof(string),"%s/befehl 1\n", string);
    format(string,sizeof(string),"%s/befehl 2\n", string);
    format(string,sizeof(string),"%s/befehl 3\n", string);
    }
    case 2:
    {
    format(string,sizeof(string),"%s/befehl x\n", string);
    format(string,sizeof(string),"%s/befehl y\n", string);
    format(string,sizeof(string),"%s/befehl z\n", string);
    }
    }
    ShowPlayerDialog(playerid,DIALOG_FHELP,DIALOG_STYLE_MSGBOX,""COLO"Fraktionshilfe",string,"OK","");
    return 1;
    }

    Dann zeig mal den Teil der dir die beiden Dialoge (Login oder Register) anzeigt, steht wahrscheinlich bei OnPlayerConnect.



    EDIT:
    SetPlayerFightingStyle(playerid, dini_Int(string2, "FightingStyle"));
    SpawnChange[playerid] = dini_Int(string2, "SpawnChange");
    WantedLevel[playerid] = dini_Int(string2, "WantedLevel");
    WantedLevel[playerid] = dini_Int(string2, "WantedPoints");
    OfflineFlucht[playerid] = dini_Int(string2, "Offflucht");
    Knast[playerid] = dini_Int(string2, "Knast");
    KnastTime[playerid] = dini_Int(string2, "KnastTime");


    Die zwei Zeilen vom alten System und die zwei Zeilen drunter kannst du löschen.

    ocmd:wanted(playerid,params[])
    {
    new string[128], pID, wantedlevel,reason[64];
    if(sscanf(params, "ids", pID, wantedlevel,reason))return SendClientMessage(playerid, Rot, "Benutze: /wanted [ID] [Wanteds] [Grund]");
    if(IsPlayerConnected(pID))
    {
    if(!IsPlayerNPC(pID))
    {
    if(GetWantedLevel(pID)+wantedlevel > 69) return SendClientMessage(playerid, Rot,"Nicht mehr als 69 möglich.");
    SetWantedLevel(pID,GetWantedLevel(pID)+wantedlevel);
    format(string,sizeof(string),"<<Gesuchter:%s Wantedpunkte: %d Gesamt: %d Reporter: %s Grund:%s>>",GetName(pID),wantedlevel,GetWantedLevel(pID),GetName(playerid),reason);
    SendClientMessageToAll(Rot,string);
    UpdateWantedDraw(pID);
    return 1;
    }
    else return SendClientMessage(playerid,Rot,"Du kannst einem NPC keine Wanteds geben.");
    }
    else return SendClientMessage(playerid,Rot,"Spieler ist nicht connected.");
    }

    Es geht darum, sobald ich mich einlogge muss ich mich neu registrieren ..


    Wie meinst du das?
    Du loggst dich ein im Login Dialog, und danach kommt der Dialog zum registrieren? Oder wie?


    Außerdem hast du da bei OnPlayerLogin immer noch die zwei Systeme durcheinander.
    Hier man den Teil verbessert, den du gepostet hast (so wie es aussieht willst du ja dini verwenden):
    Function OnPlayerLogin(playerid,password[])
    {
    new string2[128];
    new playername2[MAX_PLAYER_NAME];
    GetPlayerName(playerid, playername2, sizeof(playername2));
    format(string2, sizeof(string2), "/Accounts/%s.ini", playername2);
    new File: UserFile = fopen(string2, io_read);
    if ( UserFile )
    {
    new PassData[256];
    new keytmp[256], valtmp[256];
    valtmp = dini_Get(string2, "Key");
    strmid(PlayerInfo[playerid][pKey], valtmp, 0, strlen(valtmp)-1, 255);
    if(strcmp(PlayerInfo[playerid][pKey],password, true ) == 0 )
    {
    PlayerInfo[playerid][pLevel] = dini_Int(string2, "Level");
    PlayerInfo[playerid][pAdmin] = dini_Int(string2, "AdminLevel");
    //usw...

    ocmd:makeadmin(playerid,params[])
    {
    if(!isAdmin(playerid,3))return SendClientMessage(playerid,COLOR_RED,"** Du kannst diesen Befehl nicht ausführen. **");
    new pID,a_level;
    if(sscanf(params,"ui",pID,a_level))return SendClientMessage(playerid,COLOR_GREY,"** Benutze: /setadmin [ID/NAME] [Adminrank] **");
    if(!IsPlayerConnected(pID))return SendClientMessage(playerid,COLOR_GREY,"** Dieser Spieler ist nicht auf dem Server! **");
    new str[145];
    format(str, sizeof(str), "Dein Adminrang wurde von %s auf %s geändert.", GetRankName(sInfo[pID][alevel]), GetRankName(a_level));
    SendClientMessage(pID,COLOR_RED,str);
    format(str, sizeof(str), "Du hast den Adminrang von %s auf %s geändert.", GetRankName(sInfo[pID][alevel]), GetRankName(a_level));
    SendClientMessage(playerid,COLOR_RED,str);
    sInfo[pID][alevel]=a_level;
    savePlayer(pID);
    return 1;
    }


    stock GetRankName(rank)
    {
    new name[24];
    switch(rank)
    {
    case 0: name = "Spieler";
    case 1: name = "Moderator";
    case 2: name = "Admin";
    case 3: name = "Owner";
    }
    return name;
    }


    Sollte so passen.


    Jumpin: Dann sollte es aber mit den Parametern gehen, oder?

    Wie sieht denn dein Befehl mit der neuen Abfrage jetzt aus? Möglicherweise passt die nicht ganz.


    Ändere zuvor mal die Abfrage zu
    stock IsAPlayerCar(vehicleid)
    {
    for(new i=0;i<MAX_CARS;i++)
    {
    if(vehicleid == CarInfo[i][c_ID])
    {
    return true;
    }
    }
    return false;
    }

    if(dialogid == DIALOG_UEBERWEISEN_PLAYER)
    {
    if(response == 0)
    {
    SendClientMessage(playerid,Grau,"Du hast die Überweisung abgebrochen!");
    return 1;
    }
    if(response == 1)
    {
    new pID = ReturnPlayerID(inputtext);
    if(pID == INVALID_PLAYER_ID)
    {
    ShowPlayerDialog(playerid,DIALOG_UEBERWEISEN_PLAYER,DIALOG_STYLE_INPUT,"Überweisen","Bitte gib den Namen des\nSpielers an, an den du das Geld\nÜberweisen möchtest.","Fertig","Zurück");
    return 1;
    }
    SetPVarInt(playerid, "pID", pID);
    ShowPlayerDialog(playerid,DIALOG_UEBERWEISEN_BETRAG,DIALOG_STYLE_INPUT,"Überweisen","Bitte gib den Betrag ein\n den du überweisen möchtest.","Fertig","Zurück");
    return 1;
    }
    return 1;
    }
    if(dialogid == DIALOG_UEBERWEISEN_BETRAG)
    {
    if(response == 0)
    {
    SendClientMessage(playerid,Grau,"Du hast die Überweisung abgebrochen!");
    return 1;
    }
    if(response == 1)
    {
    new string[145];
    new pID = GetPVarInt(playerid, "pID");
    if(PlayerInfo[playerid][pBar] < strval(inputtext) ) return SendClientMessage(playerid,Grau,"Du hast nicht genug Geld auf deiner Hand!");
    PlayerInfo[playerid][pBank] -= strval(inputtext);
    PlayerInfo[pID][pBank] += strval(inputtext);
    format(string,sizeof(string),"Du hast $%d überwiesen.",strval(inputtext));
    SendClientMessage(playerid,Grau,string);
    return 1;
    }
    return 1;
    }



    stock ReturnPlayerID(l_PlayerName[]) //©Jeffry
    {
    new l_name[MAX_PLAYER_NAME];
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(GetPlayerName(i, l_name, MAX_PLAYER_NAME))
    {
    if(!strcmp(l_name,l_PlayerName, true)) return i;
    }
    }
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(GetPlayerName(i, l_name, MAX_PLAYER_NAME))
    {
    if(strfind(l_name,l_PlayerName,true)!=-1) return i;
    }
    }
    return INVALID_PLAYER_ID;
    }


    Ich habe es jetzt so weitergemacht wie du begonnen hast (erst Name, dann Betrag). Wenn du die Reihenfolge ändern willst, dann kannst du das ja machen.
    Du kannst auch noch eine Abfrage einbauen, ob der Betrag auch über 0 ist, aber das bekommst du selbst hin hoffe ich. :)

    Dann musst du es so schreiben:
    ocmd:wanted(playerid,params[])
    {
    new string[128], pID, wantedlevel,reason[64];
    if(sscanf(params, "ids", pID, wantedlevel,reason))return SendClientMessage(playerid, Rot, "Benutze: /wanted [ID] [Wanteds] [Grund]");
    if(IsPlayerConnected(pID))
    {
    if(!IsPlayerNPC(pID))
    {
    SetWantedLevel(pID,GetWantedLevel(pID)+wantedlevel);
    if(GetWantedLevel(pID) > 69) SetWantedLevel(pID, 69);
    format(string,sizeof(string),"<<Gesuchter:%s Wantedpunkte: %d Gesamt: %d Reporter: %s Grund:%s>>",GetName(pID),wantedlevel,GetWantedLevel(pID),GetName(playerid),reason);
    SendClientMessageToAll(Rot,string);
    UpdateWantedDraw(pID);
    return 1;
    }
    else return SendClientMessage(playerid,Rot,"Du kannst einem NPC keine Wanteds geben.");
    }
    else return SendClientMessage(playerid,Rot,"Spieler ist nicht connected.");
    }

    Ist dann doch auch alles richtig. Du kannst ja nicht deinen eigenen Report annehmen.


    Beim Melden setzt du pReportAktiv auf 1, und beim Annehmen fragst du ab ob es bereits 1 ist. Wenn du deine eigene Meldung annehmen willst geht das logischerweise nicht, da du ja die Meldung erstellt hast, sprich pReportAktiv (wie der Log auch sagt) ist 1.



    EDIT:
    [PeL]Smiley: Kein Problem, kommt bei jedem vor. :thumbup:

    Hm...ich hatte damit noch nie Probleme.
    Dann wäre die einzige Möglichkeit die mir noch einfällt diese:
    CreateDynamicObject(modelid, Float:x, Float:y, Float:z, Float:rx, Float:ry, Float:rz, worldid = -1, interiorid = -1, playerid = -1, Float:streamdistance = 200.0, Float:drawdistance = 0.0);
    In CreateDynamicObject kannst du ja auch die streamdistance und die drawdistance ändern. Mach das mal für ein Objekt, und schau ob es dann geht, bei dem Objekt.
    Wenn es auch nichts ändert, dann hast du vielleicht schon den maximalen Abstand.