Beiträge von Oskaar1994

    Naja du könntest mit GetPlayerVehicleID arbeiten. Also einmal fragst du deine VehicleID ab und einmal die des Bots, wenn sie übereinstimmt bisst du in dem Auto eines Bots. Und soweit ich weiß können Bots nicht aus dem Fahrzeug gezogen werden.

    Du hast das doch sicher mit einem Textdraweditor erstellt ? Da gibt es eigentlich immer die Möglichkeit die "Art" des Textdraws von Global auf Player zu stellen.

    Ich würde es so in der Art machen:


    new nametag[MAX_PLAYER_NAME+6];new name[MAX_PLAYER_NAME]; GetPlayerName(playerid,name);format(nametag,sizeof(nametag)"[VRP]%s",name);SetPlayerName(playerid,nametag);
    UPS da ware andere schneller :D

    Mache es so :
    stock isAdmin(playerid, adminlevel) { if(SpielerInfo[playerid][pAdminlevel] >= adminlevel) return 1;
    return 0; }
    Ich weiß nicht wieso aber irgendwie klappt der Zeilenumbruch nicht so wirklich, aber das kannst du ja ändern :)

    Nein, dann würde es z.B 5ten den Eintrag nehmen, aber nicht den 5ten Eintrag bei dem diese Kondition :
    (cInfo[i][besitzer] == sInfo[playerid][id0]erfüllt ist.
    *edit* Ich bin schon etwas weiter, aber es funktioniert noch nicht ganz:
    if(dialogid==80){
    if(response){
    new Float:vehX,Float:vehY,Float:vehZ;
    GetPlayerPos(playerid,vehX,vehY,vehZ);
    for(new i=listitem;i<sizeof(cInfo);i++){
    if(cInfo[i][besitzer] != sInfo[playerid][id0]) continue;
    SetVehiclePos(cInfo[i][id_x],vehX,vehY+2,vehZ);
    }
    }
    }

    Hey,
    könnte mir jemand bei einer Schleife helfen ? Mein Ziel ist es einen bestimmten Eintrag aus einem Enum zu bekommen. Nehmen wir als Beispiel den 5ten Eintrag bei dem diese Kondition:
    cInfo[i][besitzer] == sInfo[playerid][id0] erfüllt ist. Ich habe schon etwas probiert, aber das ganze funktioniert nicht.
    if(dialogid==80){
    if(response){
    new Float:vehX,Float:vehY,Float:vehZ;
    GetPlayerPos(playerid,vehX,vehY,vehZ);
    for(new i=0;i<sizeof(cInfo);i++){
    if(cInfo[i][besitzer] == sInfo[playerid][id0]) continue;
    if(i!=listitem) continue;
    SetVehiclePos(cInfo[i][id_x],vehX,vehY+2,vehZ);
    }
    }
    }
    Ich hoffe man versteht auf was ich hinaus will. Und statt dem 5ten Eintrag halt immer den, der die Nummer des Listitems "besitzt".

    Ich hatte ja schon seit Tagen Probleme mit OnPlayerKeyStateChange, z.B dass einfach nichts passiert wenn ich eine Taste drücke. Jetzt stehe ich vor einem neuen Problem. Jedes Callback endet ja mit einer Klammer und die meisten mit einem return 1; nur ich bekomme immer den Fehler Invalid function or declaration bei return 1; unter OnPlayerKeyStateChange. Selbst wenn sonst kein Code in dem Callback steht. Wenn ich das return 1; entferne ist der Fehler weg und ich bekomme auch keine Warnung, was ich komisch finde weil sonst heißt es ja immer the function should return a value. Hatte noch jemand außer ich schonmal das Problem ?

    Immer wenn ich mit dem Editor ein Previewmodel erstelle und auf exportieren klicke steht im Code nichts von Previews nur der Code vom eigentlichen Textdraw.
    *edit* So habe jetzt eins mit einem Textdraweditor erstellt, es funktioniert auch auf meinem Server aber das andere immer noch nicht :
    SkinTest = CreatePlayerTextDraw(playerid,303.000000, 142.000000, "New Textdraw");
    PlayerTextDrawBackgroundColor(playerid,SkinTest, 255);
    PlayerTextDrawFont(playerid,SkinTest, 5);
    PlayerTextDrawLetterSize(playerid,SkinTest, -0.129999, -0.700000);
    PlayerTextDrawColor(playerid,SkinTest, -1);
    PlayerTextDrawSetOutline(playerid,SkinTest, 0);
    PlayerTextDrawSetProportional(playerid,SkinTest, 1);
    PlayerTextDrawSetShadow(playerid,SkinTest, 1);
    PlayerTextDrawUseBox(playerid,SkinTest, 1);
    PlayerTextDrawBoxColor(playerid,SkinTest, -16711681);
    PlayerTextDrawTextSize(playerid,SkinTest, -200.000000, 249.000000);
    PlayerTextDrawSetPreviewModel(playerid, SkinTest, 74);
    PlayerTextDrawSetPreviewRot(playerid, SkinTest, 0.000000, 0.000000, 0.000000, 1.000000); Habe es auch schon ohne [playerid] probiert.

    Leider geht gerade garnichts mehr, egal ob ein oder mehrere Spieler. Das gleiche gillt auch für if(newkeys == (KEY_NO) ){ und if(newkeys & (KEY_NO) ){
    if(newkeys == (KEY_NO) ){
    if(GetPlayerState(playerid)== 2) {
    new vID=GetPlayerVehicleID(playerid),tmp_engine,tmp_lights,tmp_alarm,tmp_doors,tmp_bonnet,tmp_boot,tmp_objective;
    GetVehicleParamsEx(vID, tmp_engine, tmp_lights, tmp_alarm, tmp_doors, tmp_bonnet, tmp_boot, tmp_objective);
    new id = GetMyCarID(vID);
    if(tmp_engine==1){
    tmp_engine = 0;
    GameTextForPlayer(playerid, "~r~Engine turned off", 2000, 3);
    if(IsPrivateCar(vID)){
    new ownertext[128];
    format(ownertext,sizeof(ownertext),"{FFFFFF}%s\n{FF0000}Owner %s",GetVehicleName(cInfo[id][id_x]),getPlayerName(playerid));
    ownedtext[cInfo[id][id_x]] = Create3DTextLabel( ownertext, COLOR_WHITE, 0.0, 0.0, 0.0, 50.0, 0, 1 );
    Attach3DTextLabelToVehicle( ownedtext[cInfo[id][id_x]] ,cInfo[id][id_x], 0.0, 0.0, 0.5);
    }
    }else{
    //if(FuelState[vID] == 0) return 0;
    tmp_engine = 1;
    GameTextForPlayer(playerid, "~r~Engine turned on", 2000, 3);
    if(IsPrivateCar(vID)){
    Delete3DTextLabel(ownedtext[cInfo[id][id_x]]);
    }
    }
    SetVehicleParamsEx(vID, tmp_engine, tmp_lights, tmp_alarm, tmp_doors, tmp_bonnet, tmp_boot, tmp_objective);
    }
    }
    ManualVehicleEngineAndLights(); habe ich auch unter OnGameModeInit

    Hey,
    habe ein kleines Problem mit meinem Motor System. Eigentlich funktioniert es einwandfrei. Wenn man die Taste 'n' drückt soll der Motor ein/ausgeschaltet werden. Wenn man alleine auf dem Server ist klappt alles gut, nur wenn mehr als eine Person auf dem Server ist, funktioniert es nicht mehr. Dann funktioniert entweder garnichts oder man muss die Taste 1000mal drücken. Was mache ich falsch ?
    if(newkeys == (KEY_NO) )
    {
    if(GetPlayerState(playerid)!=PLAYER_STATE_DRIVER)return 1;
    new vID=GetPlayerVehicleID(playerid),tmp_engine,tmp_lights,tmp_alarm,tmp_doors,tmp_bonnet,tmp_boot,tmp_objective;
    GetVehicleParamsEx(vID, tmp_engine, tmp_lights, tmp_alarm, tmp_doors, tmp_bonnet, tmp_boot, tmp_objective);
    new id = GetMyCarID(vID);
    if(tmp_engine==1){
    tmp_engine = 0;
    GameTextForPlayer(playerid, "~r~Engine turned off", 2000, 3);
    new ownertext[128];
    format(ownertext,sizeof(ownertext),"{FFFFFF}%s\n{FF0000}Owner %s",GetVehicleName(cInfo[id][id_x]),getPlayerName(playerid));
    ownedtext[cInfo[id][id_x]] = Create3DTextLabel( ownertext, COLOR_WHITE, 0.0, 0.0, 0.0, 50.0, 0, 1 );
    Attach3DTextLabelToVehicle( ownedtext[cInfo[id][id_x]] ,cInfo[id][id_x], 0.0, 0.0, 0.5);
    }else{
    //if(FuelState[vID] == 0) return 0;
    tmp_engine = 1;
    GameTextForPlayer(playerid, "~r~Engine turned on", 2000, 3);
    Delete3DTextLabel(ownedtext[cInfo[id][id_x]]);
    }
    SetVehicleParamsEx(vID, tmp_engine, tmp_lights, tmp_alarm, tmp_doors, tmp_bonnet, tmp_boot, tmp_objective);
    }

    Habe bis jetzt das:
    if(dialogid==80){
    if(response){
    new Float:vehX,Float:vehY,Float:vehZ;
    GetPlayerPos(playerid,vehX,vehY,vehZ);
    SetVehiclePos(cInfo[listitem][id_x],vehX,vehY+2,vehZ);
    }
    }
    Das funktioniert logischerweiße nur wenn ein Spieler online ist, da die Autos immer erst spawnen wenn ein Spieler connectet. Ich muss das irgendwie in eine Schleife einbauen also z.B. wenn ich das 5te Listitem anklicke soll es das 5te Fahrzeug, dass mir gehört zu mir teleportieren. Habe da etwas gemacht, aber das funktioniert nicht:
    if(dialogid==80){
    if(response){
    new Float:vehX,Float:vehY,Float:vehZ;
    GetPlayerPos(playerid,vehX,vehY,vehZ);
    for(new i=listitem;i<sizeof(cInfo);){
    if(cInfo[i][besitzer] == sInfo[playerid][id0]) continue;
    SetVehiclePos(cInfo[i][id_x],vehX,vehY+2,vehZ);
    }
    }
    }