Beiträge von Jeffry

    SetPlayerPos(playerid,1763.2980,-1896.6514,13.5625,276.7087);
    zu:
    SetPlayerPos(playerid,1763.2980,-1896.6514,13.5625);
    SetPlayerFacingAngle(playerid, 276.7087);


    Kannst du die Zeilen mit den Fehlern bitte mal markieren? Und die restlichen Zeilen posten? Das sind nämlich Errors die gar nicht hier vorkommen.

    Du schreibst das einfach in einen ocmd Befehl:
    ocmd:dm(playerid, params[])
    {
    new Random = random(sizeof(RandomSpawns));
    SetPlayerPos(playerid, RandomSpawns[Random][0], RandomSpawns[Random][1], RandomSpawns[Random][2]);
    SetPlayerFacingAngle(playerid, RandomSpawns[Random][3]);
    return 1;
    }

    Ich glaube, diese Variable hat gar keinen Sinn in dem Zusammenhang, oder? "Dtc_PlayerKey[playerid]"
    Ändere mal:
    if(Dtc_PlayerHaveCar[playerid][Dtc_PlayerKey[playerid]])
    zu:
    if(Dtc_PlayerHaveCar[playerid][mv])


    (Hab's dir auch in Post #5 geändert.)



    EDIT:
    [DT]Sniper: Danke für die Info. :thumbup:

    Sorry, das gehört natürlich weg, ist ja keine Schleife mehr da.


    if(dialogid==DIALOG_CARKEYS)
    {
    if(response)
    {
    new wstring[145];
    if(Dtc_PlayerHaveCar[playerid][listitem])
    {
    format(wstring, sizeof(wstring), "Du nimmst deinen %dten Auto-Schlüssel, für deinen %s!",listitem+1,CarName[PlayerCar[playerid][listitem][CarModel]-400]);
    SendClientMessage(playerid,blau,wstring);
    }
    else
    {
    format(wstring, sizeof(wstring), "Du nimmst deinen %dten Auto-Schlüssel, für deinen einen freien Platz!",listitem+1);
    SendClientMessage(playerid,blau,wstring);
    }
    }
    return 1;
    }

    Ok, schreibe es mal so. Ich habe es etwas umgestellt, so wie ich denke es sein muss, bzw. du es haben willst. Wenn ich deinen Code richtig interpretiert habe sollte es so passen.


    ocmd:carkey(playerid)
    {
    new mc = MaxVeh;
    if(mc > 1)
    {
    new mvstring[800];
    for(new mv;mv<MaxVeh;mv++)
    {
    if(Dtc_PlayerHaveCar[playerid][mv])
    {
    format(mvstring,800,"%s\n%s",mvstring,CarName[PlayerCar[playerid][mv][CarModel]-400]);
    }
    else
    {
    format(mvstring,800,"%s\nFrei",mvstring);
    }
    }
    ShowPlayerDialog(playerid,DIALOG_CARKEYS,DIALOG_STYLE_LIST,"Autoschlüssel",mvstring,"Auswählen","Abbrechen");
    }
    return 1;
    }



    if(dialogid==DIALOG_CARKEYS)
    {
    if(response)
    {
    new wstring[145];
    if(Dtc_PlayerHaveCar[playerid][listitem])
    {
    format(wstring, sizeof(wstring), "Du nimmst deinen %dten Auto-Schlüssel, für deinen %s!",listitem+1,CarName[PlayerCar[playerid][listitem][CarModel]-400]);
    SendClientMessage(playerid,blau,wstring);
    }
    else
    {
    format(wstring, sizeof(wstring), "Du nimmst deinen %dten Auto-Schlüssel, für deinen einen freien Platz!",listitem+1);
    SendClientMessage(playerid,blau,wstring);
    }
    }
    return 1;
    }


    EDIT:
    @leader_king: ^

    Schau mal hier:
    http://forum.sa-mp.com/showthread.php?t=162488


    Nur dass du es nicht in OnPlayerSpawn packst, sondern in deinen Befehl.


    Zum /exit kannst du ja zum Beispiel abfragen, ob der Spieler in einer anderen virtuellen Welt ist, die du beim Befehl gesetzt hast, oder du machst eine PVar auf 1 wenn er die Area betritt.


    Edit:
    Siehe auch:
    http://forum.sa-mp.com/showthread.php?t=176688



    Edit2:
    @CIBERKILLER: Es gibt keine deutschen Tutorials dazu, zumindest habe ich keins gefunden, welches dazu noch etwas taugt. Hast du eins?

    OnGameModeInit
    SetTimer("CheckPos", 200, true);


    Unten im Code
    forward CheckPos();
    public CheckPos()
    {
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    if(IsPlayerInRangeOfPoint(i, 5.0, X, Y, Z))
    {
    //SetPlayerPos(...)
    }
    }
    return 1;
    }


    In IsPlayerInRangeOfPoint musst du das XYZ mit deinen Koordinaten ersetzen, an denen es den Spieler weg teleportieren soll. Die 5.0 ist der Prüfungsradius.

    Schreibe es mal so:
    format(query,350,"INSERT INTO biz (`bx`, `by`, `bz`, `ib_x`, `ib_y`, `ib_z`, `b_interior`,`b_level`,`b_preis`,`b_kasse`) VALUES ('%f','%f','%f','0.0','0.0','0.0','0','%i','%i','%i')",
    x,y,z,klevel,kpreis,bkasse);


    BY ist in ORDER BY vorhanden, deshalb wird es nicht klappen.

    Siyar:

    Zitat

    [17:01:00] [DEBUG] CMySQLQuery::Execute[()] - query was successful
    [17:01:00] [DEBUG] CMySQLQuery::Execute[()] - no callback specified, skipping result saving
    [17:01:00] [DEBUG] CMySQLQuery::Execute[()] - data being passed to ProcessCallbacks()
    [17:01:00] [DEBUG] CMySQLQuery::Execute[()] - starting query execution


    Das ist nur eine Debug-Meldung, weil du mysql_log mit ALLEN Logs nutzt. Das ist kein Fehler, also alles gut. An deinem Code ist nichts falsch.


    => Query succesful: Erfolgreich
    => No callback specified: Es wurde kein Callback angegeben, es wird also kein Result zurück gegeben. Passt.
    => Daten werden an ProcessCallbacks() weitergegeben
    => Query wird ausgeführt.


    ===> Alles OK!

    Du nutzt kein TextDrawTextSize.


    Schau dir mal diesen Thread an, da sind wir das mal ausführlich durchgegangen, wie das mit dem Radius zum anklicken gemacht werden muss.
    Anklickbare TextDraws Funktionieren nicht


    Die Box kannst du natürlich, wenn es mit dem Anklicken klappt auf TextDrawUseBox false setzen, aber zum anpassen des anklickbaren Bereichs eignet sich eine Box gut.


    Aufpassen: Die Y-Größe (Höhe) sieht man an der Box nicht, die musst du abschätzen!

    Erstelle bitte in deinem /pawno/ Verzeichnis eine Datei "pawn.cfg" und schreibe dort "-d3" rein.
    Dann kompiliere deinen Gamemode neu und poste was dann im Log steht, wenn der Server abstürzt. Poste dazu auch gleich die Zeilen um die Zeilenangabe im Log.

    Es ist relativ egal wie die Variable heißt, aber wenn du es so machen willst ja.
    Du musst es einfach wie zum Beispiel das Geld behandeln, speichern und laden. Die Zeit sollte dann ganz normal runterzählen.


    Wenn nicht, poste bitte den Code, wie du ihn dann hast.

    Lass es erst mal so laufen:

    Spoiler anzeigen
    ocmd:creport(playerid,params[])
    {
    if(!IsPlayerConnected(playerid))return 1;
    new string[128];
    if(SpielerInfo[playerid][pReportAktiv] == 0)return SendClientMessage(playerid, Rot, "** Kein aktiver Report!");
    printf("Level: %d", SpielerInfo[playerid][pAdminlevel])
    if(SpielerInfo[playerid][pAdminlevel] == 0)
    {
    for(new i=0;i<MAX_REPORTS;i++)
    {
    if(gSupport[i][ticketCreated])
    {
    if(gSupport[i][ticketSender] == playerid)
    {
    if(gSupport[i][ticketAdmin] == INVALID_PLAYER_ID)
    {
    SendClientMessage(playerid, Rot, "* Du hast das Report Ticket zurückgezogen.");
    gSupport[i][ticketCreated] = false;
    gSupport[i][ticketSender] = INVALID_PLAYER_ID;
    gSupport[i][ticketAdmin] = INVALID_PLAYER_ID;
    switch(gSupport[i][ticketType])
    {
    case 1: gAllgFragen--;
    case 2: gBugmeldung--;
    case 3: gRegelverstoss--;
    case 4: gEinweisung --;
    }
    gSupport[i][ticketType] = 0;
    strdel(gSupport[i][ticketMessage], 0, 90);
    SpielerInfo[playerid][pReportAktiv] = 0;
    UpdateReports();
    return 1;
    }
    else
    {
    SendClientMessage(playerid, Rot, "** Dein Ticket wurde bereits geöffnet und kann nur von einem Admin geschlossen werden!");
    return 1;
    }
    }
    }
    }
    }
    else
    {
    for(new i=0;i<MAX_REPORTS;i++)
    {
    if(gSupport[i][ticketCreated])
    {
    if(gSupport[i][ticketAdmin] == playerid)
    {
    format(string, sizeof(string), "* Du hast das Report Ticket von %s gelöscht.", GetName(gSupport[i][ticketSender]));
    SendClientMessage(playerid, Rot, string);
    if(IsPlayerConnected(gSupport[i][ticketSender]) && SpielerInfo[gSupport[i][ticketSender]][pReportAktiv] == 1)
    {
    format(string, sizeof(string), "* %s hat das Ticket gelöscht.", GetName(playerid));
    SendClientMessage(gSupport[i][ticketSender], Rot, string);
    }
    gSupport[i][ticketCreated] = false;
    SpielerInfo[playerid][pReportAktiv] = 0;
    SpielerInfo[gSupport[i][ticketSender]][pReportAktiv] = 0;
    gSupport[i][ticketSender] = INVALID_PLAYER_ID;
    gSupport[i][ticketAdmin] = INVALID_PLAYER_ID;
    switch(gSupport[i][ticketType])
    {
    case 1: gAllgFragen--;
    case 2: gBugmeldung--;
    case 3: gRegelverstoss--;
    case 4: gEinweisung --;
    }
    gSupport[i][ticketType] = 0;
    strdel(gSupport[i][ticketMessage], 0, 90);
    UpdateReports();
    return 1;
    }
    }
    }
    }
    return SendClientMessage(playerid, Rot, "** Irgendwas ging schief.");
    }


    Kommt jetzt eine Nachricht im Chat?
    Was steht im Log?