Carrespawn

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Hallo Community,
    ich habe ein Carrespawn System alles funktioniert. Doch ich möchte das,
    wenn ein Spieler in einem Auto ist das dieses Fahrzeuge der benutzt wird
    NICHT gespawnt wird. Ich weiß leider nicht wie das geht.



    ocmd:carrespawn(playerid, params[])
    {
    if(!isPlayerAnAdmin(playerid,1)) return SendClientMessage(playerid,HELLROT,"AdmCmd: Du besitzt keine Rechte, um diesen Befehl zu benutzen!");
    new pID, n1[128], grund[128];
    format(n1,sizeof(n1),"%s hat alle Fahrzeuge respawnt.",SpielerName(playerid),SpielerName(pID),grund);
    SendClientMessageToAll(BAIGE,n1);
    for(new i = 1; i <= MAX_VEHICLES; i++)
    {
    SetVehicleToRespawn(i);
    }
    return 1;
    }


    mfG,
    Ien

    :) SWAGETTI & YOLONAISE!

    Einmal editiert, zuletzt von John_Sanclear ()

  • Was man dazu braucht sind 2 for-schleifen einmal um die fahrzeuge zu bekommen welche auf dem server vorhanden sind und einmal um die leeren zu bekommen.
    Für was rv[MAX_VEHICLES]; ?
    Das skript braucht ihrgend was um zu erkennen ob das fahrzeug mit leuten gefüllt ist oder nicht da es keine funktion gibt die das direkt abcheckt muss man das alles temporär speichern



    native IsValidVehicle(vehicleid);
    ocmd:carrespawn(playerid, params[])
    {
    if(!isPlayerAnAdmin(playerid,1)) return SendClientMessage(playerid,HELLROT,"AdmCmd: Du besitzt keine Rechte, um diesen Befehl zu benutzen!");
    new pID, n1[128], grund[128];
    format(n1,sizeof(n1),"%s hat alle Fahrzeuge respawnt.",SpielerName(playerid),SpielerName(pID),grund);
    SendClientMessageToAll(BAIGE,n1);
    new bool:rv[MAX_VEHICLES];
    for(new i; i < MAX_PLAYERS; ++i)if(IsPlayerInAnyVehicle(i))rv[GetPlayerVehicleID(i)]=true;
    for(new i; i < MAX_VEHICLES; ++i)
    if(!IsAValidVehicle(i) && rv[i])continue;
    SetVehicleToRespawn(i);
    }
    return 1;
    }

  • Bekomme diese Errors:



    C:\Dokumente und Einstellungen\Sevket\Desktop\German Deathmatch\gamemodes\Deathmatch.pwn(3331) : error 017: undefined symbol "IsAValidVehicle"
    C:\Dokumente und Einstellungen\Sevket\Desktop\German Deathmatch\gamemodes\Deathmatch.pwn(3332) : error 017: undefined symbol "i"
    C:\Dokumente und Einstellungen\Sevket\Desktop\German Deathmatch\gamemodes\Deathmatch.pwn(3333) : warning 209: function "ocmd_carrespawn" should return a value
    C:\Dokumente und Einstellungen\Sevket\Desktop\German Deathmatch\gamemodes\Deathmatch.pwn(3334) : error 010: invalid function or declaration
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    3 Errors.

    :) SWAGETTI & YOLONAISE!


  • 1 da du IsAValidVehicle nicht im skript hast das native und weil eine Klammer noch fehlt im code habe ich vergessen kannst ja selbst ergänzen

  • native IsValidVehicle(vehicleid);
    ocmd:carrespawn(playerid, params[])
    {
    if(!isPlayerAnAdmin(playerid,3)) return SendClientMessage(playerid,Rot,"AdmCmd: Du bist kein Admin!");
    new pID, n1[128], grund[128];
    format(n1,sizeof(n1),"AdmCmd: %s hat alle unbenutzen Fahrzeuge respawnt.",SpielerName(playerid),SpielerName(pID),grund);
    SendClientMessageToAll(Rot,n1);
    new bool:rv[MAX_VEHICLES];
    for(new i; i < MAX_PLAYERS; ++i)if(IsPlayerInAnyVehicle(i))rv[GetPlayerVehicleID(i)]=true;
    for(new i; i < MAX_VEHICLES; ++i){
    if(!IsValidVehicle(i) && rv[i])continue;
    SetVehicleToRespawn(i);
    }
    return 1;
    }


    Nächstes mal guck dir alles mal vernünftig an, dann merkst du das irgendwo ein Rechtschreibfehler ist. :) :thumbup:


    Beiträge:
    150 {X}
    300 {X}
    450 {X}
    600 { }