Beiträge von Kaliber

    Nur, weil du ein EOS da hinsetzt, ist der String nicht gelöscht.


    Du...das ist mir auch klar und das hat doch schon Jeffry in seinem Post geschrieben.


    Ich wollte damit nur sagen, dass man dadurch strcat nutzen kann oder auch alle anderen String-Funktionen und die behandeln das dann so, als ob der String "gelöscht" wurde...

    Also ich brauche nur das für die Tabelle , da bei INT nicht mehr als 3 Stellen angezeigt werden obwohl es 16 STellig ist.


    ...Eine Ip ist ein String, da du ja auch . drinnen hast ;)


    Jeffry:


    Das ist nicht nutzlos, das ist so als würdest du den String löschen (schnellere Alternative zu strdel) :)


    new x[] = "Hallo";
    x[0] = '\0';
    strcat(x,"Noob");
    print(x); //-> Noob

    Das ist dieses Interior:


    Code
    Caligulas Casino	1	2233.8032	1712.2303	1011.7632	Casino	Las Venturas, Strip


    Da kann man rechts so eine Treppe runter laufen und kommt dann hier hin:


    //Tresorraum:
    Interiorid: 1
    Pos: 2144.1746,1633.3329,993.5761


    mfg. :thumbup:

    zerstören lassen oder ?


    Richtig, macht es am besten so:


    //Oben im Skript
    new o1,o2;


    //Dann wo ihr die Obejkte erstellt:
    o1 = CreateObject(...); //Das erste Objekt
    //Hier die anderen
    o2 = CreateObject(...); //Hier das letzte Objekt


    //Unter OnFilterScriptExit
    for(new i=o1; i<=o2; i++) DestroyObject(i);


    Ich denke du arbeitest evtl mit einem Streamer dann einfach überall CreateDynamicObject und DestroyDynamicObject ;)


    mfg. :thumbup:

    Aber das Problem hatten wir schon öfter


    Also, nein das ist nicht normal, dann erstellst du die selben Objekte an der selben Position mehrmals :)


    Das kommt, wenn du z.B. nur einen gmx machst, anstatt einen richtigen Server Restart :)


    Oder wenn du Filterscripts öfters reloadst ohne dessen Objekte zu zerstören ;)


    mfg. :thumbup:

    Naja so zum Beispiel:


    new player_car[2][MAX_PLAYERS];


    //Dann wo er das car kauft:
    if(player_car[0][playerid]) return //hier hat er schon ein auto!
    player_car[0][playerid] = CreateVehicle(...); //hier z.B. flash erstellen
    player_car[1][playerid] = gettime()+60*60*3; //Hier nach 3std wirds gelöscht


    //Unter OnGameModeInit
    SetTimer("AutoKauf",10000,1);


    //Dann außerhalb
    forward AutoKauf();
    public AutoKauf()
    {
    for(new i; i<MAX_PLAYERS; i++)
    {
    if(!player_car[0][i]) continue;
    if((player_car[1][i]-gettime()) < 0)
    {
    DestroyVehicle(player_car[0][i]);
    player_car[0][i]=0;
    }
    }
    return 1;
    }


    mfg. :thumbup:


    //Edit: Hab was in der schleife vertauscht gehabt...
    //Edit²: Ja ups..danke Jeffry

    Es ist bis jetzt so, das der Nachricht er kommt, wenn ich los lasse, der Motor geht dann auch erst an, wenn ich los lasse .


    Ja...so wolltest du das doch auch :whistling:


    Dann drück dich besser aus :b


    Dann schreibs so:


    //Am besten noch oben:
    new bool:m_p[MAX_PLAYERS char];


    //Unter OnPlayerKeyStateChange
    if(newkeys & KEY_LOOK_BEHIND || newkeys & KEY_SUBMISSION)
    {
    if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return 1;
    if(!m_p{playerid}) SetTimerEx("@motor",3000,0,"i",playerid),m_p{playerid}=true;
    }


    //Dann außerhalb:
    @motor(i);@motor(i) return StartMotor(i),m_p{i}=false;


    mfg. :thumbup:

    Welchen Zünder muss ich X Sekunden halten und erst wenn ich loslasse geht der Motor an. Ich kenne kein Auto bei dem das so ist.


    ...und? :huh:


    Ich kenne es auch nicht, dass wenn ich einen gesuchten umbringe, er im Gefängnis landet...


    Aber er will es so:


    Wie mache ich das so, das man wenn man den Motor starten möchte, 3 Sekunden lang die Numpad 2 Taste gedrückt halten muss?


    Wenn du es mit einem Timer haben willst, dann muss man die Taste nur 1x drücken und der Motor geht nach 3sek an...


    Musst dich halt entscheiden, was du haben willst :rolleyes:

    Du packst das als erstes in eine Funktion:


    stock StartMotor(playerid)
    {
    if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, 0x9B0000FF, "Du sitzt in keinem Fahrzeug um den Motor zu starten!");
    if(GetPlayerVehicleSeat(playerid) == 0)
    {
    new car = GetPlayerVehicleID(playerid),m=GetVehicleModel(car);
    if(m == 509 || m == 481 || m == 510) SendClientMessage(playerid, 0x9B0000FF, "Du sitzt auf einem Fahrrad, das hat keinen Motor!");
    else if (Motor[car] == false)
    {
    GetVehicleParamsEx(car,engine,lights,alarm,doors,bonnet,boot,objective);
    SetVehicleParamsEx(car,VEHICLE_PARAMS_ON,lights,alarm,doors,bonnet,boot,objective);
    Motor[car] = true;
    SendClientMessage(playerid, 0x4B94FFFF, "{1AADD6}Gedanke: {F2F2F2}Sie drehen den Zündschlüssel, und schalten den Motor {36D61A}an!");
    }
    else
    {
    GetVehicleParamsEx(car,engine,lights,alarm,doors,bonnet,boot,objective);
    SetVehicleParamsEx(car,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
    Motor[car] = false;
    SendClientMessage(playerid, 0x4B94FFFF, "{1AADD6}Gedanke: {F2F2F2}Sie drehen den Zündschlüssel, und schalten den Motor {E83A3D}aus!");
    }
    }
    return 1;
    }


    //Dann oben im Skript:
    #define RELEASED(%0) \
    (((newkeys & (%0)) != (%0)) && ((oldkeys & (%0)) == (%0)))


    new motor_time[MAX_PLAYERS];


    //Unter OnPlayerKeyStateChange
    if(newkeys & KEY_LOOK_BEHIND || newkeys & KEY_SUBMISSION)
    {
    if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return 1;
    motor_time[playerid] = gettime()+3;
    }
    if(RELEASED(KEY_LOOK_BEHIND) || RELEASED(KEY_SUBMISSION))
    {
    if((motor_time[playerid]-gettime()) < 0 && motor_time[playerid] != 0 && GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
    {
    StartMotor(playerid);
    }
    motor_time[playerid]=0;
    }


    So sollte es klappen ^^