Beiträge von [COE]CodeX

    Hallo
    Ich habe das problem, dass mein Dynamisches Hausystem nicht funktioniert.
    Ich habe es nach diesem Tutorial gescripted: Klick Mich


    Ich habe im Script keine Errors aber man kann kein haus an einen anderen Spieler verkaufen man bekommt zwar Geld und dem anderen wird es abgezogen aber das Haus bleibt beim eigentlich Besitzer. Noch dazu bekommst man nicht soviel wie man angegeben hat sondern zum Teil unterschiedliche Summen
    und als letztes Problem dazu wenn sich ein haus "updated" z.B durch Hauskaufen wird ab und zu kein textlabel oder Pickup geladen(Immer beim Befehl /haussell?!?)


    enum Hausinfo
    {
    Besitzer[128],
    HausNR,
    Kaufpreis,
    Float:hx,
    Float:hy,
    Float:hz,
    Eisenlager,
    Holzlager,
    Schwarzpulver,
    Drogenlager,
    haus_innenraum,
    Abgeschlossen,
    hpickup,
    Text3D:hlabel
    };
    new hInfo[MAX_Haus][Hausinfo];


    OnGameModeInit()
    CreatePickup(1273,23,0,0,1000,99); // damit es keine ID verschiebung gibt
    for(new haus=1;haus<MAX_Haus;haus++)
    {
    LoadHaus(haus);
    }
    ocmd:hauskaufen(playerid,params[])
    {
    for(new haus=1;haus<MAX_Haus;haus++)
    {
    if(IsPlayerInRangeOfPoint(playerid,10,hInfo[haus][hx],hInfo[haus][hy],hInfo[haus][hz]))
    {
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof name);
    if(strcmp(hInfo[haus][Besitzer],name,false) == 0)return SendClientMessage(playerid,hellrot,"Dieses Haus gehört dir bereits!");
    if(strcmp(hInfo[haus][Besitzer],"Staat",false))return SendClientMessage(playerid,hellrot,"Dieses Haus steht nicht zum Verkauf!");
    if(GetPlayerMoney(playerid) < hInfo[haus][Kaufpreis])return SendClientMessage(playerid,hellrot,"Du hast nicht genug Geld!");
    GivePlayerMoney(playerid,-hInfo[haus][Kaufpreis]);
    new pfad[100];
    format(pfad,100,"/Häuser/%d.txt",haus);
    dini_Set(pfad,"Besitzer",name);
    KillHaus(haus);
    LoadHaus(haus);
    }
    }
    return 1;
    }


    ocmd:haussell(playerid,params[])
    {
    for(new haus=1;haus<MAX_Haus;haus++)
    {
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof name);
    if(strcmp(hInfo[haus][Besitzer],name,false) == 0)
    {
    GivePlayerMoney(playerid,hInfo[haus][Kaufpreis]/2);
    new pfad[100];
    format(pfad,100,"/Häuser/%d.txt",haus);
    dini_Set(pfad,"Besitzer","Staat");
    KillHaus(haus);
    LoadHaus(haus);
    }
    }
    return 1;
    }


    ocmd:sellhaus(playerid,params[])
    {
    new pID,preis,string1[128],string2[128],string3[128],Float:x,Float:y,Float:z;
    for(new haus=1;haus<MAX_Haus;haus++)
    {
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof name);
    if(strcmp(hInfo[haus][Besitzer],name,false) == 0)
    {
    if(sscanf(params,"ui",pID,preis))return SendClientMessage(playerid,rot,"Benutze /sellhaus [ID] [Preis]");
    if(pID == playerid)return SCM(playerid,rot,"Du kannst dir selbst kein Haus verkaufen");
    GetPlayerPos(playerid,x,y,z);
    if(!IsPlayerInRangeOfPoint(pID,20,x,y,z))return SCM(playerid,hellrot,"Der Spieler ist nicht in deiner Nähe");
    format(string1,sizeof(string1),"%s bietet dir sein Haus %i für %i€ an.",Spielername(playerid),hInfo[haus][HausNR],preis);
    format(string2,sizeof(string2),"Benutze /accepthaus um das Angebot anzunehmen oder /cancel um es abzulehnen");
    format(string3,sizeof(string3),"Du hast %s dein Haus für %i€ angeboten",Spielername(pID),preis);
    Anfrage[pID] = 3;
    AnfrageID[pID] = playerid;
    Ueberweiser[pID] = preis;
    }
    }
    SCM(pID,orange2,string1);
    SCM(pID,orange2,string2);
    SCM(playerid,orange2,string3);
    return 1;
    }


    ocmd:accepthaus(playerid,params[])
    {
    if(Anfrage[playerid] == 3)
    {
    new string1[128],string2[128];
    for(new haus=1;haus<MAX_Haus;haus++)
    {
    if(strcmp(hInfo[haus][Besitzer],Spielername(AnfrageID[playerid]),false) == 0)
    {
    if(GetPlayerMoney(playerid) >= Ueberweiser[playerid])
    {
    Anfrage[playerid] = 0;
    format(string1,sizeof(string1),"Du hast das Angebot von %s angenommen und sein Haus für %i€ gekauft",Spielername(AnfrageID[playerid]),Ueberweiser[playerid]);
    format(string2,sizeof(string2),"%s hat dein Angebot angenommen und dein Haus für %i€ gekauft",Spielername(playerid),Ueberweiser[playerid]);
    GivePlayerMoney(AnfrageID[playerid],Ueberweiser[playerid]);
    GivePlayerMoney(playerid,-Ueberweiser[playerid]);
    new pfad[100];
    format(pfad,100,"/Häuser/%d.txt",haus);
    dini_Set(pfad,"Besitzer",Spielername(AnfrageID[playerid]));
    KillHaus(haus);
    LoadHaus(haus);
    }
    }
    }
    SCM(playerid,orange2,string1);
    SCM(AnfrageID[playerid],orange2,string2);
    Ueberweiser[playerid] = 0;
    AnfrageID[playerid] = 0;
    Anfrage[playerid] = 0;
    }
    else
    {
    SCM(playerid,hellrot,"Du hast kein Angebot erhalten");
    }
    return 1;
    }


    ocmd:enter(playerid,params[])
    {
    for(new haus=1;haus<MAX_Haus;haus++)
    {
    if(IsPlayerInRangeOfPoint(playerid,15,hInfo[haus][hx],hInfo[haus][hy],hInfo[haus][hz]))
    {
    if(hInfo[haus][Abgeschlossen] == 0)
    {
    GetPlayerPos(playerid,xx,yy,zz);
    switch(hInfo[haus][haus_innenraum])
    {
    case 1:{SetPlayerInterior(playerid,1);SetPlayerPos(playerid,223.043991, 1289.259888, 1082.199951);SetPlayerVirtualWorld(playerid,1+playerid);}
    case 3:{SetPlayerInterior(playerid,3);SetPlayerPos(playerid,235.508994, 1189.169897, 1080.339966);SetPlayerVirtualWorld(playerid,1+playerid);}
    case 7:{SetPlayerInterior(playerid,7);SetPlayerPos(playerid,225.630997, 1022.479980, 1084.069946);SetPlayerVirtualWorld(playerid,1+playerid);}
    case 12:{SetPlayerInterior(playerid,12);SetPlayerPos(playerid,2324.33, -1144.79, 1050.71);SetPlayerVirtualWorld(playerid,1+playerid);}
    case 15:{SetPlayerInterior(playerid,15);SetPlayerPos(playerid,295.138977, 1474.469971, 1080.519897 );SetPlayerVirtualWorld(playerid,1+playerid);}
    }
    }
    else
    {
    SCM(playerid,rot,"Das Haus ist abgeschlossen");
    }
    }
    }
    return 1;
    }


    ocmd:exit(playerid,params[])
    {
    if(GetPlayerInterior(playerid) == 3 || 1 || 7
    || 15 || 12)
    {
    SetPlayerInterior(playerid,0);
    SetPlayerPos(playerid,xx,yy,zz);
    SetPlayerVirtualWorld(playerid,0);
    }
    return 1;
    }



    ocmd:hlock(playerid,params[])
    {
    for(new haus=1;haus<MAX_Haus;haus++)
    {
    if(IsPlayerInRangeOfPoint(playerid,35,hInfo[haus][hx],hInfo[haus][hy],hInfo[haus][hz]))
    {
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof name);
    if(strcmp(hInfo[haus][Besitzer],name,false) == 0)
    {
    if(hInfo[haus][Abgeschlossen] == 0)
    {
    hInfo[haus][Abgeschlossen] = 1;
    SCM(playerid,gelb,"Du hast dein Haus abgeschlossen");
    }
    else if(hInfo[haus][Abgeschlossen] == 1)
    {
    hInfo[haus][Abgeschlossen] = 0;
    SCM(playerid,gelb,"Du hast dein Haus aufgeschlossen");
    }
    }
    }
    }
    return 1;
    }
    stock CreateHaus(Float:x,Float:y,Float:z,besitzer[64],nummer,preis)
    {
    new pfad[100];
    for(new haus=1;haus<MAX_Haus;haus++)
    {
    format(pfad,100,"/Häuser/%d.txt",haus);
    if(!fexist(pfad))
    {
    dini_Create(pfad);
    dini_FloatSet(pfad,"Pos X",x);
    dini_FloatSet(pfad,"Pos Y",y);
    dini_FloatSet(pfad,"Pos Z",z);
    dini_IntSet(pfad,"Kaufpreis",preis);
    dini_Set(pfad,"Besitzer",besitzer);
    dini_IntSet(pfad,"Innenraum",1);
    dini_IntSet(pfad,"Hausnummer",nummer);
    dini_IntSet(pfad,"Eisenlager",0);
    dini_IntSet(pfad,"Holzlager",0);
    dini_IntSet(pfad,"Schwarzpulver",0);
    dini_IntSet(pfad,"Drogenlager",0);
    dini_IntSet(pfad,"Abgeschlossen",0);
    return LoadHaus(haus);
    }
    }
    return 0;
    }


    stock LoadHaus(hausid)
    {
    new pfad[100],string1[128];
    format(pfad,100,"/Häuser/%d.txt",hausid);
    if(!fexist(pfad))return 0; //überprüft ob die Datei existiert, wenn nicht wird 0 zurückgegeben


    hInfo[hausid][hx] = dini_Float(pfad,"Pos X"); // hier laden wir die Werte
    hInfo[hausid][hy] = dini_Float(pfad,"Pos Y");
    hInfo[hausid][hz] = dini_Float(pfad,"Pos Z");
    hInfo[hausid][Kaufpreis] = dini_Int(pfad,"Kaufpreis");
    format(hInfo[hausid][Besitzer],64,"%s",dini_Get(pfad,"Besitzer"));
    hInfo[hausid][HausNR] = dini_Int(pfad,"Hausnummer");
    hInfo[hausid][Eisenlager] = dini_Int(pfad,"Eisenlager");
    hInfo[hausid][Holzlager] = dini_Int(pfad,"Holzlager");
    hInfo[hausid][Schwarzpulver] = dini_Int(pfad,"Schwarzpulver");
    hInfo[hausid][Drogenlager] = dini_Int(pfad,"Drogenlager");
    hInfo[hausid][haus_innenraum] = dini_Int(pfad,"Innenraum");
    hInfo[hausid][Abgeschlossen] = dini_Int(pfad,"Abgeschlossen");
    hInfo[hausid][hpickup] = CreatePickup(1273 ,1,hInfo[hausid][hx],hInfo[hausid][hy],hInfo[hausid][hz],0);
    format(string1,sizeof(string1),"Hausnummer: %i\nBesitzer: %s\nKaufpreis: %i€",hInfo[hausid][HausNR],hInfo[hausid][Besitzer],hInfo[hausid][Kaufpreis]);
    hInfo[hausid][hlabel] = Create3DTextLabel(string1,weiß,hInfo[hausid][hx],hInfo[hausid][hy],hInfo[hausid][hz],15,0,0);
    return print("Das Haus wurde erfolgreich geladen");
    }


    stock KillHaus(hausid)
    {
    DestroyPickup(hInfo[hausid][hpickup]);
    Delete3DTextLabel(hInfo[hausid][hlabel]);
    }


    So das war eigentlich der ganze Code
    nochmal die probleme^^
    -->Beim verkaufen des hauses an andere Spieler behält man das Haus
    -->Man bekommt unterschiedliche Geldsummen
    -->TextLabels und Pickups updaten sich nicht immer /edit: Also es ändert sich nur beim Befehl haussell nicht bzw es wird nicht mehr geladen
    -->und beim Haus verkaufen an andere Spieler wird immer angezeigt "Spieler xyz" möchte dir sein haus 999 verkaufen
    Ich weiß das ist wegen Max_haus aber wie kann ich das umgehen?


    Ich hoffe ihr könnt mir helfen

    Also ich habe für meinen Payday Zinsen hinzugefügt aber ich bekomme immer rießige Werte(1110306576€ und so^^) an Zinsen obwohl der string in welchem die Zinsen ausgegeben werden richtig angezeigt wird


    Also der Anfang meines Paydays sieht so aus
    public Minute()
    {
    new Hour2;
    gettime(Hour2);
    SetWorldTime(Hour2);
    for(new i=0; i<GetMaxPlayers(); i++)
    {
    if(!IsPlayerConnected(i))continue;
    if(pInfo[i][Eingeloggt]==0)continue;
    pInfo[i][ZsL] ++;
    pInfo[i][ZbP] --;
    pInfo[i][SzI] ++;
    pInfo[i][Hunger] += 1;
    pInfo[i][Durst] += 2;
    pInfo[i][Viren] += 5;
    if(pInfo[i][ZbP] == 0)
    {
    new string1[128], string2[128],string3[128],string4[128];
    format(string1,sizeof(string1),"Durch deinen Nebenjob verdienst du zusätzlich %i€",pInfo[i][FarmerCP]*30);
    format(string2,sizeof(string2),"Durch deinen Nebenjob verdienst du zusätzlich %i€",pInfo[i][TruckerCP]*400);
    format(string3,sizeof(string3),"Durch deinen Nebenjob bekommst du außerdem weitere Erfahrung",pInfo[i][PlusErfahrung]);
    format(string4,sizeof(string4),"Durch Verzinsung deines Bankguthabens erhälst du %i€",floatround(pInfo[i][Bankguthaben]*0.01));
    switch(pInfo[i][Nebenjob])
    {
    case 0:
    {
    SCM(i,weiß,"===============Payday===============");
    SCM(i,weiß,"Du bekommst 500€ Arbeitslosengeld");
    SCM(i,weiß,string4);
    SCM(i,weiß,"Du bekommst 100 Erfahrungspunkte");
    SCM(i,weiß,"Du bekommst 1 Coin");
    SCM(i,weiß,string3);
    SCM(i,weiß,"====================================");
    pInfo[i] [Erfahrung] = pInfo[i][PlusErfahrung];
    GivePlayerMoney(i,500);
    new zinsen = floatround(pInfo[i][Bankguthaben] * 0.01);
    pInfo[i][Bankguthaben] += zinsen;
    pInfo[i][FarmerCP]= 0;
    pInfo[i][TruckerCP]= 0;
    pInfo[i][PlusErfahrung] = 0;
    }
    case 1:
    {
    SCM(i,weiß,"===============Payday=======================");
    SCM(i,weiß,"Du bekommst 500€ Arbeitslosengeld");
    SCM(i,weiß,string1);
    SCM(i,weiß,string4);
    SCM(i,weiß,"Du bekommst 100 Erfahrungspunkte");
    SCM(i,weiß,string3);
    SCM(i,weiß,"Du bekommst 1 Coin");
    SCM(i,weiß,"============================================");
    pInfo[i][Erfahrung] = pInfo[i][PlusErfahrung];
    GivePlayerMoney(i,500);
    GivePlayerMoney(i,pInfo[i][FarmerCP]*30);
    new zinsen = floatround(pInfo[i][Bankguthaben] * 0.01);
    pInfo[i][Bankguthaben] += zinsen;
    pInfo[i][FarmerCP]= 0;
    pInfo[i][TruckerCP]= 0;
    pInfo[i][PlusErfahrung] = 0;
    }
    Der Rest ist für euch uninteressent weil es im Prinzip genauso weitergeht nur mit anderen Nebenjobs ;)


    Ich hoffe ihr könnt mir sagen was ich falsch mache

    Ja stimmt das hab ich bevor ich meine Lösung hatte auch probiert aber ich dachte mir das muss mit strfind auch gehen^^ außerdem ist es doch gut wenn man selbst Lösungen findet auch wenn es etwas dauert :D

    Sorry ich hab mich dem SAMP Wiki da etwas falsch bedient
    Ich dachte ich müsste strfind benutzen
    Ich habs nicht so mit den verschiedenen str... Sachen weil ich fürh mit OCMD angefangen habe und daher kaum strcmp... brauchte


    /edit:

    Was du dort gemacht hast MrMoney funktioniert nicht:


    if(strfind("/accept repair","repair",true) != -1)
    Das ist totaler Quatsch.
    Ist doch klar,dass er das Wort "repair" immer in "/accept repair" finden wird. Genau genommen findet er es an Position 8.

    Aber wenn ich es folgendermaßen mache geht es
    ocmd:accept(playerid,params[])
    {
    new text[8];
    if(sscanf(params,"s",text))return SendClientMessage(playerid,rot,"Benutze /accept repair");
    if(strfind(text,"repair",true) != -1)
    //if(strcmp(text,"repair",true)==0)
    {
    if(Anfrage[playerid] == 2)
    {
    new string1[128],string2[128];
    Anfrage[playerid] = 0;
    format(string1,sizeof(string1),"Du hast das Angebot von %s angenommen und dein Fahrzeug wurde repariert",Spielername(AnfrageID[playerid]));
    format(string2,sizeof(string2),"%s hat dein Angebot angenommen",Spielername(playerid));
    SCM(playerid,orange2,string1);
    SCM(AnfrageID[playerid],orange2,string2);
    RepairVehicle(GetPlayerVehicleID(playerid));
    GivePlayerMoney(AnfrageID[playerid],Ueberweiser[playerid]);
    GivePlayerMoney(playerid,-Ueberweiser[playerid]);
    Ueberweiser[playerid] = 0;
    AnfrageID[playerid] = 0;
    }
    else
    {
    SCM(playerid,hellrot,"Du hast kein Angebot erhalten");
    }
    }
    return 1;
    }

    Habs geschafft ;)
    Ich habs jetzt so gemacht
    ocmd:accept(playerid,params[])
    {
    new text[8];
    if(sscanf(params,"s",text))return SendClientMessage(playerid,rot,"Benutze /accept repair");
    if(strfind("/accept repair","repair",true) != -1)
    {
    if(Anfrage[playerid] == 2)
    {
    new string1[128],string2[128];
    Anfrage[playerid] = 0;
    format(string1,sizeof(string1),"Du hast das Angebot von %s angenommen und dein Fahrzeug wurde repariert",Spielername(AnfrageID[playerid]));
    format(string2,sizeof(string2),"%s hat dein Angebot angenommen",Spielername(playerid));
    SCM(playerid,orange2,string1);
    SCM(AnfrageID[playerid],orange2,string2);
    RepairVehicle(GetPlayerVehicleID(playerid));
    GivePlayerMoney(AnfrageID[playerid],Ueberweiser[playerid]);
    GivePlayerMoney(playerid,-Ueberweiser[playerid]);
    Ueberweiser[playerid] = 0;
    AnfrageID[playerid] = 0;
    }
    else
    {
    SCM(playerid,hellrot,"Du hast kein Angebot erhalten");
    }
    }
    return 1;
    }

    Aber wäre es bei deinem nicht egal was man für einen string eingibt? also z.B /accept hure oder so :D
    Wenn nicht erkläre es mir^^

    Hey


    Kann man mit OCMD einen Befehl bestehend aus 2 Wörtern scripten?
    Ich habe einen /accept repair befehl gescripted aber wenn ich zwischen accept und repair ein Leerzeichen mache bekomm ich haufen Errors sonst nicht


    ocmd:accept repair(playerid,params[])
    {
    if(Anfrage[playerid] == 2)
    {
    new string1[128],string2[128];
    Anfrage[playerid] = 0;
    format(string1,sizeof(string1),"Du hast das Angebot von %s angenommen und dein Fahrzeug wurde repariert",Spielername(AnfrageID[playerid]));
    format(string2,sizeof(string2),"%s hat dein Angebot angenommen",Spielername(playerid));
    SCM(playerid,orange2,string1);
    SCM(AnfrageID[playerid],orange2,string2);
    AnfrageID[playerid] = 0;
    RepairVehicle(GetPlayerVehicleID(playerid));
    }
    else
    {
    SCM(playerid,hellrot,"Du hast kein Angebot erhalten");
    }
    return 1;
    }

    Ich denke mal, dass Car_A für die car Angle steht aber diese ist ein Flot und kein Intwert also


    dini_IntSet(speichern,"Car_A",pInfo[i][Park_a]);//Hier ist ein Waning
    zu
    dini_FloatSet(speichern,"Car_A",pInfo[i][Park_a]);


    demnach müsste auch
    pInfo[i][Park_a] = dini_Int(speichern,"Car_A");
    zu
    pInfo[i][Park_a] = dini_Float(speichern,"Car_A");


    oder irre ich mich?

    Ich würde mal unter Autospeichern:
    Ge3tVihiclePos dazuschreiben :D


    Ich weiß was du meinst aber ich hab das so "gescripted", dass beim Speichern die Werte der Variablen aInfo[playerid][Xa]... in die Datei gespeichert werden udn wie man an meinem /park Befehl sehen kann nehmen die Variablen einen Wert an und dannach sollte dieser gespeichert werden also sollte das laut meinem Verständnis auch funktionieren
    Aber ich probiers trotzdem mal :D


    /edit:So habs probiert hab mal alles von dem CMD in den stock gepackt aber es funktioniert trotzdem nicht

    Also ich habe erst in mein Script eingebaut, dass man ein Auto in einer Datei gespeichert wird und wenn man connected geladen bzw wenn man disconnected "gelöscht" wird. Wenn man die Koordinaten in die Datei eingibt klappt das auch (Hab noch kein Autohaus oder dergleichen^^)
    Aber der /park Befehl dazu funktioniert die die Koordinaten bis auf die ModelID werden immer auf 0 gesetzt
    Hier mal meine Codeschnippsel


    enum Spielerauto
    {
    Modelid,
    Float:Xa,
    Float:Ya,
    Float:Za,
    Float:Angle,
    Farbe1,
    Farbe2
    };
    new aInfo[MAX_PLAYERS][Spielerauto];


    new privatcar[200];


    public OnPlayerDisconnect(playerid, reason)
    {
    //Speichern
    SpielerSpeichern(playerid);
    InventarSpeichern(playerid);
    ResetVehicle(playerid);
    pInfo[playerid][Eingeloggt]=0;
    Anfrage[playerid] = 0;
    Zielfrak[playerid] = 0;


    return 1;
    }


    /*ocmd:park(playerid,params[])
    {
    new vehicleid2,model2,Float:x2,Float:y2,Float:z2,Float:angle2,color1,color2;
    vehicleid2 = GetPlayerVehicleID(playerid),
    model2 = GetVehicleModel(vehicleid2);
    GetVehiclePos(model2,x2,y2,z2);
    GetVehicleZAngle(model2,angle2);
    GetVehicleColor(model2,color1,color2);
    aInfo[playerid][Modelid] = model2;
    aInfo[playerid][Xa] = x2;
    aInfo[playerid][Ya] = y2;
    aInfo[playerid][Za] = z2;
    aInfo[playerid][Angle] = angle2;
    aInfo[playerid][Farbe1] = color1;
    aInfo[playerid][Farbe2] = color2;
    AutoSpeichern(playerid);
    SCM(playerid,gelb,"Du hast dein Fahrzeug umgeparkt");
    return 1;
    }*/


    ocmd:park(playerid,params[])
    {
    new vehicleid2,model2,Float:x2,Float:y2,Float:z2,Float:angle2,color1,color2;
    vehicleid2 = GetPlayerVehicleID(playerid),
    model2 = GetVehicleModel(vehicleid2);
    GetVehiclePos(model2,x2,y2,z2);
    GetVehicleZAngle(model2,angle2);
    GetVehicleColor(model2,color1,color2);
    SCM(playerid,gelb,"Du hast dein Auto umgeparkt");
    new Autos[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Autos,sizeof(Autos),"/Autos/%s.txt",name);
    if(dini_Exists(Autos))
    {
    dini_IntSet(Autos,"FahrzeugID",model2);
    dini_FloatSet(Autos,"Pos X",x2);
    dini_FloatSet(Autos,"Pos Y",y2);
    dini_FloatSet(Autos,"Pos Z",z2);
    dini_FloatSet(Autos,"Angle",angle2);
    dini_IntSet(Autos,"Farbe 1",color1);
    dini_IntSet(Autos,"Farbe 2",color2);
    }
    return 1;
    }
    //Beider Befehle funktionieren nicht


    stock Register(playerid,key[])
    {
    new Spielerdatei[64];
    new Inventar[64];
    new Autos[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
    format(Inventar,sizeof(Inventar),"/Inventar/%s.txt",name);
    format(Autos,sizeof(Autos),"/Autos/%s.txt",name);
    dini_Create(Spielerdatei);
    dini_Create(Inventar);
    dini_Create(Autos);
    ...
    stock Login(playerid,key[])
    {
    new Spielerdatei[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
    if(!strcmp(key,dini_Get(Spielerdatei,"Passwort"),true))
    {
    AccountLaden(playerid);
    InventarLaden(playerid);
    AutoLaden(playerid);
    pInfo[playerid][Eingeloggt]=1;
    pInfo[playerid][ZsL]=0;
    SendClientMessage(playerid,grün,"Du hast dich erfolgreich eingeloggt");
    return 1;
    }
    else
    {
    SendClientMessage(playerid,rot,"Falsches Passwort");
    ShowPlayerDialog(playerid,DIALOG_Login,DIALOG_STYLE_PASSWORD,"Login"," Dein Account wurde gefunden, bitte gib dein Passwort ein.","Login","Abbrechen");
    return 1;
    }


    }
    stock AutoSpeichern(playerid)
    {
    new Autos[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Autos,sizeof(Autos),"/Autos/%s.txt",name);
    if(dini_Exists(Autos))
    {
    dini_IntSet(Autos,"FahrzeugID",aInfo[playerid][Modelid]);
    dini_FloatSet(Autos,"Pos X",aInfo[playerid][Xa]);
    dini_FloatSet(Autos,"Pos Y",aInfo[playerid][Ya]);
    dini_FloatSet(Autos,"Pos Z",aInfo[playerid][Za]);
    dini_FloatSet(Autos,"Angle",aInfo[playerid][Angle]);
    dini_IntSet(Autos,"Farbe 1",aInfo[playerid][Farbe1]);
    dini_IntSet(Autos,"Farbe 2",aInfo[playerid][Farbe2]);
    }
    return 1;
    }


    stock AutoLaden(playerid)
    {
    new Autos[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Autos,sizeof(Autos),"/Autos/%s.txt",name);
    if(dini_Exists(Autos))
    {
    aInfo[playerid][Modelid] = dini_Int(Autos,"FahrzeugID");
    aInfo[playerid][Xa] = dini_Float(Autos,"Pos X");
    aInfo[playerid][Ya] = dini_Float(Autos,"Pos Y");
    aInfo[playerid][Za] = dini_Float(Autos,"Pos Z");
    aInfo[playerid][Angle] = dini_Float(Autos,"Angle");
    aInfo[playerid][Farbe1] = dini_Int(Autos,"Farbe 1");
    aInfo[playerid][Farbe2] = dini_Int(Autos,"Farbe 2");
    privatcar[0+playerid] = CreateVehicle(aInfo[playerid][Modelid],aInfo[playerid][Xa],aInfo[playerid][Ya],aInfo[playerid][Za],aInfo[playerid][Angle],aInfo[playerid][Farbe1],aInfo[playerid][Farbe2],-1);
    }
    return 1;
    }


    stock ResetVehicle(playerid)
    {
    DestroyVehicle(privatcar[0+playerid]);
    return 1;
    }


    Ich hoffe ihr könnt mir helfen

    http://forum.sa-mp.com/showthread.php?t=235398


    keine ahnung ob das funktioniert

    Danke hat so ziemlich geklappt :D

    Du kannst sie ja in einer Variable speichern, wenn sie z.B. geändert wird.


    Code
    public OnVehicleRespray(playerid, vehicleid, color1, color2)

    Naja schon aber wenn jmd sein Fahrzeug nie umsprayed wird doch auch keine Variable gespeichert oder?
    Aber ist auch egal der obige Beitrag mit dem Include hat geklappt =)


    MfG
    MrMonkey

    Hey
    Ich scripte gerade dass ein Spieler ein Auto besitzen kann(Ich wills nicht System nennen :D)
    und dazu natürlich ein Park Befehl mit dessen man die Position und so herausbekommen usw.
    Aber ich hab keine Ahnung wie ich die Farbe eines Autos herausbekommen kann :D
    Gibt es dafür Funktionen oder wie?



    MfG
    MrMonkey

    Also ich habe mein Fraktionssystem gerade mal ein wenig ausgebaut und sitze jetzt an einem Invitebefehl
    Es gibt scho /giverank /setleader /uninvite und wer sich jetzt denkt naja /invite ist doch das umgekehrte von /uninvite der liegt zumindest was mein Problem angeht falsch
    Ich hab mir das so gedacht, dass man jmd per /invite eine Anfrage schickt, welcher der andere mit annehmen oder ablehnen kann aber ich hab ka wie ich diese CMs
    verbinde Wer den Code ließt wird sich denken können wie ich das machen wollte aber das Problem ist, dass in dem annehmen Befehl ja nicht mer die playerid des invitenden und der Frakid von ihm ist


    ocmd:invite(playerid,params[])
    {
    if(pInfo[playerid][Fraktion] == 1)return 1;
    if(!IstPlayerLeader(playerid,2))return SCM(playerid,rot,"Du besitzt nicht die nötigen Leaderrechte");
    new pID,string1[128],string2[128],string3[128],Fraktioni[50];
    if(sscanf(params,"u",pID))return SendClientMessage(playerid,rot,"Benutze /invite [ID]");
    if(pInfo[pID][Fraktion] != 1)return SCM(playerid,hellrot,"Dieser Spieler ist bereits in einer anderen Fraktion");
    switch(pInfo[playerid][Fraktion])
    {
    case 1:{Fraktioni="Zivilist";}
    case 2:{Fraktioni="SAPD";}
    case 3:{Fraktioni="FBI";}
    case 4:{Fraktioni="US Army";}
    case 5:{Fraktioni="Fahrschule";}
    case 6:{Fraktioni="BBC";}
    case 7:{Fraktioni="US Government";}
    case 8:{Fraktioni="Medics";}
    case 9:{Fraktioni="Ordnungsamt";}
    case 10:{Fraktioni="Yakuza";}
    case 11:{Fraktioni="Ndrangheta";}
    case 12:{Fraktioni="Brigada";}
    case 13:{Fraktioni="Sacra Corona Unita ";}
    case 14:{Fraktioni="Triaden";}
    }
    format(string1,sizeof(string1),"%s möchte dich in die Fraktion %s inviten.",Spielername(playerid),pInfo[playerid][Fraktion]);
    format(string2,sizeof(string2),"Benutze /annehmen um den Invite zu akzeptieren oder /cancel um ihn abzulehnen");
    format(string3,sizeof(string3),"Du hast %s angeboten in deine Fraktion invited zu werden",Spielername(pID));
    SCM(pID,orange,string1);
    SCM(pID,orange,string2);
    SCM(playerid,orange,string3);
    Anfrage(pID)=1;
    return 1;
    }


    ocmd:annehmen(playerid,params[])
    {
    if(Anfrage[playerid]==1)
    {
    Anfrage[playerid]=0;

    }
    if(Anfrage[playerid]==0)
    {
    SCM(playerid,hellrot,"Du hast keine Anfrage erhalten");
    }
    return 1;
    }


    Ich hoffe ihr könnt mir helfen

    Ja Leute ich wollte mal wissen, was so die bestem Filesysteme sind?


    Ich habe bisher dini genutzt und wollte nun umsteigen erst wollte ich mit Mysql oder SQLite anfangen hab aber bemerkt, dass das etwas schwer ist weil ich wirklich NOCH NIE mit Mysql und dergleichen gearbeitet hab. Also wollte ich erstmal ein besseres/schnelleres Filesystem als Dini
    Ich hatte vor auf SII uumzusteigen, weil das auch sehr gut sein soll hab aber auf verschiedenen Seiten im Internet gefunden, dass auch das schon wieder etwas "veraltet" sein soll.


    Also was ist das beste/schnellste Filesystem?


    Falls das eher in Smalltalk gehört bitte verschieben^^


    MfG
    MrMonkey