Beiträge von carlos1710

    Ich verstehe nicht ganz, hier mal ein gröserer Ausschnitt.

    switch(Vehicle[i][Abgeschlossen])
    {
    case 1:
    {
    Vehicle[i][Abgeschlossen] = 0;
    printf("%d",Vehicle[i][Abgeschlossen]);
    dini_IntSet(Autodatei,"Abgeschlossen",0);
    SetVehicleParamsEx(i,Vehicle[i][engine],Vehicle[i][lights],Vehicle[i][alarm],Vehicle[i][Abgeschlossen],Vehicle[i][bonnet],Vehicle[i][boot],0);
    SendClientMessage(playerid,COLOR_GREEN, "Auto aufgeschlossen");
    return 1;
    }
    case 0:
    {
    Vehicle[i][Abgeschlossen] = 1;
    printf("%d",Vehicle[i][Abgeschlossen]);
    dini_IntSet(Autodatei,"Abgeschlossen",1);
    SetVehicleParamsEx(i,Vehicle[i][engine],Vehicle[i][lights],Vehicle[i][alarm],Vehicle[i][Abgeschlossen],Vehicle[i][bonnet],Vehicle[i][boot],0);
    SendClientMessage(playerid,COLOR_RED, "Auto abgeschlossen");
    return 1;
    }
    }
    Ist ebenfalls noch stark gekürtzt auch hier funktionirt alles ist das auto offen, solle es zu gemacht werden, ist es wir wird es auf gemacht.
    Ich bekomme die Prints die stimmen und die Clientmessage, die je nach fall die richtige ist.
    Nur ist das auto nicht offen zu.
    Der selbe Code mit anderen variablen ist auhc bei motorhaube kofferraum usw funktionirt auch nicht ganz
    //EDIT: Ich habe gerade herausgefunden, dass diese Funktion nirgendwo im Script funktionirt.

    HayLeute,
    Ich bin nun fast fertig mit meinem Carsystem, aber SetVehicleParamsEx wird vom Compiler erfolgreich ignorort.
    Hier ein Beispiel:
    switch(Vehicle[i][Abgeschlossen])
    {
    case 1:
    {
    Vehicle[i][Abgeschlossen] = 0;
    printf("%d",Vehicle[i][Abgeschlossen]);
    dini_IntSet(Autodatei,"Abgeschlossen",0);
    SetVehicleParamsEx(i,Vehicle[i][engine],Vehicle[i][lights],Vehicle[i][alarm],Vehicle[i][Abgeschlossen],Vehicle[i][bonnet],Vehicle[i][boot],0);
    SendClientMessage(playerid,COLOR_GREEN, "Auto aufgeschlossen");
    return 1;
    }
    Ein langer CMD zum Abschließen meines Autos, funktioniert alles von der geprintetet Variable bis zur ClientMessage, aber die Türen sind immernoch nicht zu.
    Das selbe Üroblem hab cih auch mit Kofferraum,Lichter usw.
    Wiso wird das ignorirt?

    Hallo Leute, Ich habe nun endlich mein Carsystem fertig und mutte festtellen das, überall wo SetVehiclePaeramsEx stand nichts passirt
    Hier ein Beispiel:

    switch(Vehicle[i][Abgeschlossen])
    {
    case 1:
    {
    Vehicle[i][Abgeschlossen] = 0;
    printf("%d",Vehicle[i][Abgeschlossen]);
    dini_IntSet(Autodatei,"Abgeschlossen",0);
    SetVehicleParamsEx(i,Vehicle[i][engine],Vehicle[i][lights],Vehicle[i][alarm],Vehicle[i][Abgeschlossen],Vehicle[i][bonnet],Vehicle[i][boot],0);
    SendClientMessage(playerid,COLOR_GREEN, "Auto aufgeschlossen");
    return 1;
    }
    Ein sehr langer CMD(Ser stark gekürtzts) auch zum Abschlueßen des Autos.
    Es funktionirt alles die Variable Abegschlossen wird auf 1 oder 0 gesetzt und geprintet dann in die Datei geschrieben aber das Auto wird nicht abgeschlossen.
    Die Nachricht am ende wird dann auch noch gut ausgegeben.
    Meine Frage:Wiso wird das Auto nicht abgeschlossen.Es funktionirt weder beim Motor,Kofferraum,Motorhaube,Lcihter und alle sehen so ähnlich aus wie oben, nur mit anderen variabeln.

    So kann man gut arrys erklären.
    Haxler hat zu mir mal gesagt eine Arry ist wie ien Schrank mit vielen Schubladen und Kästchen
    Arry[MAX_PLAYERS][100]
    Erstellt im Schrank für jeden Spieler eine Schublade, wenn der spieler sie öffnet, findet er 100 leere neue Schubladen oder volle, in die er etwas rein legen kann.
    Das bedeutet es gäbe insgesamt
    MAX_PLAYERS*100 Schubladen
    erweiterbar durch
    Arry[MAX_PLAYERS][100][10]
    Nun hat jeder Spieler eine Schublade mit weiteren 100 Schubladen und in diesen 100 Schubladen sind wieder 10 wo er etwas reinlegen kann:
    MAX_PLAYERS * 100 * 10 Schubladen.

    1. ein string ist eine zeichenkette, meistens steht er zeischen 2 "
    bsp: SendClientMesasge(playerid,FARBE,"Ich bin ein string/ eine zeichenfolge");
    die nummer 128 wenn du den string definirst steht dafür, wie viele buchstaben er hat
    Bsp: Möchtest du nur Hallo also variable speichern brauchst du ein string mit maximal 5 Zeichen.
    2.
    Mit einem New kanst du dinge definiren z.b. variabeln die du später im Script brauchst.
    mit einem forward kannst duein public einleiten bzw definiren.
    ein enum ist schweer zu erklären, es ist wie wenn du verschiedene variabeln zusammen fassen willst.
    3. Frag nur

    Hallo Brotfische,
    Ich habe nun ein befehl geschrieben zum vergeben von autoschlüsseln, aber irgendwie sagt der server mir :SERVER:Unknown Command

    dcmd_gibschluessel(playerid , params[])
    {
    new pname[MAX_PLAYERS],accFormat[128];
    new pID,nummernschild[32];
    if(sscanf(params, "ds", pID, nummernschild))
    {
    return SendClientMessage(playerid,COLOR_RED, "Nutze: /gibschluessel [SpielerID] [FahrzeugNummernschild]");
    }
    else
    {
    if(!IsPlayerConnected(pID))
    {
    return SendClientMessage(playerid,COLOR_RED,"Dieser Spieler ist nicht online!");
    }
    else
    {
    GetPlayerName(playerid,pname,sizeof pname);
    format(accFormat,sizeof accFormat,"Spieler/%s.datei",pname);
    for(new i=1;i<=2000;i++)
    {
    printf("%d",i);
    if(strcmp(nummernschild,Schild[playerid][i][nummer]) == 0)//ist diese abfrage positiv funktioniert alles, ist die 2000 mal negativ sagt der server ,er kenne den befehl nit
    {
    new datei[50];
    format(datei,50,"car%d",i);
    dini_Set(accFormat,datei,"0");
    Schild[playerid][i][nummer] = 0;
    for(i=1;i<=2000;i++)
    {
    if(strcmp("0",Schild[playerid][i][nummer]) == 0)
    {
    new str[256];
    format(str,256,"Du hast von %s die Schlüssel für das Auto mit dem Kennzeichen %s bekommen",pname,nummernschild);
    SendClientMessage(pID,COLOR_BLUE,str);
    GetPlayerName(pID,pname,sizeof pname);
    format(accFormat,sizeof accFormat,"Spieler/%s.datei",pname);
    format(datei,50,"car%d",i);
    dini_Set(accFormat,datei,nummernschild);
    Schild[pID][i][nummer] = nummernschild;
    format(str,256,"Du hast %s die Schlüssel für das Auto mit dem Kennzeichen %s gegeben",pname,nummernschild);
    SendClientMessage(playerid,COLOR_BLUE,str);
    return 1;
    }
    }
    }
    }
    SendClientMessage(playerid,COLOR_RED,"Du hast kein Auto mit diesem Numemrnschild!");//Das sollte kommen, statdessen steht da halt, dass der server den befehl nicht kennt
    }
    }
    return 1;
    }
    Ich habe schon die Vermutung, dass die vielen returns dabei was zu tun haben, weis aber nicht was.

    shit ja grad seh ichs ok mal ändern und testen
    //EDIT:So er error ist behoben, aber der string istz immernoch leer
    //EDIT2:Nun funktionirt alles hab noch 2 variabeln verändert, aber nun sagt mir der server bei einem cmd ,Das er ihn nicht kenne,
    Hier ein ausschnitt davon
    else//Sscanf hat alle Daten bekommen
    {
    GetPlayerName(playerid,pname,sizeof pname);
    format(accFormat,sizeof accFormat,"Spieler/%s.datei",pname);
    for(new i=1;i<=2000;i++)
    {
    if(strcmp(nummernschild,Schild[playerid][i][nummer]) == 0)//wenn diese Abfrage positiv ist, funktionirt alles wie es soll.Wenn sie aber nicht übereinstimmt sagt der server Unknown Command anstatt das was unten steht.
    {
    new datei[50];
    format(datei,50,"car%d",i);
    dini_Set(accFormat,datei,"0");
    for(i=1;i<=2000;i++)
    {
    if(strcmp("0",Schild[playerid][i][nummer]) == 0)
    {
    new str[256];
    format(str,256,"Du hast von %s die Schlüssel für das Auto mit dem Kennzeichen %s bekommen",pname,nummernschild);
    SendClientMessage(pID,COLOR_BLUE,str);
    GetPlayerName(pID,pname,sizeof pname);
    format(accFormat,sizeof accFormat,"Spieler/%s.datei",pname);
    format(datei,50,"car%d",i);
    dini_Set(accFormat,datei,nummernschild);
    format(str,256,"Du hast %s die Schlüssel für das Auto mit dem Kennzeichen %s gegeben",pname,nummernschild);
    SendClientMessage(playerid,COLOR_BLUE,str);
    return 1;
    }
    }
    }
    }
    return SendClientMessage(playerid,COLOR_RED,"Du hast kein Auto mit diesem Numemrnschild!");
    }
    }
    return 1;
    }

    Alsoo:
    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    new Float:time;
    new pname[MAX_PLAYERS],accFormat[128],acccFormat[128];
    GetPlayerName(playerid,pname,sizeof pname);
    format(accFormat,sizeof accFormat,"Spieler/%s.datei",pname);
    format(acccFormat,sizeof accFormat,"Unregistriert/%s.datei",pname);
    switch(dialogid) // dialogid auswählen
    {
    case DIALOG_LOGIN: // ID Login
    {
    if(response)
    {
    if(!strlen(inputtext))
    {
    SendClientMessage(playerid,0xFFFFFFFF,"Du hast kein Passwort angegeben und wurdest gekickt!");
    Kick(playerid);
    return 1;
    }
    if(strcmp(inputtext,dini_Get(accFormat,"Passwort")) == 0) // Passwort Direkt aus der Datei Laden
    {
    Spieler[playerid][geld] = dini_Int(accFormat,"geld");
    Spieler[playerid][skin] = dini_Int(accFormat,"skin");
    Spieler[playerid][lastx] = dini_Float(accFormat,"lastx");
    Spieler[playerid][lasty] = dini_Float(accFormat,"lasty");
    Spieler[playerid][lastz] = dini_Float(accFormat,"lastz");
    Spieler[playerid][eingeloggt] = 1; // Spieler ist nun erfolgreich eingeloggt
    new datei[50];
    for(new i=1;i<=2000,i++)// ezile 611
    {
    format(datei,50,"car%d",i);
    strmid(Schild[playerid][i][nummer],dini_Get(accFormat,datei),0,strlen(dini_Get(accFormat,datei)));
    time=i*0.05;
    format(datei,50,"%.2f Prozent Fertig",Float:time);
    printf("Schild: %s",Schild[playerid][i][nummer]);
    SendClientMessage(playerid,0xFFFFFFFF,datei);
    }
    SendClientMessage(playerid,0xFFFFFFFF,"Du wurdest erfolgreich eingeloggt.");
    }
    else
    {
    SendClientMessage(playerid,0xFFFFFFFF,"Das Passwort war Falsch und du wurdest gekickt!");
    Kick(playerid);
    }
    }
    else
    {
    SendClientMessage(playerid,0xFFFFFFFF,"Du hast abgebrochen und wurdest gekickt!");
    SendClientMessage(playerid,0xFFFFFFFF,"Du must dich einloggen um spielen zu können!");
    Kick(playerid);
    return 1;
    }
    }
    case DIALOG_REG: // ID Registrieren
    Das ist das ganze loginsystem
    glaub von blackfox erweitert
    Wenn alles funktionirt sollte in allen 2000 arryelementen ein string oder eine 0 stehen, jenachdem was hinter car[i] steht.
    Funktionirt nicht stadessen meldet der compiler den error
    C:\Scripting\samp server\The Sims RPG\samp03csvr_R2-2_win32\gamemodes\amx.pwn(611) : error 001: expected token: ";", but found ")"
    zeile 611 = die schleife
    Der error kommt weil ich das ";" wie Haxler sagte wegnahm (davor gigs udn die schleife lief durch)
    Nun hab ich die arrys printen lassen und sie sind alle leer keine 0 und kein nummernschild stehen drinne

    if(strcmp(inputtext,dini_Get(accFormat,"Passwort")) == 0) // Passwort Direkt aus der Datei Laden
    {
    Spieler[playerid][geld] = dini_Int(accFormat,"geld");
    Spieler[playerid][skin] = dini_Int(accFormat,"skin");
    Spieler[playerid][lastx] = dini_Float(accFormat,"lastx");
    Spieler[playerid][lasty] = dini_Float(accFormat,"lasty");
    Spieler[playerid][lastz] = dini_Float(accFormat,"lastz");
    Spieler[playerid][eingeloggt] = 1; // Spieler ist nun erfolgreich eingeloggt
    new datei[50];
    for(new i=1;i<=2000,i++)// beginn der Schleife
    {
    dass ist vor der schleife

    Also eigentlich stimmen beide Werte
    format(accFormat,sizeof accFormat,"Spieler/%s.datei",pname);
    und in dem accFormat steht
    car1=lol
    d.h. es müste lol geprintet werden
    //EDIT:Haxler ich bin auch deiner meinung das die Schleife falsch ist, aber wenn ich es richtig machen will, vermisst der compiler das;
    C:\Scripting\samp server\The Sims RPG\samp03csvr_R2-2_win32\gamemodes\amx.pwn(611) : error 001: expected token: ";", but found ")"
    zeile 611 = die schleife

    Normales speichern und abrufen kann ich, diese nummernschilder dienen als schlüssel zum prüfen ob der spieler die schlüssel für das auto hat.
    Ich möchte einfach den string der hinter Car[i] steht in die arry schreiben

    Ich habe es so, dass jeder spieler in seiner Datei 2000 Numemrnschilder hat.
    Damit bei befehlen nicht immer die dini geöffnet wird, wird das alles am anfang in der arry mit 2000 elementen pro spieler gespeichert.
    In dem befehlen werd ich dann abfragen ob eines der strngs in den Arrys mit einem anderen üßberein stimmt, das funktionirt soweit.
    Aber das laden funktionirt nicht so wie es soll.
    die Nummernschilder in der spielerdatei sehen so aus
    Car1=etwas
    Car2=nochwas
    Car3=wasanderes
    [...]
    Car2000=1234abcd


    und das soll alles in der arry stehen, für jeden eintrag in ein neues arryelement abspeichern

    Ich hab mal iim Wiki geschaut, da stand zwar auch nicht viel Hilfreiches aber so wie es nun im Scritp steht hat der compiler kein Error ich teste mal.
    Was ich reinschreiben will. . .
    In die arry will ich das reinschreiben was in der dini unter carid[i] steht
    //EDIT:Also nun steht in der arry garnichts mehr, der compiler printet nichtmal eine 0
    habs so im script
    strmid(Schild[playerid][i][nummer],dini_Get(accFormat,datei),0,strlen(dini_Get(accFormat,datei)));