Beiträge von Jeffry

    if(dialogid==DIALOG_ARANG)
    {
    if(response==0)
    {
    SendClientMessage(playerid,Rot,"Abgebrochen");
    }
    if(response==1)
    {
    SetPVarInt(playerid, "gewRang", listitem+1);
    ShowPlayerDialog(playerid, DIALOG_ARANG_NAME, DIALOG_STYLE_INPUT, "Name", "Gebe den Name ein:", "Ok", "Abbrechen");
    }
    return 1;
    }


    if(dialogid == DIALOG_ARANG_NAME)
    {
    if(response == 1)
    {
    format(aRangName[GetPVarInt(playerid, "gewRang")], 32, inputtext);
    //dann ein Query, das musst du an deine Datenbank anpassen:
    new query[128];
    format(query, sizeof(query), "UPDATE tabelle SET rangname = '%s' WHERE rangid = %d", aRangName[GetPVarInt(playerid, "gewRang")], GetPVarInt(playerid, "gewRang"));
    mysql_query(query);
    }
    return 1;
    }


    Nach diesem Prinzip. Das query musst du wie gesagt anpassen, da ich den exakten Aufbau deiner Datenbank nicht kenne. Das wirst du aber hinbekommen.

    Ein Spieler der gebannt ist kann ja schlecht online sein.
    Also so:
    ocmd:unban(playerid,params[])
    {
    new name[50],string[128];
    if(SpielerInfo[playerid][pAdminlevel] < 3) return SendClientMessage(playerid,Rot,"Möglich ab: "COLO" Adminrank 3");
    if(sscanf(params,"s[50]",name))return SendClientMessage(playerid,Rot,""COLO"Verwendung: "COLR"/unban [Name]");
    mysql_SetInt(Tabelle_Spieler,"Ban",0,"Name",name);
    format(string,sizeof(string),"Du hast den Spieler %s ungebannt!",name);
    SendClientMessage(playerid,Rot,string);
    return 1;
    }

    Solche Fragen gehören eigentlich in einen eigenen Thread, da das keine "kleine Frage" ist (so viel Code macht diesen Thread sehr unübersichtlich, vor allem wenn es nicht gleich klappt).



    Ich erkläre dir mal wie du vorgehen musst:
    Du erstellst global unter den Includes folgende Variable:
    new Float:totenKopfPos[MAX_PLAYERS][3];


    Beim Erstellen des Totenkopfs speicherst du dann x in totenKopfPos[playerid][0], y in [1] und z in [2].


    Beim /wiederbeleben dann in das IsPlayerInRangeOfPoint die totenKopfPos[i][0] bis 3 packen.


    Wenn du Fragen hast, kannst du natürlich gerne nachfragen.

    Vor:
    if((checkpointid == GetPVarInt(playerid, "PlayerCarThief_Checkpoint0")
    die "{" muss "}" sein. Sonst gehen zwei Klammern auf und keine zu. ;)



    und:
    if((checkpointid == GetPVarInt(playerid, "PlayerCarThief_Checkpoint0")
    zu:
    if(checkpointid == GetPVarInt(playerid, "PlayerCarThief_Checkpoint0"))

    Du musst es genau andersherum machen, weil wenn du Level 1337 bist, dann bist du ja auch Level 1 (du prüfst auf level >=).


    public OnPlayerSpawn(playerid)
    {
    if(IstSpielerAdmin(playerid, 1337))
    {
    new Text3D:ownerlabel = Create3DTextLabel("Server Owner", COLOR_PURPLE, 30.0, 40.0, 50.0, 20.0, 0);
    Attach3DTextLabelToPlayer(ownerlabel, playerid, 0.0, 0.0, 0.7);
    return 1;
    }
    else if(IstSpielerAdmin(playerid, 3))
    {
    new Text3D:adminlabel = Create3DTextLabel("Administaror", COLOR_YELLOW, 30.0, 40.0, 50.0, 20.0, 0);
    Attach3DTextLabelToPlayer(adminlabel, playerid, 0.0, 0.0, 0.7);
    return 1;
    }
    else if(IstSpielerAdmin(playerid, 2))
    {
    new Text3D:modlabel = Create3DTextLabel("Moderator", COLOR_YELLOW, 30.0, 40.0, 50.0, 20.0, 0);
    Attach3DTextLabelToPlayer(modlabel, playerid, 0.0, 0.0, 0.7);
    return 1;
    }
    else if(IstSpielerAdmin(playerid, 1))
    {
    new Text3D:supportlabel = Create3DTextLabel("Supporter", COLOR_YELLOW, 30.0, 40.0, 50.0, 20.0, 0);
    Attach3DTextLabelToPlayer(supportlabel, playerid, 0.0, 0.0, 0.7);
    return 1;
    }
    return 1;
    }

    OnPlayerEnterDynamicPickup()


    Er hat einen Checkpoint erstellt, kein Pickup. ;)


    DeaN Hunter:
    Du musst den Checkpoint so erstellen:
    cp1=CreateDynamicCP(1480.8396,-1770.6718,18.7958,5.0,-1,-1,-1,10000.0);
    und global, unter den Includes:
    new cp1;
    Dann siehst du ihn von überall. Hast du aber mehrere Checkpoints, dann zeigt es dir nur den dir am nächsten Checkpoint an, da SA-MP pro Spieler nur einen Checkpoint anzeigen kann. Wenn du diese auf der Karte markieren willst, dann nimm dafür Map Icons.


    Löschen kannst du einen Checkpoint beim betreten in:
    OnPlayerEnterDynamicCP
    if(checkpointid == cp1) DestroyDynamicCP(checkpointid);

    Nutzt du das Plugin oder die stock Funktion?


    Versuch es ggf. mal so:
    ocmd:news(playerid, params[])
    {
    if(!isPlayerInFrakt(playerid,6))return SendClientMessage(playerid,-1,"Du bist kein News Reporter!");
    new Nachricht[145];
    if(sscanf(params,"s[145]", Nachricht))return SendClientMessage(playerid, COLOR_GREEN, "INFO: /news [Nachricht]");
    format(Nachricht,sizeof Nachricht,"{FFAC00}*Journalist {FFFFFF} %s:{FFAC00} %s*", GetName(playerid), Nachricht);
    SendClientMessageToAll(COLOR_ORANGE, Nachricht);
    return 1;
    }

    Ändere das mal zu:
    for(new vehSlot=0;vehSlot<MAX_PLAYER_VEHICLES;vehSlot++)
    {
    LoadPlayerVehicles(playerid, vehSlot);
    }



    Und :
    mysql_query("SELECT * FROM script_vehicles WHERE Name='%s'",SpielerInfo[playerid][pName]);
    zu:
    mysql_query("SELECT * FROM script_vehicles WHERE vehBesitzer='%s' AND Slot = '%d'",SpielerInfo[playerid][pName], slot);

    Der Log passt nicht zu dem Code den du da gepostet hast.
    Poste mal den Code, der dieses Query beinhaltet:

    SQL
    SELECT * FROM `script_vehicles` WHERE `vehBesitzer`='%s' AND `Slot` = '%d'


    Damit rufst du nämlich das public LoadPlayerVehicles auf, also so wie das aussieht, nutzt du möglicherweise doch ein Plugin mit Cache Funktionen.


    Welches Plugin verwendest du denn eigentlich?