Beiträge von EvilToastBrot

    Wenn du SetTimer machst mach gleich noch GetTickCount() und speicher den Wert in ner Variable.
    Dann mach ne neue Funktion, die dann die Restzeit des Timers abfragt, in der du wieder GetTickCount(), den Wert aber nicht speicherst, sondern GetTickCount(das wo du gespeicher hast) - GetTickCount(). Dann den Wert, der aus der Subtraktion hervorgeht ziehst du vom Zeitintervall des Timers ab. Eventuell SetTimer neu definieren und die ganzen Daten in einem Enum speichern.


    Bsp:


    SetTimer("test", 5000, 0);


    stock RestZeitTimer() // Das ist hier eben nicht verallgemeinert
    {
    return 5000 - (GetTickCount()-gespeichertesGetTickCount); // 5000 = Zeitintervall des Timers mit dem public 'test'.
    }


    Ich hoffe du verstehst meinen Ansatz^^

    Besorg dir am besten einen Streamer und mach ne GangZone und dann prüf, ob der Player in der Gang Zone ist, wenn er es ist und im Fahrzeug ist, lass das Fahrzeug per DestroyVehicle zerstören und Respawnen und porte die Player vor die Garage.

    Sehe jetzt keinen Fehler, aber 2 wichtige Tipps:
    1. Ich würde prüfen ob 'suspect' ein Cop ist. Weil wenn du Pech hast und zwei Cops anwesend sind und der eine Cop näher ist als der Verbrecher, dann ziehst du den Cop ins Fahrzeug.
    2. Ich würde auch noch prüfen ob die Sitz ID 2 belegt ist, weil wenn du Pech hast und da jemand sitzt, dann Crasht der Client vom Verbrecher und er ist fein raus.


    Vllt nochn Tipp am Rande: Noch prüfen ob der, der /bust macht OnDuty ist.


    8)

    Das geilste is eh, die Kino.to Fans haben gleich mal nen DDos Angriff auf die Website der GVU, Gesellschaft zur Verfolgung von Urheberrechtsverletzungen, gestartet hat und die Website 3 Tage lang nicht ging :D
    Jetz funktioniert sie wieder nicht, www.gvu.de, könnt ihr ja mal probieren^^


    Aber völlig kacke, dass die kino.to gesperrt haben, nicht das ich da mal drauf gewesen wäre oder so :D

    CreateObject(18450,3141.85156250,-2330.72167969,125.50035858,0.00000000,0.00000000,0.00000000); //object(cs_roadbridge04) (1)
    CreateObject(1337,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000); //object(binnt07_la) (2)
    CreateObject(1337,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000); //object(binnt07_la) (3)
    CreateObject(18450,3168.54272461,-2330.72167969,125.50035858,0.00000000,0.00000000,0.00000000); //object(cs_roadbridge04) (2)
    CreateObject(18450,3204.90356445,-2330.72167969,125.50035858,0.00000000,0.00000000,0.00000000); //object(cs_roadbridge04) (3)
    CreateObject(18450,3205.37646484,-2330.24853516,125.50035858,0.00000000,0.00000000,0.00000000); //object(cs_roadbridge04) (4)
    CreateObject(18450,3205.37597656,-2330.22314453,125.50035858,0.00000000,0.00000000,0.00000000); //object(cs_roadbridge04) (5)


    Wo is das Problem? :D


    //Edit: Ah Oke hasts geschafft^^

    Du kannst eine Schranke oder ein Tor drehen, also öffnen, damit man eben durchfahren kann^^



    Ich würd sagen, da wird nicht geprüft, ob die Schranke an der richtigen Position ist.



    Das hier noch in die Include, am Ende nach SetObjectRot(oid,x+dx,y+dy,z+dz); rein denk ich:


    if(x == rx && y = ry && z == rz)
    {
    KillTimer(timer[oid]);
    return 1;
    }

    Kommt dann "pawnocc.exe funktioniert nicht mehr"?
    Das liegt oftmals daran, dass du irgendwo eine } oder eine ) oder eine ] vergessen hast. War bei mir zumindest dann immer so.

    Es gibt viele Includes.



    SetObjectRot(968,Float:RotX,Float:RotY,Float:RotZ);
    Das nenn ich mal Fail.
    ObjectID ist NICHT die ModelID!
    Die ObjectID wird von CreateObject zurückgeliefert, die ModelID ist eben die ModelID wie bei den Fahrzeugen 422 = Infernus usw.
    Viele denken eben, man kann ein Object über seine ModelID verändern.
    Das ist Fail. Du brauchst die ObjectID, die durch CreateObject zurückgeliefert wird und nicht die ModelID, von denen jedes Objekt eine andere hat.


    ObjectID ≠ ModelID

    Sind die stats in der Datei 0 oder, wenn man wieder connected und /stats, oder so, eingibt?
    Wenn letzteres zutrifft und in der Datei alles richtig steht, dann liegt es am Account laden.
    Und dir ist bewusst, dass man mit dem SpielerSpeichern(playerid); nur einen Spieler speichert, und nicht alle, oder?
    Und das ist ja eigentlich auch garnicht nötig, da SpielerSpeichern(playerid); hinzuschreiben, du ja, hoffe ich, SpielerSpeichern(playerid); unter OnPlayerDisconnect stehen hast.

    if(strcmp(inputtext, pInfo[playerid][passwort], true))
    else if(strcmp(inputtext, pInfo[playerid][passwort], false))


    Unterschied? Schwachsinn.


    true in strcmp = Nicht case sensitive.
    false in strcmp = case sensitive.


    strcmp liefert 0 zurück, wenn die Strings übereinstimmen, 1 wenn nicht, also muss das so heißen, wenn du das unbedingt mit else if machen willst...


    if(strcmp(inputtext, pInfo[playerid][passwort], true))
    {
    ShowPlayerDialog(playerid,1,DIALOG_STYLE_INPUT,"Login","{FFFFFF}Dein Passwort ist falsch! \nFalls dies nicht dein Account ist\nverlasse das Spiel ändere deinen Nicknamen\nund connecte erneut.\nDu kannst dir dann sofort einenn neuen Account erstellen.","Weiter","Abbrechen");
    SendClientMessage(playerid,0xFFFFFFFF,"Das Passwort war Falsch!");
    }
    else if(!strcmp(inputtext, pInfo[playerid][passwort], true))
    //...

    Tu nicht so, als würden wir extra nicht antworten! Vielleicht weiß es ja auch keiner?!



    B2T:
    Lass dir den Wert der Varibale FractionCars[fc][fCarid]; mal in die Konsole per printf machen.
    Vielleicht ist er <400 oder >611 und damit ungültig und der string wird nicht belegt und bleibt dadurch leer ==> Dialog wird nicht angezeigt.



    //Edit: Text war unlogisch ^^