Beiträge von carlos1710

    So dumm bin ich auch nicht die warunug war egal ich mein nur das drunter warum das aufeinmal kommt
    das schlüssel nicht gebraucht wird weis ich
    Kann mir nun einer sagen wiso ich aufeinmal die datei größen angezeigt bekomme?

    Hallo ich habe eben dateiformate mit dini definirt wollte compilen únd das spuckte der compiler aus
    L:\Scripting\samp server\Reallive\SCReallive.pwn(1072) : warning 204: symbol is assigned a value that is never used: "schluesselID"
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase


    Header size: 2528 bytes
    Code size: 79448 bytes
    Data size: 165956 bytes
    Stack/heap size: 16384 bytes; estimated max. usage=4492 cells (17968 bytes)
    Total requirements: 264316 bytes


    1 Warning.

    Ich hatte das noch nie kann mir einer sagen was der von mir will?

    steht doch da
    wenn ich in ein auto einsteig und command eingebe dann meint der server dass es ihn nicht gibt und führt ihn darum auch nicht aus
    wenn ich den command eingebe ohne in einem auto zu sein steht das nicht das das es ihn nicht gibt alsoerkennt der server ihn ja
    eigentlich sollte das public autokaufen ausgeführt werden wenn man in einem auto ist

    Immer wenn ich in einem Auto sitze und /autokaufen eingebe steht unknown command
    Immer wenn ich in keinem auto sitze un /autokaufen eingebe passirt nix ( is auch nix programirt)
    so der befehl:
    if (strcmp("/autokaufen", cmdtext, true, 10) == 0)
    {
    new vehicleid = GetPlayerVehicleID(playerid);
    for(new i = 0; i < sizeof Buycars; i++)
    {
    if(vehicleid == kaufauto[i])
    {
    if(Spieler[playerid][geld] >= Buycars[i][Preis]) //geld abfrage anpassen!"
    {
    AutoKaufen(playerid); //eigenes public
    }
    else
    {
    SendClientMessage(playerid,0x00FF00,"Du hast nicht genug geld!");
    RemovePlayerFromVehicle(playerid);
    }
    }
    }
    return 1;
    }

    In meinem server wird eine datei einfach nicht erstellt stattdessen stürtzt der server ab
    public AutoKaufen(playerid)
    {
    print ("public");
    new extraini[256], Autodatei[256];
    format(extraini,256,"/extra.txt");
    carID = dini_Int(extraini,"carID");
    format(Autodatei,256,"/Autos/%s.txt",carID);
    for(new i = 0; i < sizeof Buycars; i++)
    {
    print ("public1");
    if(GetPlayerVehicleID(playerid) == kaufauto[i])
    {
    print ("public2");
    for(new j = 0; j < sizeof Autohaus; j++)
    {
    print ("public4");
    if(!strcmp(Autohaus[j][Name],Buycars[i][Autohausname],true))
    {
    print ("public3");//letzter Bericht
    dini_Create(Autodatei);//wird nciht ausgeführt
    print ("erstellt");//wird nicht erstellt
    dini_Set(Autodatei,"Name",Buycars[i][Name]);
    dini_IntSet(Autodatei,"modelid",Buycars[i][modelid]);
    Woran ligt das.
    Ich habe mich versuchert in meinen scriptfiles gibt es ein ordner namens Autos << genau so in groß und kleinschreibung

    die funktion geht denn wen ich zu wenig geld hab wird die client message ausgegeben
    zudem steht bei mir nix unter on player enter vehicle nur unter
    public OnPlayerStateChange(playerid, newstate, oldstate)
    {
    if(newstate == PLAYER_STATE_DRIVER)
    {
    new vehicleid = GetPlayerVehicleID(playerid);
    for(new i = 0; i < sizeof Buycars; i++)
    {
    if(vehicleid == kaufauto[i])
    {
    new str[150];
    format(str,sizeof(str),"Möchten Sie dieses Fahrzeug kaufen?\n\nName: %s\nPreis: %d", Buycars[i][Name], Buycars[i][Preis])// diese nachricht kann ich lesen
    SendClientMessage(playerid,COLOR_RED,"Tippe /autokaufen ein um das Auto zu kaufen.");// diese auch return 1;
    }
    else continue;
    }
    }
    return 1;
    }
    dieser public muss also funktionirten
    //EDIT: Der server schließt NACHDEM ich den befehl eingegeben habe
    //EDIT2: Wenn ich NICHT genug geld hab funktionirt alles die console debugt den befehl und es wird ausgegeben das mir das geld nicht reicht
    wenn mir das geld reicht wird nicht mal gedebugt (nicht mal "CMD" wird angezeigt die console stürtzt gleich ab
    //EDIT3: Ich und ein freund haben festgestellt, bei ihm funktionirt das auto erstellen wie es soll nur bei mir geht der server aus liegt das an meinem pc?
    //Edit4:nun wird bis zu public 3 gedebugt und dan stürtzt er ab
    aber an den scriptfiles kan es nicht liegen hab alle ordner

    public AutoKaufen(playerid)
    {
    print ("public");
    for(new i = 0; i < sizeof Buycars; i++)
    {
    print ("public1");
    if(GetPlayerVehicleID(playerid) == kaufauto[i])
    {
    print ("public2");
    for(new j = 0; j < sizeof Autohaus; j++)
    {


    print ("public4");
    if(!strcmp(Autohaus[j][Name],Buycars[i][Autohausname],true))//auto und autohaus sind gleich
    {
    print ("public3");
    new extraini[50];
    format(extraini,50,"/extra.txt");
    carID = dini_Int(extraini,"carID");// beim 1. auto ist carid 1
    new Autodatei[50];
    format(Autodatei,50,"/Autos/%s.txt",carID);
    dini_Create(Autodatei);
    dini_Set(Autodatei,"Name",Buycars[i][Name]);
    dini_IntSet(Autodatei,"modelid",Buycars[i][modelid]);
    dini_FloatSet(Autodatei,"HP",1000.00);
    dini_FloatSet(Autodatei,"posx",Autohaus[j][spawnx]);
    dini_FloatSet(Autodatei,"posy",Autohaus[j][spawny]);
    dini_FloatSet(Autodatei,"posz",Autohaus[j][spawnz]);
    dini_FloatSet(Autodatei,"posa",Autohaus[j][spawna]);
    dini_IntSet(Autodatei,"Abgeschlossen",0);
    dini_IntSet(Autodatei,"Farbe1",-1);
    dini_IntSet(Autodatei,"Farbe2",-1);
    dini_IntSet(Autodatei,"Paintjob",-1);
    dini_Set(Autodatei,"Nummernschild",Buycars[i][Name]);
    CreateVehicle(Buycars[i][modelid],Autohaus[j][spawnx],Autohaus[j][spawny],Autohaus[j][spawnz],Autohaus[j][spawna],-1,-1,-1);
    SetVehicleNumberPlate(carID,dini_Get(Autodatei,"Nummernschild"));
    dini_IntSet(Autodatei,"Spoiler",GetVehicleComponentInSlot(carID,0));
    dini_IntSet(Autodatei,"Hood",GetVehicleComponentInSlot(carID,1));
    dini_IntSet(Autodatei,"Roof",GetVehicleComponentInSlot(carID,2));
    dini_IntSet(Autodatei,"Sideskirt",GetVehicleComponentInSlot(carID,3));
    dini_IntSet(Autodatei,"Lamps",GetVehicleComponentInSlot(carID,4));
    dini_IntSet(Autodatei,"Nitro",GetVehicleComponentInSlot(carID,5));
    dini_IntSet(Autodatei,"Exhaust",GetVehicleComponentInSlot(carID,6));
    dini_IntSet(Autodatei,"Wheels",GetVehicleComponentInSlot(carID,7));
    dini_IntSet(Autodatei,"Stereo",GetVehicleComponentInSlot(carID,8));
    dini_IntSet(Autodatei,"Hydraulics",GetVehicleComponentInSlot(carID,9));
    dini_IntSet(Autodatei,"FrontBumper",GetVehicleComponentInSlot(carID,10));
    dini_IntSet(Autodatei,"RearBumper",GetVehicleComponentInSlot(carID,11));
    dini_IntSet(Autodatei,"VentRight",GetVehicleComponentInSlot(carID,12));
    dini_IntSet(Autodatei,"VentLeft",GetVehicleComponentInSlot(carID,13));
    RemovePlayerFromVehicle(playerid);
    GivePlayerMoney(playerid,Spieler[playerid][geld]-=Buycars[i][Preis]);
    Autohaus[j][Kasse]+=Buycars[i][Preis];
    Autos[carID][modelid] = dini_Int(Autodatei,"modelid");
    Autos[carID][HP] = dini_Int(Autodatei,"HP");
    Autos[carID][Farbe1] = dini_Int(Autodatei,"Farbe1");
    Autos[carID][Farbe2] = dini_Int(Autodatei,"Farbe2");
    Autos[carID][Paintjob] = dini_Int(Autodatei,"Paintjob");
    Autos[carID][Nummernschild] = dini_Int(Autodatei,"Nummernschild");
    Autos[carID][posx] = dini_Int(Autodatei,"posx");
    Autos[carID][posy] = dini_Int(Autodatei,"posy");
    Autos[carID][posz] = dini_Int(Autodatei,"posz");
    Autos[carID][posa] = dini_Int(Autodatei,"posa");
    Autos[carID][Abgeschlossen] = dini_Int(Autodatei,"Abgeschlossen");
    Autos[carID][Spoiler] = dini_Int(Autodatei,"Spoiler");
    Autos[carID][Wheels] = dini_Int(Autodatei,"Wheels");
    Autos[carID][Nitro] = dini_Int(Autodatei,"Nitro");
    Autos[carID][Roof] = dini_Int(Autodatei,"Roof");
    Autos[carID][Hood] = dini_Int(Autodatei,"Hood");
    Autos[carID][Sideskirt] = dini_Int(Autodatei,"Sideskirt");
    Autos[carID][Lamps] = dini_Int(Autodatei,"Lamps");
    Autos[carID][Exhaust] = dini_Int(Autodatei,"Exhaust");
    Autos[carID][Stereo] = dini_Int(Autodatei,"Stereo");
    Autos[carID][Hydraulics] = dini_Int(Autodatei,"Hydraulics");
    Autos[carID][VentRight] = dini_Int(Autodatei,"VentRight");
    Autos[carID][VentLeft] = dini_Int(Autodatei,"VentLeft");
    Autos[carID][FrontBumper] = dini_Int(Autodatei,"FrontBumper");
    Autos[carID][RearBumper] = dini_Int(Autodatei,"RearBumper");
    carID ++;//auto mit carid wuede erstellt und ein enuer slot für ein auto wird frei gemacht[carid ist nun 2 ]
    }
    }
    }
    }
    return 1;
    }
    //EIDT: Die funktion wird nicht aufgerufen (keine dubug info da console ja zu ist)

    Immer wenn ich diesen cmd eingebe:
    if (strcmp("/autokaufen", cmdtext, true, 10) == 0)
    {
    print ("cmd");
    new vehicleid = GetPlayerVehicleID(playerid);
    for(new i = 0; i < sizeof Buycars; i++)
    {
    print ("schleife");
    if(vehicleid == kaufauto[i])
    {
    print ("austo");
    if(Spieler[playerid][geld] >= Buycars[i][Preis]) //geld abfrage anpassen!"
    {
    print ("kaufen");
    AutoKaufen(playerid); //eigenes public
    }
    else
    {
    SendClientMessage(playerid,0x00FF00,"Du hast nicht genug geld!");
    RemovePlayerFromVehicle(playerid);
    }
    }
    }
    return 1;
    }
    geht die console aus aber es steht nirgendwo "ServerClose the Connection" und ingame gibts auch kein restart
    Hier mal meine server_log
    ----------------------
    v0.3c R2, (C)2005-2011 SA-MP Team


    [13:36:27] filterscripts = "" (string)
    [13:36:27]
    [13:36:27] Server Plugins
    [13:36:27] --------------
    [13:36:27] Loaded 0 plugins.


    [13:36:27]
    [13:36:27] Filter Scripts
    [13:36:27] ---------------
    [13:36:27] Loaded 0 filter scripts.
    ------------------------------------------------------------------------
    [13:36:28] Ganmemode by Benjamin Stern alias: carlos1710, BennIY and bennistirili.
    [13:36:28] ------------------------------------------------------------------------


    [13:36:28] Number of vehicle models: 14
    [13:36:49] Incoming connection: 127.0.0.1:53445
    [13:36:50] [join] BennIY has joined the server (0:127.0.0.1)
    Console input: lol // debug nach dem connecten
    Console input: login // debug nach login
    Console input: spawn // debug nach skinwahl
    Console input: im auto // debug wen ich mich ins auto setze
    //nach dem ins auto setzen geb ich "/autokaufen" ein und die console schließt (ingame bekommt man davon aber nix mit das spiel läuft weiter)

    Ich hab das nur gemacht zum testen ja der interordner heist "Spieler" und das eingeloggt = 1 hab ich nur dadrübetr gemacht um heraus zu finden ob es an der abfrage oder an der variable ligt
    weist du was da falsch ist (In echt wird die variable nach register oder login auf 1 gesetzt)das einzige was gespeichert wird ist das passwort (direkt nach dem login)
    //EDIT Oh nein im unterordner von spieler ist nix das ist ein fehler hab was schnell mit replace getauscht war das auch dabei ich glaub daran ligts nun mal testen
    //EDIT 2 nun gez danke kein wunder das es nciht ging wenn acc>Forumat nicht existirt
    Aber nun Spawnt man am 0 punkt muss da noh irgendwo getplayerpos vorher rein?

    Ich hab grad Ich hab grad mein login registriersystem eingebaut und festsellen müüssen, dass eine Abfrage nich funfktionirt Hab mit debuggen versucht und den fehler gefunden weis aber nicht was falsch ist
    public OnPlayerDisconnect(playerid, reason)
    {
    print("public");
    new pname[MAX_PLAYERS],accFormat[128];
    GetPlayerName(playerid,pname,sizeof pname);
    format(accFormat,sizeof accFormat,"Spieler/Spieler/%s.datei",pname);
    print("abfrage");
    Spieler[playerid][eingeloggt] = 1;//variable wird auf 1 gesetzt
    if(fexist(accFormat) && Spieler[playerid][eingeloggt] == 1)//variable ist nicht mehr 1 Wiso?
    {
    print("speichern");
    dini_IntSet(accFormat,"skin",Spieler[playerid][skin]);
    dini_FloatSet(accFormat,"lastx",Spieler[playerid][lastx]);
    dini_FloatSet(accFormat,"lasty",Spieler[playerid][lasty]);
    dini_FloatSet(accFormat,"lastz",Spieler[playerid][lastz]);
    }
    print("reset");
    Spieler[playerid][eingeloggt] = 0;
    Spieler[playerid][skin] = 0;
    Spieler[playerid][lastx] = (0.0);
    Spieler[playerid][lasty] = (0.0);
    Spieler[playerid][lastz] = (0.0);
    return 1;
    }
    die funktion speichern wied nicht aufgerufen

    Du kannst das scritp für diebe soo unbrauchbar machen das sie nur deine code stukturen sehen können ( alle variabeln sind falsch decompilirt)
    Du kannst dein scritp gegen deamx zwar schützen aber ich mache das nicht da ich deamx selber benutze um aus alten filterscripts befehle sehe
    wenn du dein script zu 99.99 % schützen willst mach genug befehle die nur du kennst z.b. alle userdaten oder scriptfiles löschen.
    Leute bannen (ohne admin sein zu müssen) per befehl usw denk dir solche hürden aus denn jeder der dein script auf macht und diese befehle sieht kann sie trotzdem nicht verändern da des unbrauchbar ist somit bist du immer sicher.

    Hat nachteile:
    Der Dieb nutzt DeAMX und sieht den befehl, kann dan auch den server aktiviren.(Löschen kann er ihn ja net da das script dann unbrauchbar wird.
    Ich würd sowiso ein cmd mit /creadits machen damit ist man sucher.(kann er auch nicht editiren da es sonst unbrauchbar wird)
    Und im notfall hab ich auch ein cmd den nur ich weis der alle spieelrdaten löscht und den server "zerstört" wenn der dieb kein backup hat hab ich gewonnen(was aber auch ne nachteil hat, dass der Dieb den cmd sieht)[Er kann ihn aber nicht weg machen da sonst das script kaputt ist]
    Wer euer gm haben will kommt immer dran man kann sich nie 100% schützen aber man kann sich immer dinge einfallen lassen die Diebe hindern.

    Hallo brotfische
    Nachdem ich mein haussystem wegen errors wieder gelöscht habe hab ich ein 2. Problem
    Beim Loginsystem ist das passwort des spielers IMMER richtig.
    Hier ein bisschen code:
    if(dialogid == DIALOG_LOGIN)// ID Login {
    {
    print("LOGIN");
    if(!strlen(inputtext))
    {
    print("LOGINFalse");
    return SendClientMessage(playerid,0xFFFFFFFF,"Kein Passwort angegeben!Du wurdest gekickt.");
    }
    if(strcmp(inputtext,dini_Get(accFormat,"Passwort")) == 0) //Egal was man eingibt, es wird immer "true" zurück gegeben .Die ganze zeit gings nun aufeinmal nicht mehr, was ist das Falsch .
    {
    print("LOGINTrue");
    Spieler[playerid][hateinacc] = 1;
    Spieler[playerid][eingeloggt] = 1; // Spieler ist nun erfolgreich eingeloggt
    Spieler[playerid][Virtualworld] = dini_Int(accFormat,"Virtualworld");
    Spieler[playerid][geld] = dini_Int(accFormat,"geld");
    Spieler[playerid][skin] = dini_Int(accFormat,"skin");
    Virtualworldd = Spieler[playerid][Virtualworld];
    spielergeld = Spieler[playerid][geld];
    spielerskin = Spieler[playerid][skin];
    SendClientMessage(playerid,0xFFFFFFFF,"Du wurdest erfolgreich eingeloggt.Drücke in der ClassSelection einfach auf spawn dein Skin wird automatisch geladen");
    }
    if(!strcmp(inputtext,dini_Get(accFormat,"Passwort")) == 0)
    {
    print("LOGINError");
    SendClientMessage(playerid,0xFFFFFFFF,"Das Passwort war Falsch!Du wurdest gekickt.");
    }
    }
    Das system ist nach dem tutorial (Login/register mit Gui) aufgebaut.
    Die Prints sind noch vom Debug

    GetPlayerPos(playerid, Spieler[playerid][lastx], Spieler[playerid][lasty], Spieler[playerid][lastz]);
    so hab ich die position des spielers abgefragt schau mal im tutorialbereich da is ein simples login/registrir tut und wa wird auch diese funktion angesprochen.

    frag mal die coordinaten bei onPlayerDissconnet ab und anch dort für jede koordinate eine zeile also
    dini_FloatSet([DEIN_DATEINAME],"lastx",Spieler[playerid][lastx]);
    dini_FloatSetDEIN_DATEINAME],"lasty",Spieler[playerid][lasty]);
    dini_FloatSetDEIN_DATEINAME],"lastz",Spieler[playerid][lastz]);
    und bei on player spawn
    Spieler[playerid][lastx] = dini_Float(accFormat,"lastx");
    Spieler[playerid][lasty] = dini_Float(accFormat,"lasty");
    Spieler[playerid][lastz] = dini_Float(accFormat,"lastz");
    SetPlayerPos(playerid,Spieler[playerid][lastx],Spieler[playerid][lasty],Spieler[playerid][lastz]);
    lädst du die variabeln und setzt den spieler an die position ( musst du an dein scritp editiren)