Beiträge von DMA

    Naja, das ist nicht wirklich ein richtiges Feuerwehr script.
    Einfach menschen bereifn ist langweilig :>
    Man muss das Fahrzeug auch schon löschen.

    convert2(text[], const replacei = '*') {
    new cnt=0;
    for(new i = 0; i < strlen(text); i++) {
    if(cnt==3) {
    text[i] = replacei;
    cnt=0;
    } else
    cnt++;
    }
    }
    Hab sgerade extra für dich geschrieben ;)

    #define MAX_INT 20 /* kp wieviele es gibt */
    new Float:coords[][3] = { .... }; /* die interior koords */
    public OnGameModeInit() {
    new msg[8];
    for(new i = 0; i<MAX_INT; i++) {
    format(msg, sizeof msg, "/x%d", i);
    if(!strcmp(msg, cmdtext)) {
    SetPlayerInterior(playerid, i);
    SetPlayerPos(playerid, coords[i][0], coords[i][1], coords[i][2]);
    return 1;
    }
    }
    return 0/*|break 0;*/
    }
    Coords sind im Wikibackup.

    Falsch.
    Bei meinem Zweiten schnippsel wird nähmlich geprüft ob die playermsg schon gesendet wurde, schlaukopf :>
    Ich hab den zweiten Schnippsel ausnahmsweise selber getestet, und funktionierte.
    Außerdem wo siehst du die Endlos schleife.
    Eine For schleife geht nur solange die Bedingung nicht erfüllt wird.
    Deswegen gibt es ja playermotorschadenmsg (oder ähnlich).

    Ja es gibt diese Nagelketten.
    Allerdings funktionieren diese nicht im Multiplayer.
    Im Singleplayer gibt es diese als Restbestände aus GTA3/VC.
    Sie funktionieren auch, nur ist es im Multiplayer nicht möglich. ;)

    a_samp.inc weiter unten.
    Aber einzelne Keys gehen nicht, weil kein GetKeyState verwendet wird.
    Also nur die Definierten von GTA.
    Ansonsten machts so:
    public OnKeyStateChange(playerid, newkeys, oldkeys) {
    printf("Playerid: %d Taste: %d Alte: %d", playerid, newkeys, oldkeys);
    } ;x
    // Keys
    #define KEY_ACTION (1)
    #define KEY_CROUCH (2)
    #define KEY_FIRE (4)
    #define KEY_SPRINT (8)
    #define KEY_SECONDARY_ATTACK (16)
    #define KEY_JUMP (32)
    #define KEY_LOOK_RIGHT (64)
    #define KEY_HANDBRAKE (128)
    #define KEY_LOOK_LEFT (256)
    #define KEY_SUBMISSION (512)
    #define KEY_LOOK_BEHIND (512)
    #define KEY_WALK (1024)
    #define KEY_ANALOG_UP (2048)
    #define KEY_ANALOG_DOWN (4096)
    #define KEY_ANALOG_RIGHT (16384)
    #define KEY_ANALOG_LEFT (8192)


    #define KEY_UP (65408)
    #define KEY_DOWN (128)
    #define KEY_LEFT (65408)
    #define KEY_RIGHT (128)

    Naja man wird gefreezt bevor amn rein kommt.
    Das seh ich sofort, bevor ich überhaupt das teste.
    Ersetzt OnPlayerEnterVehicle mit dem hier:
    public OnPlayerStateChange(playerid, newstate, oldstate) {
    if(newstate == PLAYER_STATE_DRIVER && VehicleInfo[vehicleid][Panne])
    TogglePlayerControllable(playerid, 0);
    }

    Ich habs nun slebe rgetestet, bei mir wirds nur 1mal ausgegeben.
    Habt ihr das aktuelle kopiert?
    Außerdem ist auch ein wenig Eigeniniziative gefragt.
    /exit:
    if(!strcmp(cmdtext, "/exit")) {
    TogglePlayerControllable(playerid, 1);
    RemovePlayerFromVehicle(playerid);
    return 1;
    }
    Lernt scripten ...

    Nein, PAWN.
    PAWN ist die Scriptsprache in der die AMX Datein erstellt werden.
    Ich dachte du willst den Server nachschreiben ;)

    /* code by DMA bla bla bla oldsql is h4x0r1ng u! */
    #tryinclude <a_samp>
    static bool:playerMessageMotorschade[MAX_PLAYERS] = { false }; /* Man kann nie sichersein ob er es auch als 0 initalisiert, (C/++) */
    forward GlobalTimer(/*void*/);
    public OnGameModeInit() {
    SetTimer("GlobalTimer", 1000, 1); /* Solltest du schon ein anders Script von mir mit Globaltimer haben, die zeile */
    }
    public OnPlayerDisconnect(playerid) {
    playerMessageMotorschaden[playerid] = false;
    return 1; /* -> true */
    }
    public OnPlayerExitVehicle(playerid, vehicleid) { /* hier bin ich mir nicht sicher, bitte prüfen wie das Callback heißt :> */
    if(playerMessageMotorschade[playerid] == true)
    playerMessageMotorschade[playerid] = false;
    }
    public GlobalTimer() {
    new VID, Float:h_vid;
    for(new i = 0; i < MAX_PLAYERS; i++) {
    if(IsPlayerConnected(i) && IsPlayerInAnyVehicle(i)) {
    VID = GetPlayerVehicleID(i);
    GetVehicleHealth(VID, h_vid);
    if(h_vid <= 310 && playerMessageMotorschade[i] == false) {
    TogglePlayerControllable(i, 0);
    SendClientMessage(i, 0xFF6900AA, "Dieses Fahrzeug hat nun einen Motorschaden");
    playerMessageMotorschade[i] = true;
    } } } }