Beiträge von Templer

    Die PWN Hexfarbe sieht ja so als Beispiel aus:
    0xRRGGBBAA
    R ... Rot (Wieviel an Rot die Farbe haben soll)
    G ... Grün (Wieviel an Grün die Farbe haben soll)
    B ... Blau (Wieviel an Blau die Farbe haben soll)
    A ... Alpha (Wieviel an Sichtbarkeit die Farbe haben soll)


    Die Messwerte sind normalerweise von 0 - 255, in HexZahlen ist der Farbraum aber so von 00 - FF.
    Aus dem Grund, da die Zahl 0 - 255 in Dezimalwerte angegeben ist und das andere in Hexadecimal.


    Hexadecimal Schema: 00 - 11- 22 - 33 - 44 - 55 - 66 -77 - 88 -99 -AA - BB - CC - DD - EE - FF
    Prozent Schema: 0% - ~6% - ~19% - 25% - ~31% - ~38% - ~44% - 50% - ~56% - ~63% - ~69% - 75% - ~81% - ~88% - ~94% - 100%
    Also wäre die Farbe Rot bei diesem Beispiel ...


    0xFF0000FF ganz sichtbar
    0xFF000077 halb sichtbar
    0xFF000000 unsichtbar

    Also, diese Methode funktioniert, da ich Sie selber verwende (um den SetVehicePos Bug zu umgehen), jedoch wäre es empfehlenswert als Timer kurz zu starten, da dieses Callback auch aufgerufen wird wenn das Fahrzeug brennt und es sollte ja eigentlich zu ende brennen ^^.
    new MyCar;


    forward RespawnMyCar(vehicleid);


    public OnGameModeInit()
    {
    MyCar = CreateVehicle(560, 12345.0, 12345.0, 12345.0, 12345.0, 45, 23, -1);
    return 1;
    }


    public OnVehicleDeath(vehicleid)
    {
    if(vehicleid == MyCar) SetTimerEx("RespawnMyCar", 3500, 0, "d", vehicleid);
    return 1;
    }


    public RespawnMyCar(vehicleid)
    {
    DestroyVehicle(vehicleid);
    MyCar = CreateVehicle(560, 12345.0, 12345.0, 12345.0, 12345.0, 45, 23, -1);
    return true;
    }

    Schau am besten unter OnPlayerRequestClass nach, denn wenn wegen dem werden auch die KameraPositionen verschwinden bzw. Setze die KameraPositionen dort rein mit den Abfragen wie "Ob Spieler Eingeloggt ist" und "Spieler bereits Registriert/Neu ist".

    Ne sry, geht leider nur so:
    stock PlayerBenzin(vehicle)
    {
    new gas[16];
    if(Gas[vehicle] == 1) format(gas, sizeof(gas), "~r~Leer");
    if(Gas[vehicle] == 3) format(gas, sizeof(gas), "~g~Voll");
    if(Gas[vehicle] == 2) format(gas, sizeof(gas), "~y~Halb Voll");
    return gas;
    }

    Geile Klammertechnik, gibt es die bei Kik?... Klammern gehen immer zuerst auf { und dann wieder zu } und ned umgekehrt.
    public OnPlayerRequestClass(playerid, classid)
    {
    SetPlayerPos(playerid,2134.5515,1441.3939,10.8203);
    SetPlayerFacingAngle (playerid,697.6796);
    SetPlayerCameraPos(playerid,2028.7977,1342.8109,10.8203);
    SetPlayerCameraLookAt(playerid,2040.2272,1342.6509,10.6719
    switch(classid)
    {
    case 0,1,2,3,4:
    {
    gTeam[playerid] = TEAM_GROVE;
    }
    case 5,6,7:
    {
    gTeam[playerid] = TEAM_BALLAS;
    }
    case 8,9,10:
    {
    gTeam[playerid] = TEAM_VAGOS;
    }
    case 11,12,13:
    {
    gTeam[playerid] = TEAM_LCN;
    }
    case 14,15,16:
    {
    gTeam[playerid] = TEAM_TRIADEN;
    }
    case 17,18,19:
    {
    gTeam[playerid] = TEAM_COP;
    }
    default: return 1;
    }
    }

    public OnPlayerCommandText(playerid, cmdtext[])
    {
    if( !strcmp("/infernus", cmdtext, true) )
    {
    new Float:Position[4];
    if( GetPlayerVehicleID(playerid) )
    {
    GetVehiclePos(GetPlayerVehicleID(playerid), Position[0], Position[1], Position[2]);
    GetVehicleZAngle(GetPlayerVehicleID(playerid), Position[3]);
    DestroyVehicle(GetPVarInt(playerid, "oldVehicle"));
    }
    else
    {
    GetPlayerPos(playerid, Position[0], Position[1], Position[2]);
    GetPlayerFacingAngle(playerid, Position[3]);
    }
    SetPVarInt(playerid, "oldVehicle", CreateVehicle(411, Position[0] + 1.5, Position[1] + 1.5, Position[2] + 1.5, Position[3], 1, 1, -1));
    PutPlayerInVehicle(playerid, GetPVarInt(playerid, "oldVehicle"), 0);
    return 1;
    }
    }

    Wow, so lange an dem arbeiten ^^ Lösung:
    Edit: habe es nun korrekt geschrieben..
    switch(classid)
    {
    case 0,1,2,3,4: gTeam[playerid] = TEAM_GROVE;
    case 5,6,7: gTeam[playerid] = TEAM_BALLAS;
    case 8,9,10: gTeam[playerid] = TEAM_VAGOS;
    case 11,12,13: gTeam[playerid] = TEAM_LCN;
    case 14,15,16: gTeam[playerid] = TEAM_TRIADEN;
    case 17,18,19: gTeam[playerid] = TEAM_COP;
    default: return 1;
    }

    Verwende den Code unter OnPlayerSpawn, nicht unter OnPlayerConnect.
    Edit:// Bei OnPlayerConnect gibst du dann nur folgendes ein:
    public OnPlayerConnect(playerid)
    {
    if(IsPlayerNPC(playerid)) return gPlayerLogged[playerid] = 1;
    //Sonstiger Code
    }

    Nein, es hat nichts mit der Version zu tun.
    Lustig dennoch, dass ich das Problem nicht mehr rekontruieren kann ^^. Hab vorher alles mögliche ausprobiert, damit es wieder geht und nun taucht kein Crash mehr auf :P Vielleicht lasse ich ein Programm aufzeichen, was ich alles mache, damit ich es später als Film reinziehen kann um anzusehen, was ich falsch gemacht habe... Naja Vielen Dank Goldkiller ^^


    Goldkiller: Alles klar,mach das ;D

    Also meine nächste Frage wäre, ob es möglich wäre einen stock zu erstellen, der alle Dateitypen return -en kann. Also was mann oben definieren muss, damit er nicht herumjammert der Kompiler ... Denn es kann doch nicht sein, dass dies nicht möglich ist bzw. eine andere Variante ohne den Speicheroperator "&".
    stock TestStock(input[], type)
    {
    if(type == 0) return strval(input);
    else if(type == 1) return floatstr(input);
    else if(type == 2) return input;
    return false;
    }


    Denn PAWN wiedergibt mir dabei folgendes...

    Zitat

    079 inconsistent return types (array & non-array)
    The function returns both values and arrays, which is not allowed.
    If a function returns an array, all return statements must specify
    an array (of the same size and dimensions).


    Bitte also um Hilfe ^^.