Problem - Autohaus

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
  • Huhu ihr lieben...
    Ich habe zurzeit, andauernd, dass Problem, wenn ich in den Totenkopf (für die Wiederbelebung) rein gehe, dann lande ich sofort im Autohaus (das "Wiederbelebungssytem" ist im Gamemode enthalten, das Autohaus-System ist ein FS).
    Was muss ich posten? bzw. was muss ich ändern, dass es sich nicht mehr überschneidet? (anscheinend, überschneiden sich die PickUps.)



    MfG,
    James.


  • public OnPlayerPickUpPickup(playerid, pickupid)
    {
    new string[64];
    if(pickupid==csPickup)
    {
    if(PlayerVehicle[playerid][0][pvModel] && PlayerVehicle[playerid][1][pvModel] && PlayerVehicle[playerid][2][pvModel] && PlayerVehicle[playerid][3][pvModel] && PlayerVehicle[playerid][4][pvModel]) { return SendClientMessage(playerid,COLOR_GREEN,"{33AA33}AUTOHAUS{FFFF00}:{33AA33} {FFFFFF}Du besitzt bereits 5 Fahrzeuge! Du musst erst einen verkaufen, wenn du einen anderen kaufen willst."); }
    SetPlayerVirtualWorld(playerid,playerid); //jeder Spieler hat die Virtuelle welt von seiner spielerid. so hat jeder seine eigene virtuelle welt, und so gibt es auch kein Weg dass 2 spieler sich treffen, während sie wagen auswählen =)
    TogglePlayerControllable(playerid,0);
    SetPlayerPos(playerid,VehicleReviewData[vrVehiclePos][0],VehicleReviewData[vrVehiclePos][1],(VehicleReviewData[vrVehiclePos][2]-5));
    SetPlayerCameraPos(playerid,VehicleReviewData[vrCameraPos][0],VehicleReviewData[vrCameraPos][1],VehicleReviewData[vrCameraPos][2]);
    SetPlayerCameraLookAt(playerid,VehicleReviewData[vrVehiclePos][0],VehicleReviewData[vrVehiclePos][1],VehicleReviewData[vrVehiclePos][2]);


    ShowingVehicle[playerid]=0;
    ReviewingVehicleID[playerid]=CreateVehicle(ShopVehicle[0][svModel],VehicleReviewData[vrVehiclePos][0],VehicleReviewData[vrVehiclePos][1],VehicleReviewData[vrVehiclePos][2],VehicleReviewData[vrVehiclePos][3],-1,-1,60);
    SetVehicleParamsForAll(ReviewingVehicleID[playerid],1,1);
    SetVehicleVirtualWorld(ReviewingVehicleID[playerid],playerid);
    SendClientMessage(playerid,COLOR_GREEN,"{33AA33}AUTOHAUS{FFFF00}:{33AA33} Verwende {FFFF00}Rechte & Linke Maustaste{33AA33} um dir die Fahrzeuge auswählen zu können!");
    SendClientMessage(playerid,COLOR_GREEN,"{33AA33}AUTOHAUS{FFFF00}:{33AA33} Verwende {FFFF00}Enter/Taste F{33AA33} um das Autohaus verlassen!");
    SendClientMessage(playerid,COLOR_GREEN,"{33AA33}AUTOHAUS{FFFF00}:{33AA33} Verwende die {FFFF00}Leertaste (Space){33AA33}, um das Fahrzeug zu kaufen, die du dir ansiehst!");
    format(string,sizeof(string),"~w~%s~n~~g~$%d",VehicleName[ShopVehicle[0][svModel]-400],ShopVehicle[0][svCost]);
    GameTextForPlayer(playerid,string,30000,4);
    return 0;
    }
    return 1;
    }

    (AH-System)

  • hat die ID 1210
    public OnFilterScriptInit()

    {
    new File:csfile,readline[256],bpModel;
    if(!fexist("carshop.cfg")) { //Die PickupID beim Shop, die Pickup Positionen und die Spawnpositionen vom Wagen, die der Spieler neulich gekauft hat
    csfile=fopen("carshop.cfg",io_write);
    fwrite(csfile,"shopPickup=1210\r\nbuyposX=0.0\r\nbuyposY=0.0\r\nbuyposZ=0.0\r\ncarspawnX=0.0\r\ncarspawnY=0.0\r\ncarspawnZ=0.0\r\ncarspawnA=0.0"); // <--
    fclose(csfile); }
    else {
    csfile=fopen("carshop.cfg",io_read);
    while(fread(csfile,readline)) {
    if(!strcmp(readline,"shopPickup=",true,11)) { bpModel=strval(strpart(readline,1,'=')); }
    else if(!strcmp(readline,"buyposX=",true,8)) { bpcoords[0]=floatstr(strpart(readline,1,'=')); }
    else if(!strcmp(readline,"buyposY=",true,8)) { bpcoords[1]=floatstr(strpart(readline,1,'=')); }
    else if(!strcmp(readline,"buyposZ=",true,8)) { bpcoords[2]=floatstr(strpart(readline,1,'=')); csPickup=CreatePickup(bpModel,2,bpcoords[0],bpcoords[1],bpcoords[2]); }
    else if(!strcmp(readline,"carspawnX=",true,10)) { carspawn[0]=floatstr(strpart(readline,1,'=')); }
    else if(!strcmp(readline,"carspawnY=",true,10)) { carspawn[1]=floatstr(strpart(readline,1,'=')); }
    else if(!strcmp(readline,"carspawnZ=",true,10)) { carspawn[2]=floatstr(strpart(readline,1,'=')); }
    else if(!strcmp(readline,"carspawnA=",true,10)) { carspawn[3]=floatstr(strpart(readline,1,'=')); } }
    fclose(csfile); }

  • Der Totenkopf wird nicht unter OnPlayerPickupPickup , sondern er wird aufgerufen wenn der Spieler getötet wurde. Bei dem Befehl /wiederbeleben, kann er nur wiederbeleben, wenn er bei seinen Todeskoordinaten befindet, welche auch gespeichert werden. // also er ließt es von den Koordinaten ab, und nicht, wann er am Checkpoint ist.



    if (strcmp(cmd, "/wiederbeleben", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, COLOR_GRAD1, "Verwendung: /wiederbeleben [PlayerID]");
    return 1;
    }
    if (PlayerInfo[playerid][pMember] == 4 || PlayerInfo[playerid][pLeader] == 4 || PlayerInfo[playerid][pAdmin] == 2000)
    {
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i) && PlayerInfo[i][pTod] == 1 && PlayerToPoint(5.0,playerid,PlayerInfo[i][pTx],PlayerInfo[i][pTy],PlayerInfo[i][pTz]))
    {
    new pname[256];
    GetPlayerName(i, pname, 256);
    format(string, 256, "» Du hast %s, wiederbelebt!",pname);
    SendClientMessage(playerid, COLOR_WRED, string);
    GetPlayerName(playerid, pname, 256);
    format(string, 256, "» Paramedic %s hat dich wiederbelebt!",pname);
    SendClientMessage(i, COLOR_WRED, string);
    SetPlayerSkin(i,GetPVarInt(i,"tot_Skin"));
    PlayerInfo[i][pTod] = 0;
    pIstTot[i] = 0;
    SetPlayerPos(i,PlayerInfo[i][pTx],PlayerInfo[i][pTy],PlayerInfo[i][pTz]);
    SetCameraBehindPlayer(i);
    DestroyPickup(TotenKopf[i]);
    TogglePlayerControllable(i, 1);
    PlayerInfo[i][pTx] = 0.0;
    PlayerInfo[i][pTy] = 0.0;
    PlayerInfo[i][pTz] = 0.0;
    new Float:tempheal;
    GetPlayerHealth(i,tempheal);
    SetPlayerHealth(i,15.0);
    SetPlayerColor(i, COLOR_ZIVI);
    }
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_GRAD1, "Du hast keine Berechtigung.");
    }
    }
    return 1;
    }

  • Sehr merkwürdig. Benutzt du noch andere Filterscripts die vielleicht damit in Verbindung stehen können?


    Ansonsten such mal mit STRG+F nach der ID des Totenkopfs in deinem Script, vielleicht kommt diese mehrfach vor.

  • Ansonsten such mal mit STRG+F nach der ID des Totenkopfs in deinem Script, vielleicht kommt diese mehrfach vor.

    Dies habe ich schon versucht, die ID kommt jedoch nur 1x vor.


    Ich habe nur noch ein Uhrzeit-System, Fahrzeug-System & AntiCheat als FS. Diese können aber damit nicht in Verbindung stehen, da dort ganz andere Sachen abgefragt werden - zudem ist es ja immer am Totenkopf, somit muss es ja am GM liegen.

  • Hier:

    public OnPlayerPickUpPickup(playerid, pickupid)
    {
    if(pickupid == GELDSACK)
    {
    if(atmrob == 1)
    {
    SendClientMessage(playerid,COLOR_GRAD1,"Der Tresor wurde gerade erst ausgeraubt!");
    return 1;
    }
    else
    {
    new string[128];
    new BANKGELD = 60000 + random(80000); // Geld / Checkpoint
    GELDWASCHE[playerid] = BANKGELD;
    format(string, sizeof(string), ">* Du hast jetzt $%d in deiner Tasche, fahr zur Geldwäsche. *<",BANKGELD);
    SendClientMessage(playerid, COLOR_LIGHTGREEN, string);
    SetPlayerCheckpoint(playerid, -2179.1943,715.7703,53.8909,8.0);
    atmrob = 1;
    SetTimer("RobATM_Reset",3600000,0); // Nach 60 Minuten erst wieder ausrauben
    return 1;
    }
    }
    return 1;
    }

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen