Beiträge von pierre65

    Ich habs über
    GetVehicleParamsEx(vehicleid,engine,lights,alarm,doors,bonnet,boot,objective);
    SetVehicleParamsEx(vehicleid,VEHICLE_PARAMS_ON,lights,alarm,doors,bonnet,boot,objective);

    Und das funktioniert problemlos.... Aber ich lasse den Motorstatus über Variablen speichern.
    Im SA-MP Wiki find ich auch keine GetVehicleParam Funktion (http://wiki.sa-mp.com/wiki/GetVehicleParamsEx würde sonst bei ähnliche Befehle drin stehen ^^), nutzt du eine Include oder hast du die Funktion selbst geschrieben?

    Ausführen würde er folgenden MySql Befehl:

    SQL
    INSERT INTO `privatautos`(`Spielername`,`Name`,`modelid`,`Nummernschild`,`AutoLeben`,`PrivatAutoPosX`,`PrivatAutoPosY`,`PrivatAutoPosZ`,`PrivatAutoPosA`,`Farbe1`,`Farbe2`)VALUES('%s','%s','%i','1000.00','%f','%f','%f','%f','2','2') `Paintjob`,`Spoiler`,`Hood`,`Roof`,`Sideskirt`,`Lamps`,`Nitro`,`Wheels`,`Stereo`,`Hydraulics`,`FrontBumper`,`RearBumper`,`VentRight`,`VentLeft`)VALUES('0','0','0','0','0','0','0','0','0','0','0','0','0','0')


    Wäre kein gültiger SQL Befehl....
    Lass im ersten format (query) einfach alle spaltennamen rein lesen also:
    format(query, sizeof query, "`Spielername`,`Name`,`modelid`,`Nummernschild`,`AutoLeben`,`PrivatAutoPosX`,`PrivatAutoPosY`,`PrivatAutoPosZ`,`PrivatAutoPosA`,`Farbe1`,`Farbe2`,`Paintjob`,`Spoiler`,`Hood`,`Roof`,`Sideskirt`,`Lamps`,`Nitro`,`Wheels`,`Stereo`,`Hydraulics`,`FrontBumper`,`RearBumper`,`VentRight`,`VentLeft`");
    Im query2 speicherst du alle Values dazu, die es gibt:
    format(query2,sizeof query2, "'%s','%s','%i','1000.00','%f','%f','%f','%f','2','2','0','0','0','0','0','0','0','0','0','0','0','0','0','0'", /* Hier auch noch deine Variablen einsetzen... */);
    Und senden tust du das ganze mit
    mysql_query("INSERT `privatautos` (%s) VALUES (%s)", query,query2);


    Sollte danach funktionieren ;)

    kaufauto = CreateVehicle[AutosZumVerkauf[modelid],AutosZumVerkauf[PosX],AutosZumVerkauf[PosY],AutosZumVerkauf[PosZ],-1,-1);
    Was solln das machen???
    Statt ( hast du [ benutzt, daran liegts...


    // Edit: Der andere Error entseht durch
    CreatePickup(pickupid,1,Autohaus[PosX],Autohaus[PosY],Autohaus[PosZ],-1);
    Du hast die Variable "pickupid" nicht generiert.


    new memberskin[MAX_FRAKS][membskin] = {
    {0, 23}, //Zivilist
    {1, 265}, //LSPD Member
    {1, 266}, //LSPD Member
    {1, 267}, //LSPD Member
    {2, 282}, //SFPD Member
    {2, 284}, //SFPD Member
    {3, 287}, //Army Member
    {3, 179}, //Army Member
    {4, 274}, //Medic Member
    {4, 275}, //Medic Member
    {4, 276}, //Medic Member
    {5, 124}, //LCN Member
    {5, 111}, //LCN Member
    {5, 112}, //LCN Member
    {6, 126}, //Yakuza Member
    {6, 186}, //Yakuza Member
    {6, 203}, //Yakuza Member
    {6, 204}, //Yakuza Member
    371 = {7, 17}, //Regierung Member // <-------------- Da ist glaub auch der fehler?
    {7, 164}, //Regierung Member
    {7, 165}, //Regierung Member
    {8, 294}, //Hitmen Member
    {8, 299}, //Hitmen Member
    {9, 186}, //San News Member
    {10, 7}, //Taxi Member
    {10, 188}, //Taxi Member
    {10, 253}, //Taxi Member
    {11, 11}, //Fahrschule Member
    {11, 172}, //Fahrschule Member
    {11, 171}, //Fahrschule Member
    {12, 269}, //Grove Street Member
    {12, 270}, //Grove Street Member
    {12, 271}, //Grove Street Member
    {13, 102}, //Ballas Member
    {13, 103}, //Ballas Member
    {13, 104}, //Ballas Member
    {14, 115}, //Scarfo Member
    {14, 116}, //Scarfo Member
    {15, 286}, //FBI Member
    {15, 163}, //FBI Member
    {15, 164}, //FBI Member
    {15, 166}, //FBI Member
    {16, 26}, //Terroristen Member
    {16, 33}, //Terroristen Member
    {16, 67}, //Terroristen Member
    {17, 285}, //SWAT Member
    {18, 50}, //ADAC Member
    {18, 42} //ADAC Member
    401 = }; // Ich glaube da hast du was falsch?

    Pass diesen Befehl an deine Variablen an und gut ist... Funktioniert super,
    es gibt nämlich 2 Möglichkeiten in einem bestimmten Gebiet zu sein, da es -/+ Koordinaten gibt ;)

    public IsPlayerInGebiet(playerid) {
    new var = -5;
    for(new i=0;i< sizeof Gebiete;i++) {
    new Float:GetX,Float:GetY,Float:GetZ;
    GetPlayerPos(playerid,GetX,GetY,GetZ);


    if( GetX <= Gebiete[i][gMinX] && GetX >= Gebiete[i][gMaxX] ) {
    if ( GetY <= Gebiete[i][gMinY] && GetY >= Gebiete[i][gMaxY] ) { var = i; }
    }


    if( GetX >= Gebiete[i][gMinX] && GetX <= Gebiete[i][gMaxX] ) {
    if ( GetY >= Gebiete[i][gMinY] && GetY <= Gebiete[i][gMaxY] ) { var = i; }
    }
    }
    return var;
    }

    Was MinX meint ist das:
    if(strcmp(cmdtext,"/motor")==0)
    {
    if(!IsPlayerInAnyVehicle(playerid)) return SCM(playerid,Rot,"Du sitzt in keinem Fahrzeug!");
    if(GetPlayerVehicleID(playerid) == 481 || GetPlayerVehicleID(playerid) == 509 || GetPlayerVehicleID(playerid) == 510) return SCM(playerid,Rot,"Ein Fahrrad hat keinen Motor...");
    new vehicle;
    vehicle = GetPlayerVehicleID(playerid);
    new Float:vHealth;
    if(GetVehicleParam(vehicle,MOTOR)==0)
    {
    if(GetVehicleHealth(vehicle,vHealth)>500)
    {
    //Wenn Fahrzeug unter 500 HP hat
    SCM(playerid,Rot,"Dein Fahrzeug ist zu kaputt um es zu starten! Lasse es reparieren.");
    return 1; // Wär unnötig, da die Schleife danach so oder so aufhört...
    }
    else
    {
    //Wenn Motor aus
    SCM(playerid,Grau,"Du versuchst den Motor zu starten...");
    SetVehicleParam(vehicle,MOTOR,1); //Motor anschalten
    SCM(playerid,Blau,"Motor gestartet!");
    return 1; // Wär genau so unnötig, da die Schleife danach so oder so aufhört...
    }
    }
    else if(GetVehicleParam(vehicle,MOTOR)==1)
    {
    //Wenn Motor an
    SetVehicleParam(vehicle,MOTOR,0); //Motor anschalten
    SCM(playerid,Blau,"Motor abgeschaltet.");
    }
    return 1; // <-------------------- fehlt
    }

    Dann überprüfst du beim Motor Befehl ebend ob das Auto ein Totalschaden hat, wenn ja startet Motor ebend nicht...
    Außerdem kannst du das überprüfen ob das Auto unter 35% hat und dann auf 35% zurücksetzen

    Nope nur bei Connect (SettimerEx) und bei Disconnect (KillTimer) und halt die Variable erstellen, damit der Server weiss welchen Timer er killen muss ^^

    Das was ich postet habe funktioniert so:
    Spieler connected -> Timer wird gestartet der alle 60 Sekunden die funktion Payday mit dem Parameter "playerid" übergibt.
    Spieler disconnected -> Timer wird wieder gekillt damit keine weiteren Punkte dazu kommen.
    Musst einfahc nur noch überprüfen ob Payday == 60 ist^^
    Und ja das wars schon... Payday System ist eig. schon recht simple. ^^


    // Unter Includes:
    new payday[MAX_PLAYERS];


    public OnPlayerConnect(playerid) {
    payday[playerid] = SetTimerEx("PayDay", 60000, 1, "i", playerid);
    return 1;
    }


    public OnPlayerDisconnect(playerid) {
    KillTimer(payday[playerid]);
    return 1;
    }


    // Edit: etwas vergessen -_-

    Upps sorry das hab ich gerade garnicht beachtet, hab das jetzt einfach so aus Gefühl her raus geschrieben. ^^
    Aber danach sollte es eigentlich funktionieren, da wo <= 35 steht ist die %-Zahl ab wann das Auto einen "Totalschaden" hat,
    also wo der Motor nicht mehr angehen "würde".

    Nein ist kein Bug, du musst die Transparenz etwas Geringer machen... Das ist die Farbe hinten FF
    0x00FF00FF = Grün ohne Transparenz (kann auch passieren das die Map grün wird)
    0x00FF00BB = Etwas durchsichtig (sollte eigentlich dann nicht mehr passieren)
    Nutz den SAMP Colorpicker kann ich nur empfehlen. ;)