Beiträge von Crank93


    public OnPlayerDeath(playerid, killerid, reason)
    {
    IsPlayerInRangeOfPoint((killerid,20,1095.8175,-1796.7742,14.3043) && (killerid != INVALID_PLAYER_ID))
    {
    GivePlayerMoney(killerid,-700);
    SendClientMessage(killerid, 0x7E339CFF,"Kein Kill in der Spawn Zone,-700$");
    GivePlayerMoney(playerid,300);
    SendClientMessage(playerid, 0x0033FFFF,"Da Er dich in der Spawn Zone gekillt hat, bekommst du 300$");
    SetPlayerWantedLevel(killerid,2);
    }
    SetPlayerWantedLevel(killerid, 1);
    return 1;
    }

    dazu brauchst du diese Funktion (nicht von mir):



    stock GetXYInFrontOfPlayer(playerid, &Float:x, &Float:y, Float:distance) { //Credits to Y_Less
    new
    vid=GetPlayerVehicleID(playerid),
    Float:a;
    if (vid) {
    GetVehiclePos(vid,x,y,a);
    GetVehicleZAngle(vid, a);
    }
    else {
    GetPlayerPos(playerid, x, y, a);
    GetPlayerFacingAngle(playerid, a);
    }
    x += (distance * floatsin(-a, degrees));
    y += (distance * floatcos(-a, degrees));
    }


    und dann



    //z.B. irgendein cmd
    new
    Float:fX,
    Float:fY;
    GetXYInFrontOfPlayer(playerid, fX, fY, 10.0) //beliebig anpassen
    //createobject o.ä. mit fX, fY als x und y koordnaten


    dann müsstest du hier



    FractionCars[i++][VehicleID] = CreateVehicle(ModelID,X,Y,Z,R,Color1,Color2,-1);//696


    aber errors bekommen, denn du hast ja ModelID usw. nicht als einzelne variablen sondern innerhalb eines enums erstellt.

    die vehicleID bekommst du, wenn du das Fahrzeug erstellst, und kannst dann über diese id auch auf das Fahrzeug zugreifen.


    SQL
    FractionCars[i++][VehicleID] = CreateVehicle(ModelID,X,Y,Z,R,Color1,Color2,-1);//696


    wie sind denn ModellID, X, Y, Z usw. definert?


    stock bool: ExistCellPhoneNumber(number)
    {
    for(new i; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    if(SpielerInfo[i][handynr]==number) return true;
    }
    }
    return false;
    }

    lass die spalte "VehicleID" aus der MySQL-Tabelle raus, die ist irreführend, da die VehicleID erst beim Erstellen des Fahrzeugs erzeugt wird:



    stock LoadFahrzeuge()
    {
    new
    i,
    str[512];
    mysql_query("SELECT * FROM `autohaus_autos`");
    mysql_store_result();
    while(mysql_fetch_row(str))
    {
    sscanf(str, "p<|>dffffdddd",ModelID,X,Y,Z,R,Color1,Color2,Price,Delete);
    FractionCars[i++][VehicleID] = CreateVehicle(ModelID,X,Y,Z,R,Color1,Color2,-1);//696
    }
    mysql_free_result();
    printf("DEBUG: %s",str);
    return 1;
    }

    kernschmelze ist nun bestätigt:



    tagesschau.de

    numargs() ist eine native funktion in pawn.
    sie hat als rückgabewert die anzahl der parameter der funktion, von der sie aufgerufen wird.
    die benutzung dieser funktion macht eigentlich nur sinn, wenn man die anzahl der parameter bei der deklaration einer funktion nicht festlegt, also z.b:



    stock Addieren(...) //"..." steht für nicht definierte anzahl an parametern
    {
    new
    ergebnis;
    for(new i; i<numargs(); i++) //die anzahl der durchläufe entspricht also der anzahl der parameter
    {
    ergebnis+=getarg(i); //getarg(i) holt sich den wert des i-ten parameters
    }
    return ergebnis;
    }


    benutzung:



    Addieren(5, 2, 87); //beliebig viele parameter möglich


    ergibt dann 94.

    schleife+return ist sinnlos, weil das "return" die funktion nach dem ersten durchlauf beendet, also:



    public Nummernschild()
    {
    for(new i = 0; i < sizeof(PolizeiVehs); i++)
    {
    SetVehicleNumberPlate(PolizeiVehs[i], "LSPD");
    SetVehicleToRespawn(PolizeiVehs[i]);
    }
    return 0;
    }


    public OnPlayerStateChange(playerid, newstate, oldstate)
    {
    new scoreid = GetPlayerScore(playerid);
    // new vehicleid1 = GetPlayerVehicleID(vehicleid);
    new vehicleid = GetPlayerVehicleID(playerid);
    new vehiclemodel = GetVehicleModel(vehicleid);
    if(vehiclemodel == 444)
    {
    SendClientMessage(playerid,GREEN,"Fahre nun den Monster-Truck Pakour ab und Gewinne 10000$!!");
    SetPlayerCheckpoint(playerid,1168.9661,-2591.3164,12.4549,10.0);
    monstertruckbelohnung[playerid] = 1;
    }
    if(scoreid<5)
    {
    if(vehiclemodel == 425)
    {
    if (gTeam[playerid] == TEAM_ARMY)
    {
    RemovePlayerFromVehicle(playerid);
    SendClientMessage(playerid,ROT,"Dein Score ist zu niedrig um mit dem Hunter zu fliegen[mind.5 Score]!!");
    }
    }
    }
    return 1;
    }

    bei OnPlayerCommandText ist der unterschied, wenn du 1 zurückgibst heißt das so viel wie der command wurde erfolgreich ausgeführt. wenn du 0 zurückgubst, sagst du dem server, dass der command nicht erfolgreich ausgeführt wurde und du erhältst die meldung "SERVER: Unknown Command"