Datei wird nicht Erstellt

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Hallo,
    bei meinem /contact für die Hitmans wird die Datei nicht erstellt.
    Hier der Code:


    dcmd_contract(playerid, params[])
    {
    new pid, geld;
    if(sscanf(params,"ud", pid, geld))
    {
    return SendClientMessage(playerid, gelb,"Verwendung : /contract [Playerid] [Preis]");
    }
    if(sSpieler[playerid][Level] == 1)
    {
    if(pid == INVALID_PLAYER_ID)
    {
    return SendClientMessage(playerid,rot,"Ungültiger Spieler");
    }
    else
    {
    GivePlayerMoney(playerid,-geld);
    SendClientMessage(playerid,grün,"Dein Auftrag wurde an die Hitman geschickt");
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    if(sSpieler[playerid][Fraktion] == HITMAN)
    {
    new str1[128], str2[128], str3[128];
    format(str1,sizeof(str1),"Auftraggeber: %s",spielername(playerid));
    format(str2,sizeof(str2),"Zielperson: %s",spielername(pid));
    format(str3,sizeof(str3),"Preis: %d",geld);
    SendClientMessage(i,hellblau,"====================================");
    SendClientMessage(i,hellblau,"Ihr habt einen neuen Auftrag!");
    SendClientMessage(i,hellblau,str1);
    SendClientMessage(i,hellblau,str2);
    SendClientMessage(i,hellblau,str3);
    SendClientMessage(i,hellblau,"====================================");
    return 1;
    }
    }
    for(new i=1; i<MAX_CONTRACTS; i++)
    {
    new Auftrag[56];
    format(Auftrag,sizeof(Auftrag),"/MyGame/Hitman/%d.txt",i);
    if(dini_Exists(Auftrag))
    {
    continue;
    }
    else
    {
    dini_Create(Auftrag);
    dini_Set(Auftrag,"Auftraggeber",spielername(playerid));
    dini_Set(Auftrag,"Zielperson",spielername(pid));
    dini_IntSet(Auftrag,"Preis",geld);
    return 1;
    }
    }
    }
    }
    else
    {
    SendClientMessage(playerid,rot,"Level 1er dürfen keine Contract abschliesen!");
    }
    return 1;
    }


    Weis jemand das Problem
    Danke im Voraus.

  • new pid, geld;
    if(sscanf(params,"ud", pid, geld)) return SendClientMessage(playerid, gelb,"Verwendung : /contract [Playerid] [Preis]");
    if(sSpieler[playerid][Level] == 1) return SendClientMessage(playerid,rot,"Level 1er dürfen keine Contract abschliesen!");
    if(pid == INVALID_PLAYER_ID) return SendClientMessage(playerid,rot,"Ungültiger Spieler");
    GivePlayerMoney(playerid,-geld);
    SendClientMessage(playerid,grün,"Dein Auftrag wurde an die Hitman geschickt");
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    if(!IsPlayerConnected(i)) continue;
    if(sSpieler[i][Fraktion] != HITMAN) continue;
    new string[128];
    SendClientMessage(i,hellblau,"====================================");
    SendClientMessage(i,hellblau,"Ihr habt einen neuen Auftrag!");
    format(string,sizeof(string),"Auftraggeber: %s",spielername(playerid));
    SendClientMessage(i,hellblau,string);
    format(string,sizeof(string),"Zielperson: %s",spielername(pid));
    SendClientMessage(i,hellblau,string);
    format(string,sizeof(string),"Preis: %d",geld);
    SendClientMessage(i,hellblau,string);
    SendClientMessage(i,hellblau,"====================================");
    }
    for(new i=1; i<MAX_CONTRACTS; i++)
    {
    new Auftrag[56];
    format(Auftrag,sizeof(Auftrag),"/MyGame/Hitman/%d.txt",i);
    if(dini_Exists(Auftrag)) continue;
    dini_Create(Auftrag);
    dini_Set(Auftrag,"Auftraggeber",spielername(playerid));
    dini_Set(Auftrag,"Zielperson",spielername(pid));
    dini_IntSet(Auftrag,"Preis",geld);
    break;
    }


    Ich hab dir das optimiert.
    Im allgemein war das 'return 1;' in der MAX_PLAYERS-Schleife das Problem.
    Sobald ein Hitman online ist, bekommt er eine Nachricht und da hört das ganze auf.


    Nun bekommt jeder Hitman die Nachricht und die Datei wird erstellt.


    //edit: Außerdem war in der MAX_PLAYERS_SCHLEIFE ein Denkfehler:
    if(sSpieler[playerid][Fraktion] != HITMAN)
    FALSCH!!


    Richtig:
    if(sSpieler[i][Fraktion] != HITMAN)

    2 Mal editiert, zuletzt von Pille ()