Beiträge von Jeffry

    Meinst du mit abfragen, den Grund du prüfen?
    Sowas?
    new str[64];
    GetPVarString(playerid, "PrisonGrund", str, sizeof(str));
    if(!strcmp(str, "Cheaten", true))
    {
    //Grund ist Cheaten
    }
    else if(!strcmp(str, "Beleidigung", true))
    {
    //Grund ist Beleidigung
    }
    //...

    strmid("PrisonGrund", Grund, 0, 128, 255);
    Das macht keinen Sinn, wenn dann so:
    strmid(Grund,"Hier der Grund", 0, 128, 255);


    Einfacher verständlich ist aber für die meisten:
    format(Grund, 64, "Hier der Grund");


    Wenn du es in eine PVar speicherst:
    SetPVarString(playerid,"PrisonGrund","Hier der Grund");



    Für dini, zum speichern:
    new str[64];
    GetPVarString(playerid, "PrisonGrund", str, sizeof(str));
    dini_Set(pfad, "PrisonGrund", str);

    @Kayne
    if(!strcmp(playername2, playername, true, strlen(playername)) == 0)


    Das geht nicht, das wird einen Tag Mismatch geben.


    Entweder
    if(strcmp(playername2, playername, true, strlen(playername)) == 0)
    Oder
    if(!strcmp(playername2, playername, true, strlen(playername)))


    Aber er brauch dies gar nicht in seinem Befehl.

    Wenn ich es richtig sehe, dann hast du das anhand meines Tutorials gemacht, richtig?
    Dieses: [jTuT] Fraktions-Fahrzeug-System mit MySQL R39-2


    Dort gibt es den fferstellen Befehl, nach dem kannst du ebenfalls vorgehen.


    Dort wird strtok verwendet, das kannst du, je nach belieben, auch zu sscanf ändern.


    Versuche es mal anhand dem Befehl, deinen Befehl zu erstellen. Wenn du nicht mehr weiter kommst, dann poste was du bis dahin hast.
    Ich möchte es dir ungern alles vorschreiben, wenn es ein Tutorial gibt, das wäre gegen den Lerneffekt.

    Wie erstellst du denn momentan deine Häuser? Oder hast kannst du noch gar keine Häuser erstellen?


    Wie lädst du sie denn, hast du das schon? Irgendwas von Erstellung/Laden bräuchte ich, sonst wird es schwer, da genaue Infos zu geben.

    Undzwar, ist die Alarmanlage von den Fahrzeugen für alle hörbar oder nur für dein Spieler?

    Davon gehe ich aus, ja.


    Aber leider klappt das nicht.... (print wird garnicht angezeigt)

    Versuche es so:
    ocmd:breakcar(playerid)
    {
    new Float:x,Float:y,Float:z;
    GetPlayerPos(playerid,x,y,z);
    for(new veh; veh<MAX_VEHICLES; veh++)
    {
    if(!IsVehicleInRangeOfPoint(veh, 10.0, x, y, z)) continue;
    new rand = random(30);
    if(rand==18)
    {
    for(new v; v < sizeof(cInfo); v++)
    {
    if(cInfo[v][vID] == veh) //Hier ist vID das, was du vor CreateVehicle hast, bei der Erstellung
    {
    for(new i; i<MAX_PLAYERS; i++)
    {
    if(cInfo[v][besitzer]==sInfo[i][db_id])
    {
    SendClientMessage(i,COLOR_BLUE,"Eins deiner Fahrzeuge wurde geklaut!");
    SendClientMessage(i,COLOR_BLUE,"Du kannst nun die Polizei verständigen.");
    printf("%s hat das Auto von %s (Datenbankid: %i|cInfo[i][besitzer]= %i) Ingameid: %i aufgebrochen!",getPlayerName(playerid),getPlayerName(i),sInfo[i][db_id],cInfo[v][besitzer],i);
    break;
    }
    }
    break;
    }
    }
    new engine,lights,alarm,bonnet,boot,objective;
    GetVehicleParamsEx(veh,engine,lights,alarm,vehdoor,bonnet,boot,objective);
    alarm = 1;
    vehdoor = 0;
    objective = 1;
    SetVehicleParamsEx(veh,engine,lights,alarm,vehdoor,bonnet,boot,objective);
    return SendClientMessage(playerid,COLOR_GREEN,"Du hast das Fahrzeug aufgebrochen!");
    }
    return SendClientMessageEx(playerid,COLOR_BLUE,"Fahrzeug wurde nicht aufgebrochen (random = %i)",rand);
    }
    return SendClientMessage(playerid,C_Error,"Es ist kein Fahrzeug in der Nähe!");
    }

    Zwecks dem ersten Fehler:
    Das kannst du so gar nicht machen, da dein Array nur40 Namen beinhaltet.


    Nutze dieses Array mit den Fahrzeugnamen:
    http://forum.sa-mp.com/showthread.php?t=305314



    Dann kannst du den Code so schreiben:
    new model = GetVehicleModel(GetPlayerVehicleID(i));
    if(model != 0) PlayerTextDrawSetString(i,Name[i],vehNames[model-400]);
    else PlayerTextDrawSetString(i,Name[i],"-None-");



    Frage 2 ist ja bereits beantwortet worden.


    Zu Frage 3 kann ich noch hinzufügen, damit du die Fehlerstelle im Code findest:
    Erstelle in deinem /pawno/ Ordner eine Datei "pawn.cfg" und schreibe dort "-d3" rein (ohne Anführungszeichen). Dann speichere die Datei, und öffne die pawno.exe. Dann wähle deinen Code auf, über "Öffnen", und kompiliere ihn. Du bekommst dann eine mehrzeilige Meldung mit vielen Zahlen im Compiler. Dann starte den Server erneut, und poste nochmal den Log, bzw. lese dort die Zeile des Fehlers aus.


    Das "-d3" ist eine Compiler-Option und schält den Debug Modus an (daher die Meldung im Compiler).
    Für das Crashdetect Plugin bedeutet das, dass es genauere Informationen ausgeben kann, wie zum Beispiel die genaue Zeile des Errors, den es ausgibt.

    Wie hast du es denn momentan, also wie erstellst du deine Häuser?
    Was hast du denn bis dahin?


    Du hast einen Befehl zum bearbeiten, aber keinen zum erstellen? Das verwirrt mich etwas.

    Prinzipiell nicht viel, du musst nur den Dialog bzw. die Dialoge dort anzeigen, wenn du auf das Textdraw klickst, anstatt dort, wo es im Tutorial beschrieben ist. Das wäre die einzige Abänderung am Tutorial.


    Sprich:
    Bei OnPlayerClickTextDraw den Dialog zum Login/Register anzeigen lassen, über die SELECT Abfrage, wie es im Tutorial bei OnPlayerRequestClass gemacht wurde.

    Richtig ist das so aber immer noch nicht, denn jetzt machst du jedes mal einen SELECT auf die ganze Tabelle, und lädst alles raus, dann erstellst du laut Code für alle Häuser wieder die Items.
    Das kannst du so nicht machen, sonst erstellt sich jedes mal wenn du ein Haus erstellst an jedem alten Haus das Pickup/Label... nochmal, sprich es ist dann X-Fach vorhanden.



    Außerdem kann mit dem SELECT nichts in der Datenbank eingetragen werden, deshalb wird nichts eingetragen.



    DJ Deagle ist das dein Code?

    Ja, SetPlayerTeam ist da auf jeden Fall am sinnvollsten, anstatt alles manuell zu verwalten.


    Das kannst du dort hinsetzen, und für die playerid zu ihrem gTeam setzen.

    Du musst das return mit der Meldung aus der Schleife nehmen, sonst endet es immer beim ersten Fahrzeug.
    ocmd:breakcar(playerid)
    {
    new Float:x,Float:y,Float:z;
    GetPlayerPos(playerid,x,y,z);
    for(new veh; veh<MAX_VEHICLES; veh++)
    {
    if(!IsVehicleInRangeOfPoint(veh, 10.0, x, y, z)) continue;
    new rand = random(30);
    if(rand==18)
    {
    new engine,lights,alarm,bonnet,boot,objective;
    GetVehicleParamsEx(veh,engine,lights,alarm,vehdoor,bonnet,boot,objective);
    alarm = 1;
    vehdoor = 0;
    objective = 1;
    SetVehicleParamsEx(veh,engine,lights,alarm,vehdoor,bonnet,boot,objective);
    return SendClientMessage(playerid,COLOR_GREEN,"Du hast das Fahrzeug aufgebrochen!");
    }
    return SendClientMessageEx(playerid,COLOR_BLUE,"Fahrzeug wurde nicht aufgebrochen (random = %i)",rand);
    }
    return SendClientMessage(playerid,C_Error,"Es ist kein Fahrzeug in der Nähe!");
    }