Beiträge von Jeffry

    stock LockVehicles()
    {
    new engine,lights,alarm,doors,bonnet,boot,objective,count;
    for(new i=0;i<sizeof(PrivateVehicle);i++)
    {
    if(PrivateVehicle[i][p_vID] != 0)
    {
    count++;
    GetVehicleParamsEx(PrivateVehicle[i][p_vID],engine,lights,alarm,doors,bonnet,boot,objective);
    SetVehicleParamsEx(PrivateVehicle[i][p_vID],engine,lights,alarm,1,bonnet,boot,objective);
    }
    }
    printf("%i Vehicles locked",count);
    return 1;
    }

    Welche der Variablen hast du mit [5] deklariert? Erhöhe diese.


    Falls du nicht weißt welche, erstelle im /pawno/ Ordner neben der pawno.exe eine "pawn.cfg" Datei und schreibe dort "-d3" rein (ohne Anführungszeichen). Dann öffne die pawno.exe, wähle deinen Code aus und kompiliere ihn. Dann poste nochmal den Server Log, wenn du den Server startest.

    Aus PN:

    Zitat

    wie kann ich das jetzt in kombiniren ? :D
    So das ein Admin alle Autos öffnen kann?


    ocmd:vehiclelock(playerid,params[])
    {
    new veh = INVALID_VEHICLE_ID;
    if(GetPlayerState(playerid) == PLAYER_STATE_ONFOOT)
    {
    new Float:Pos[3];
    for(new i=0;i<MAX_VEHICLES; i++)
    {
    GetVehiclePos(i, Pos[0], Pos[1], Pos[2]);
    if(IsPlayerInRangeOfPoint(playerid, 5.0, Pos[0], Pos[1], Pos[2]))
    {
    veh = i;
    break;
    }
    }
    }
    else if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
    {
    veh = GetPlayerVehicleID(playerid);
    }
    if(veh == INVALID_VEHICLE_ID) return SendClientMessage(playerid,COLOR_RED,"Es befindet sich keines deiner Fahrzeuge in der Nähe.");
    if(pInfo[playerid][pAdmin] > 0 || cInfo[veh][besitzer] == playerid)
    {
    new engine,lights,alarm,bonnet,boot,objective;
    GetVehicleParamsEx(veh,engine,lights,alarm,vehdoor,bonnet,boot,objective);
    GameTextForPlayer(playerid, (vehdoor)?("~w~Fahrzeug ~g~aufgeschlossen"):("~w~Fahrzeug ~g~abgeschlossen"), 3000, 5);
    PlaySoundForPlayer(playerid,1147);
    SetTimerEx("PlaySoundForPlayer",500,0,"id",playerid,1147);
    if(vehdoor!=0) vehdoor = 0;
    else vehdoor = 1;;
    SetVehicleParamsEx(veh,engine,lights,alarm,vehdoor,bonnet,boot,objective);
    }
    else
    {
    return SendClientMessage(playerid,COLOR_RED,"Das Auto gehört dir nicht.");
    }
    return 1;
    }


    Unter der Bedingung dass du in "cInfo[veh][besitzer]" die playerid des Besitzers speicherst. Gegebenenfalls musst du das abändern.

    Da noch keine Antwort hier kam:
    Dafür braucht man kein externes Tool, ich habe das immer mit einem kleinen Filterscript gemacht. (@BronX:)
    #include <a_samp>


    public OnFilterScriptInit()
    {
    CreateDynamicObject(10453,-3357.1992,-3098.7998,-8.1000,1.7907,333.9788,338.8732); //object[sfshill14] [1]
    return 1;
    }


    stock CreateDynamicObject(id, Float:x, Float:y, Float:z, Float:rx, Float:ry, Float:rz)
    {
    //Positions-Verschiebung hier eingeben:
    x+=0.0;
    y+=0.0;
    z+=0.0;
    //------------------------------------
    new string[256], File:wFile;
    format(string, sizeof(string), "CreateDynamicObject(%d, %0.4f, %0.4f, %0.4f, %0.4f, %0.4f, %0.4f);\r\n", id, x,y,z, rx,ry,rz);
    wFile = fopen("Verschoben.txt",io_append);
    fwrite(wFile,string);
    fclose(wFile);
    return 1;
    }


    Man konvertiert die Objekte zu CreateDynamicObject (Streamer Plugin) und schreibt sie in einen Filterscript in dem der Streamer nicht inkludiert ist. Dafür erstellt man selbst eine Funktion die die Map verschiebt.
    Danach trägt man den Filterscript in die server.cfg ein und startet den Server (lokal reicht da völlig) und danach nimmt man den Filterscript wieder aus der server.cfg raus. In der "Verschoben.txt" im scriptfiles Ordner steht dann die verschobene Map. Gleiches Prinzip geht auch für Fahrzeuge und Pickups. Falls dafür ein Konverter benötigt wird: [jTool] Offline Map Konverter | jMapKonverter.vbs

    Habe jahrelang die DLAN Adapter von Develo verwendet, hat immer super funktioniert, also für jemanden der kein WLAN hat ist das eine gute Alternative.


    Es kann allerdings vorkommen, dass nicht alle Steckdosen funktionieren, je nach dem wie das intern (in der Wand) verkabelt ist (bei nem Kumpel ging es an einer Steckdose nicht), aber normalerweise klappt es gut.
    Es wird ja einfach die Stromleitung zur Übertragung verwendet, das ist also praktisch eine Kabel Verbindung, nur eben in der Wand.

    ShowPlayerDialog(playerid,DIALOG_BANKINFO,DIALOG_STYLE_MSGBOX,"Bank",eingabewert,"Okay","");
    zu:
    ShowPlayerDialog(playerid,DIALOG_BANKINFO,DIALOG_STYLE_MSGBOX,"Bank",banktext,"Okay","");



    Die 25 von banktext musst du wahrscheinlich etwas größer machen.

    Nein, damit werden im Query unerwünschte Zeichen in einem String maskiert.
    Siehe: http://php.net/manual/de/funct…ql-real-escape-string.php


    Wenn du abfragen willst ob die Eingabe eine Zahl ist:
    if(!IsNumeric(inputtext) || !strlen(inputtext)) return SendClientMessage(playerid, 0xFF0000FF, "Error: Keine Zahl!");


    Ganz unten im Gamemode:
    stock IsNumeric(string[])
    {
    for (new i = 0, j = strlen(string); i < j; i++)
    {
    if ((string[i] > '9' || string[i] < '0')) return 0;
    }
    return 1;
    }

    new veh=GetPlayerVehicleID(playerid);
    zu:
    new veh = INVALID_VEHICLE_ID;
    if(GetPlayerState(playerid) == PLAYER_STATE_ONFOOT)
    {
    new Float:Pos[3];
    for(new i=0;i<MAX_VEHICLES; i++)
    {
    GetVehiclePos(i, Pos[0], Pos[1], Pos[2]);
    if(IsPlayerInRangeOfPoint(playerid, 5.0, Pos[0], Pos[1], Pos[2]))
    {
    veh = i;
    break;
    }
    }
    }
    else if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
    {
    veh = GetPlayerVehicleID(playerid);
    }

    if(strlen(inputtext)>0)
    {
    new eingabewert = strval(inputtext);
    if(GetPlayerMoney(playerid)<eingabewert)return SendClientMessage(playerid,ROT,"So viel Geld hast du nicht!");
    GivePlayerMoney(playerid,-eingabewert);
    new query[128];
    format(query,sizeof(query),"UPDATE user SET bankgeld='%i' WHERE id='%i'",sInfo[playerid][bankgeld]+eingabewert,sInfo[playerid][db_id]);
    mysql_tquery(dbverbindung,query);
    }

    Ja, eigentlich schon. Allerdings ist es recht unnötig eine Funktion dafür zu verwenden, da es ja nur die Abfrage ist.


    Besser wäre sowas, das wirkt sich nicht auf die Performance aus:
    #define IsAdmin(%0,%1) (sInfo[%0][alevel] >= %1)


    Dann kannst du auch
    ocmd:gmx(playerid,params[])
    {
    printf("Adminrang: %d",sInfo[playerid][alevel]);
    if(!IsAdmin(playerid, 6)) return SendClientMessage(playerid,KID_COL_RED, "Du bist nicht .Kid!");
    SendRconCommand("gmx");
    return 1;
    }
    verwenden.

    ocmd:gmx(playerid,params[])
    {
    printf("Adminrang: %d",sInfo[playerid][alevel]);
    if(sInfo[playerid][alevel] < 6) return SendClientMessage(playerid,KID_COL_RED, "Du bist nicht .Kid!");
    SendRconCommand("gmx");
    return 1;
    }