Beiträge von Tround

    von zeile 59 - 62 machst du zu viele klammern zu..
    wenn du es richtig einrückst siehst du den fehler..
    if(dialogid == DIALOG_1)
    {
    if(response)
    {
    switch(listitem)
    {
    case 0:
    {
    if(Dtc_PlayerHaveCar[playerid][Dtc_PlayerKey[playerid]])
    {
    ShowPlayerDialog(playerid,DIALOG_NUMBERPLATE,DIALOG_STYLE_INPUT,"Nummernschild vergabe","Du kannst deim Fahrzeug nun ein Nummernschild geben\nNutze die Vorlage: YgR-xxxx\nVerwende die x als deine Zahlen.","Auswählen","Abbrechen");
    return 1;
    }
    else
    {
    SendClientMessage(playerid,0xFF0000FF,"Du musst den richtigen Schlüssel ausgewählt haben!");
    return 1;
    }
    }
    case 1:
    {
    new str[128];
    SendClientMessage(playerid,COLOR_WHITE,"Ein Polizist wurde Informiert.");
    format(str,sizeof(str),"[HQ]: %s[ID:%d] benötigt im LSPD einen Polizisten.",GetName(playerid),playerid);
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    if(SpielerInfo[i][sMember] == 1)
    {
    SendClientMessage(i,COLOR_BLUE,str);
    }
    }
    }
    case 2:
    {
    new bailprice = GetPlayerWantedLevel(playerid) * 12000;
    new string[128];
    new giveplayer[MAX_PLAYER_NAME];
    GetPlayerName(playerid, giveplayer, sizeof(giveplayer));
    if(GetPlayerWantedLevel(playerid) < 1)
    {
    SendClientMessage(playerid, COLOR_GREY, "Officer 1: Sie haben keine Wanteds!");
    return 1;
    }
    ResetPlayerWeaponStats(playerid);
    SpielerInfo[playerid][pJailTime] = GetPlayerWantedLevel(playerid) * 10;
    SetPlayerInterior(playerid, 6);
    new randomx = random(sizeof(LSPD_Jail));
    SetPlayerPos(playerid, LSPD_Jail[randomx][PosX], LSPD_Jail[randomx][PosY], LSPD_Jail[randomx][PosZ]);
    SetPlayerFacingAngle(playerid, LSPD_Jail[randomx][xFA]);
    SpielerInfo[playerid][pJailed] = 1;
    SpielerInfo[playerid][pArrested] += 1;
    SetPlayerWantedLevel(playerid, 0);
    format(string, sizeof(string), "Officer Hartmut hat %s im LSPD verhaftet!", giveplayer);
    OOCNews(COLOR_LIGHTRED, string);
    JailPrice[playerid] = bailprice;
    format(string, sizeof(string), "Du bist für %d Minuten im Knast. Kaution: $%d", SpielerInfo[playerid][pJailTime], JailPrice[playerid]);
    SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
    return 1;
    }
    }//hier
    }//hier
    }//hier????
    case 3:
    {

    normalerweise wird nachdem man auf erstellen drückt ein weiterer dialog geöffnet. wird dieser wenigstens angezeigt?
    falls nicht schau mal nach ob die dialog ids vielleicht mit bereits bestehenden dialogen übereinstimmen.

    frakid ist eine zahl und wird als Integer angegeben "i" . "s" steht für string..

    if(sscanf(params,"ui",pID,frakid))return SendClientMessage(playerid,0xFF0000,"FEHLER: /setfrak [id] [frakid]");

    ich denke mal das liegt an deinem return in der schleife..


    for(new i=0; i<sizeof(NewsCar)+1; i++)//+1 damit die schleife auch bei einer zahl über den newscars wert ankommt. damit in der schleife bei i==sizeof(newscar) returnt werden kann.
    {
    if(i==sizeof(NewsCar))return Fehler(playerid,"Du bist in keinem News Fahrzeug!");
    if(GetPlayerVehicleID(playerid)!=NewsCar[i])continue;
    new text[128],nr[128];
    if(sscanf(params,"s",text)) return SendClientMessage(playerid,Grau,"[Benutze]: /news [Text]");
    format(nr,sizeof(nr),"NR %s: %s",GetName(playerid),text);
    SendClientMessageToAll(Orange,nr);
    return 1;
    }
    keine garantie


    kannst aber auch einen stock erstellen dann ist es etwas übersichtlicher wie ich finde ^^

    stock IsPlayerInNewsCar(playerid)
    {
    for(new i=0;i<sizeof(NewsCar);i++)
    {
    if(GetPlayerVehicleID(playerid)==NewsCar[i])return 1;
    }
    return 0;
    }

    if(IsPlayerInNewsCar(playerid)==0)return Fehler(playerid,"Du bist in keinem News Fahrzeug!");

    kannst auch einen befehl dafür benutzen um dich zu den kords zu porten


    ocmd:gehezukord(playerid,params[])
    {
    new Float:floatvar[3];
    if(sscanf(params,"fff",floatvar[0],floatvar[1],floatvar[2]))return SendClientMessage(playerid,BLAU,"Info: {FFFFFF}/gehezukord [x] [y] [z]");
    SetPlayerPos(playerid,floatvar[0],floatvar[1],floatvar[2]);
    return 1;
    }

    hatte damals auch das problem. es lag daran das JunkBuster in der server.cfg falsch geschrieben war. würde mal die server.cfg anschauen und gucken ob die filterscripts richtig geschrieben sind.
    groß/kleinschreibung ist wichtig

    unter OnPlayerStateChange abfragen
    if(newstate==PLAYER_STATE_PASSENGER) --> if(GetVehicleModel...


    das mit dem timer geht so nicht..
    SetTimer("busfahrt",1000*10,true);
    bedeutet so viel wie jedes mal wen jemand keine fahrkarte hat wird ein neuer timer gestartet. der sich obendrein auch noch immer und immer wieder wiederhohlt.
    um einen timer für einen spieler zu erstellen verwende SetTimerEx http://wiki.sa-mp.com/wiki/SetTimerEx
    bei interval eine 0/false angeben sonst wird der public vom timer immer und immerwieder aufgerufen
    würde aber von einem timer ganz abraten da es einfacher und ressourcenschonender geht

    haste die neuesten includes von 0.3e?


    Zitat

    OnPlayerEditObject
    SetObjectMaterialText
    OnPlayerEditObject


    This callback was added in SA-MP 0.3e and will not work in earlier versions!

    da die fehler ab zeile 58000 sind nehme ich an das du es in deinen gamemode einbauen willst.. dann musste die sachen von ondialogresponse in deinen public verschieben. einen 2ten public mit gleichen namen geht nicht.
    das gleiche gilt für OnPlayerKeyStateChange.. und isnummeric kannste löschen da du es anscheinend schon im script hast.