Beiträge von ErikSon

    Hey, bei meinem Autohaus System kommt n Error, aber ich weiß nit warum...
    Code:


    enum Auto
    {
    Name[256],
    Carid,
    Preis,
    Autohaus,
    Float:X,
    Float:Y,
    Float:Z,
    Float:Rotation,
    Color1,
    Color2
    };


    new Kaufliste[2][Auto] = {
    {"Glendale",466,4500,1,1279.1447,-1795.6395,13.1314,90.9318,1,1},
    {"Oceanic",467,4000,1,1279.1526,-1799.9985,13.1265,90.8219,1,1}
    };


    if(newstate==PLAYER_STATE_DRIVER)
    {
    new fahrzeug;
    new string[64];
    if(IsAutohausCar(fahrzeug))
    {
    TogglePlayerControllable(playerid,0);
    /*Zeile 5979*/format(string,sizeof(string),"Fahrzeug: %s\nPreis: %d$",Kaufliste[Auto][Name],Kaufliste[Auto][Preis]);
    ShowPlayerDialog(playerid,DIALOG_Autohaus,DIALOG_STYLE_MSGBOX,"Autohaus-Fahrzeug",string,"Kaufen","Abbrechen");
    }
    }


    Errors:

    Zitat

    Zeile (5979) : Variable wurde falsch definiert (Float,Integer[...])
    Zeile (5979) : Der benutzte Array-Index ist größer als die Variable definiert wurde (variable "Kaufliste")

    Hey, habe Schwierigkeiten bei meinem Autohaus-System.


    enum Auto
    {
    Name[256],
    Carid,
    Preis,
    Autohaus,
    Float:X,
    Float:Y,
    Float:Z,
    Float:Rotation,
    Color1,
    Color2
    };


    new Kaufliste[2][Auto] = {
    {"Glendale",466,4500,1,1279.1447,-1795.6395,13.1314,90.9318,1,1},
    {"Oceanic",467,4000,1,1279.1526,-1799.9985,13.1265,90.8219,1,1}
    };



    if(newstate==PLAYER_STATE_DRIVER)
    {
    new fahrzeug;
    new string[64];
    if(IsAutohausCar(fahrzeug))
    {
    TogglePlayerControllable(playerid,0);
    /*Zeile 5979*/format(string,sizeof(string),"Fahrzeug: %s\nPreis: %d$",Kaufliste[Car][Name],Kaufliste[Car][Preis]);
    ShowPlayerDialog(playerid,DIALOG_Autohaus,DIALOG_STYLE_MSGBOX,"Autohaus-Fahrzeug",string,"Kaufen","Abbrechen");
    }
    }


    Errors:


    Zitat

    Zeile (5979) : Variable wurde falsch definiert (Float,Integer[...])
    Zeile (5979) : Der benutzte Array-Index ist größer als die Variable definiert wurde (variable "Kaufliste")


    Was ist falsch?

    Warum machste dann nit einfach nen Befehl wenn du es nur einmal willst?


    ocmd:schild(playerid)
    {
    if(!IsPlayerInAnyVehicle(playerid))return SendClientMessage(playerid,Farbe,"Nachricht");
    if(schild[playerid] == 0)
    {
    new taxischild=CreateObject(...);
    AttachObjectToVehicle(taxischild,...);
    schild[playerid] =1;
    }
    if(schild[playerid] ==1)
    {
    Dann halt das Objekt removen
    }
    return 1;
    }

    Du brauchst eine abfrage, ob der Spieler ein bestimmtes Level ist, um denBefehl zu benutzen.


    if(GetPlayerScore(playerid) <1)
    {
    SendClientMessage(playerid,Farbe,"Text");
    return 1;
    }


    Edit:
    Oder du machst es so:
    Der Spieler benutzt den Befehl dann:

    dini_IntSet(Spielerdatei,"Startbonus",1);


    Abfrage:
    if(dini_Int(Spielerdatei,"Startbonus")==1)
    {
    ...
    }

    Hää? checke gerade iwi garnichts...
    Also:


    if(dialogid == DIALOG_Name)
    {
    new Spielerdatei[64];


    if(response == 0)
    {
    ShowPlayerDialog(playerid,DIALOG_Name,DIALOG_STYLE_INPUT,"Name","Bitte gebe deinen Reallife Namen ein!","Weiter","Abbrechen");
    return 1;
    }
    if(response == 1)
    {
    if(!strlen(inputtext))
    {
    ShowPlayerDialog(playerid,DIALOG_Name,DIALOG_STYLE_INPUT,"Name","Bitte gebe deinen Reallife Namen ein!","Weiter","Abbrechen");
    return 1;
    }
    else
    {
    dini_Set(Spielerdatei,"Name",strlen(inputtext));
    ShowPlayerDialog(playerid,DIALOG_NName,DIALOG_STYLE_INPUT,"Nachname","Bitte gebe deinen Nachnamen ein!","Weiter","Abbrechen");
    return 1;
    }
    }
    }


    if(dialogid == DIALOG_NName)
    {
    new Spielerdatei[64];


    if(response == 0)
    {
    ShowPlayerDialog(playerid,DIALOG_NName,DIALOG_STYLE_INPUT,"Nachname","Bitte gebe deinen Nachnamen ein!","Weiter","Abbrechen");
    return 1;
    }
    if(response == 1)
    {
    if(!strlen(inputtext))
    {
    ShowPlayerDialog(playerid,DIALOG_NName,DIALOG_STYLE_INPUT,"Nachname","Bitte gebe deinen Nachnamen ein!","Weiter","Abbrechen");
    return 1;
    }
    else
    {
    dini_Set(Spielerdatei,"NName",strlen(inputtext));
    ShowPlayerDialog(playerid,DIALOG_Alter,DIALOG_STYLE_INPUT,"Alter","Bitte gebe dein Alter ein!","Weiter","Abbrechen");
    return 1;
    }
    }
    }


    if(dialogid == DIALOG_Alter)
    {
    new Spielerdatei[64];


    if(response == 0)
    {
    ShowPlayerDialog(playerid,DIALOG_Alter,DIALOG_STYLE_INPUT,"Alter","Bitte gebe dein Alter ein!","Fertig","Abbrechen");
    return 1;
    }
    if(response == 1)
    {
    if(!strval(inputtext))
    {
    ShowPlayerDialog(playerid,DIALOG_Alter,DIALOG_STYLE_INPUT,"Alter","Bitte gebe dein Alter ein!","Fertig","Abbrechen");
    return 1;
    }
    else
    {
    dini_Set(Spielerdatei,"Alter",strval(inputtext));
    return 1;
    }
    }
    }


    Ich will den Text wissen, den der Spieler eingegeben hat

    Hey, habe hier nen Fehler mit dini_set.


    Code:


    dini_Set(Spielerdatei,"NName",strlen(inputtext));


    Kommt halt error:


    Zitat

    Falscher Variablentyp als Parameter (Parameter #3)


    was ist falsch?

    Hey, ich habe versucht, beim Registrieren halt den Namen, Nachnamen und auch das Alter eingeben zu lassen und das dann halt zu speichern.
    Nur speichert der den Namen,Nachnamen und das Alter nicht.


    Code:


    if(dialogid == DIALOG_Name)
    {
    new Spielerdatei[64];


    if(response == 0)
    {
    ShowPlayerDialog(playerid,DIALOG_Name,DIALOG_STYLE_INPUT,"Name","Bitte gebe deinen Reallife Namen ein!","Weiter","Abbrechen");
    return 1;
    }
    if(response == 1)
    {
    if(!strlen(inputtext))
    {
    ShowPlayerDialog(playerid,DIALOG_Name,DIALOG_STYLE_INPUT,"Name","Bitte gebe deinen Reallife Namen ein!","Weiter","Abbrechen");
    return 1;
    }
    else
    {
    dini_IntSet(Spielerdatei,"Name",strlen(inputtext));
    ShowPlayerDialog(playerid,DIALOG_NName,DIALOG_STYLE_INPUT,"Nachname","Bitte gebe deinen Nachnamen ein!","Weiter","Abbrechen");
    return 1;
    }
    }
    }


    if(dialogid == DIALOG_NName)
    {
    new Spielerdatei[64];


    if(response == 0)
    {
    ShowPlayerDialog(playerid,DIALOG_NName,DIALOG_STYLE_INPUT,"Nachname","Bitte gebe deinen Nachnamen ein!","Weiter","Abbrechen");
    return 1;
    }
    if(response == 1)
    {
    if(!strlen(inputtext))
    {
    ShowPlayerDialog(playerid,DIALOG_NName,DIALOG_STYLE_INPUT,"Nachname","Bitte gebe deinen Nachnamen ein!","Weiter","Abbrechen");
    return 1;
    }
    else
    {
    dini_IntSet(Spielerdatei,"NName",strlen(inputtext));
    ShowPlayerDialog(playerid,DIALOG_Alter,DIALOG_STYLE_INPUT,"Alter","Bitte gebe dein Alter ein!","Weiter","Abbrechen");
    return 1;
    }
    }
    }


    if(dialogid == DIALOG_Alter)
    {
    new Spielerdatei[64];


    if(response == 0)
    {
    ShowPlayerDialog(playerid,DIALOG_Alter,DIALOG_STYLE_INPUT,"Alter","Bitte gebe dein Alter ein!","Fertig","Abbrechen");
    return 1;
    }
    if(response == 1)
    {
    if(!strval(inputtext))
    {
    ShowPlayerDialog(playerid,DIALOG_Alter,DIALOG_STYLE_INPUT,"Alter","Bitte gebe dein Alter ein!","Fertig","Abbrechen");
    return 1;
    }
    else
    {
    dini_IntSet(Spielerdatei,"Alter",strval(inputtext));
    SetPVarInt(playerid,"Perso",1);
    dini_IntSet(Spielerdatei,"Perso",1);
    SendClientMessage(playerid,Weiss,"Du hast nun dein Personalausweis!");
    return 1;
    }
    }
    }

    ocmd:susi(playerid,params[])
    {
    new pID,wps,grund[256];
    if(Dienst[playerid] == 0)return SendClientMessage(playerid,weiss,"Nicht im Dienst.");
    if(sscanf(params,"uds",pID,wps,grund))return SendClientMessage(playerid,weiss,"INFO: /su [playerid] [wps] [Grund]");
    if(!IsPlayerConnected(pID))return SendClientMessage(playerid,weiss,"Spieler wurde nicht gefunden.");
    if(wps<1)return SendClientMessage(playerid,weiss,"Ungültiger Betrag.");
    if(wps>69)return SendClientMessage(playerid,weiss,"Ungültiger Betrag."); // Änder es so ab, wie du es willst
    if(SpielerInfo[pID][Wanteds] >69)
    {
    SendClientMessage(playerid,weiss,"Dieser Spieler hat schon 69 Wanteds."); // Änder es ab, wie du willst
    }
    if(GetPlayerScore(pID)<3)return SendClientMessage(playerid,weiss,"Der Spieler hat noch nicht Level 3 erreicht.");


    new string[128],str[128];
    SpielerInfo[pID][Wanteds]+=wps;
    PlayCrimeReportForPlayer(playerid,pID,22);
    format(string,sizeof(string),"Wantedpunkte: %d Gesamt: %d Reporter: %s Grund: %s",wps,SpielerInfo[pID][Wanteds],SpielerName(playerid),grund);
    SendClientMessage(pID,0xFF0000AA,string);
    format(str,sizeof(str),"<<Gesuchter: %s Wantedpunkte: %d Gesamt: %d Reporter: %s Grund: %s>>",SpielerName(pID),wps,SpielerInfo[pID][Wanteds],SpielerName(playerid),grund);
    for (new i = 0; i<MAX_PLAYERS; i++)
    {
    if(!IsPlayerConnected(i))continue;
    if(!IsPlayerInFrak(i,1)||(!IsPlayerInFrak(i,5)))continue;
    SendClientMessage(i,0xFF0000AA,string);
    }
    return 1;
    }


    So müsste es klappen

    achso, man soll nicht über 69 Wanteds geben können?


    Dann so:


    ocmd:susi(playerid,params[])
    {
    new pID,wps,grund[256];
    if(Dienst[playerid] == 0)return SendClientMessage(playerid,weiss,"Nicht im Dienst.");
    if(sscanf(params,"uds",pID,wps,grund))return SendClientMessage(playerid,weiss,"INFO: /su [playerid] [wps] [Grund]");
    if(!IsPlayerConnected(pID))return SendClientMessage(playerid,weiss,"Spieler wurde nicht gefunden.");
    if(wps<1)return SendClientMessage(playerid,weiss,"Ungültiger Betrag.");
    if(wps>69)return SendClientMessage(playerid,weiss,"Ungültiger Betrag."); // Änder es so ab, wie du es willst
    if(GetPlayerScore(pID)<3)return SendClientMessage(playerid,weiss,"Der Spieler hat noch nicht Level 3 erreicht.");


    new string[128],str[128];
    SpielerInfo[pID][Wanteds]+=wps;
    PlayCrimeReportForPlayer(playerid,pID,22);
    format(string,sizeof(string),"Wantedpunkte: %d Gesamt: %d Reporter: %s Grund: %s",wps,SpielerInfo[pID][Wanteds],SpielerName(playerid),grund);
    SendClientMessage(pID,0xFF0000AA,string);
    format(str,sizeof(str),"<<Gesuchter: %s Wantedpunkte: %d Gesamt: %d Reporter: %s Grund: %s>>",SpielerName(pID),wps,SpielerInfo[pID][Wanteds],SpielerName(playerid),grund);
    for (new i = 0; i<MAX_PLAYERS; i++)
    {
    if(!IsPlayerConnected(i))continue;
    if(!IsPlayerInFrak(i,1)||(!IsPlayerInFrak(i,5)))continue;
    SendClientMessage(i,0xFF0000AA,string);
    }
    return 1;
    }

    ocmd:pay(playerid,params[])
    {
    new pid,Geld;
    if(sscanf(params,"ud",pid,Geld))
    {
    if(IsPlayerConnected(pid))
    {
    if(pid != playerid)
    {
    new Float:pPos[3];
    GetPlayerPos(pid,pPos[0],pPos[1],pPos[2]);
    if(!IsPlayerInRangeOfPoint(playerid,10.0,pPos[0],pPos[1],pPos[2]))return SendClientMessage(playerid,grau,"Der Spieler ist nicht in deiner Nähe.");
    if(GetPlayerMoney(playerid) < Geld)
    return SendClientMessage(playerid,grau,"Du hast nicht genug Geld.");
    GivePlayerMoney(playerid,-Geld);
    PlayerPlaySound(playerid,1052,0,0,0);
    GivePlayerMoney(pid,Geld);
    PlayerPlaySound(pid,1052,0,0,0);
    new Text[256];
    format(Text,sizeof(Text),"Du hast %s $%d gegeben.",SpielerName(pid),Geld);
    SendClientMessage(playerid,gelb,Text);
    format(Text,sizeof(Text),"Du hast $%d von %s bekommen.",Geld,SpielerName(playerid));
    SendClientMessage(pid,orange,Text);
    format(Text,sizeof(Text),"* %s nimmt Geld aus seiner Tasche und gibt es %s.",SpielerName(playerid),SpielerName(pid));
    SendClientMessageToAll(weiss,Text);
    GivePlayerMoney(playerid,-Geld);
    GivePlayerMoney(pid,Geld);
    }
    else
    {
    SendClientMessage(playerid,rot,"wtf ? Warum willst du dir das Geld das du hast,");
    SendClientMessage(playerid,rot,"dir selber geben xD xD unötig");
    }
    }
    else
    {
    SendClientMessage(playerid,grau,"Der gewählte Spieler ist nicht Online.");
    }
    }
    else
    {
    SendClientMessage(playerid,grau,"/Pay [Playerid/Name] [Betrag]");
    }
    return true;
    }


    Das ist ja logisch, du gibst dem Spieler das Geld und dem, der den Spieler das Geld gibt auch. Du musst "GivePlayerMoney(playerid,-betrag); machen! Der Command oben ist schon korrigiert, kannst ihn nun einfügen!

    ocmd:susi(playerid,params[])
    {
    new pID,wps,grund[256];
    if(Dienst[playerid] == 0)return SendClientMessage(playerid,weiss,"Nicht im Dienst.");
    if(sscanf(params,"uds",pID,wps,grund))return SendClientMessage(playerid,weiss,"INFO: /su [playerid] [wps] [Grund]");
    if(!IsPlayerConnected(pID))return SendClientMessage(playerid,weiss,"Spieler wurde nicht gefunden.");
    if(wps<1)return SendClientMessage(playerid,weiss,"Ungültiger Betrag.");
    if(GetPlayerScore(pID)<3)return SendClientMessage(playerid,weiss,"Der Spieler hat noch nicht Level 3 erreicht.");


    new string[128],str[128];
    SpielerInfo[pID][Wanteds]+=wps;
    PlayCrimeReportForPlayer(playerid,pID,22);
    format(string,sizeof(string),"Wantedpunkte: %d Gesamt: %d Reporter: %s Grund: %s",wps,SpielerInfo[pID][Wanteds],SpielerName(playerid),grund);
    SendClientMessage(pID,0xFF0000AA,string);
    format(str,sizeof(str),"<<Gesuchter: %s Wantedpunkte: %d Gesamt: %d Reporter: %s Grund: %s>>",SpielerName(pID),wps,SpielerInfo[pID][Wanteds],SpielerName(playerid),grund);
    for (new i = 0; i<MAX_PLAYERS; i++)
    {
    if(!IsPlayerConnected(i))continue;
    if(!IsPlayerInFrak(i,1)||(!IsPlayerInFrak(i,5)))continue;
    SendClientMessage(i,0xFF0000AA,string);
    }
    return 1;
    }


    Müsste so klappen!

    forward restart();
    ocmd:restart(playerid,params[])
    {
    new time,str[128];
    if(!IstSpielerAdmin(...)...;
    if(sscanf(params,"d",time))...
    SetTimer("restart",1000*time,false);
    format(str,sizeof(str),"Der Server wird in %d Sekunden neugestartet!",time);
    SendClientMessageToAll(Farbe,str);
    return 1;
    }
    public restart()
    {
    SendRconCommand(gmx);
    return 1;
    }


    Er rechnet beim timer deine angegebe zeit in sekunden ab...(1Sekunde • deine angegebene Zahl) Also muss es kein peoblem geben