Beiträge von usekevin


    solche leute wie dich sollten mal gefelgt den mund halten es ist ein hilfe forum und für sowas da mein gott deine besserwisserei kozt mich an :cursing:

    Lern mal Deutsch. Ist ja Grausam...


    @ Schlumpf guck dir die ersten Seiten vom Script Thread durch. da ist eine Version FERTIG von mir hoch geladen irgendwo. Da müsste das eigentlich funktionieren. Hatte es als es raus kam nur mal kurz angetestet

    Du hast gefragt, was du falsch gemacht hast und ich habe dir die Antwort gegeben. Gehörte also zum Topic ;)


    Aber wenn etwas nicht in der db gespeichert wird, läuft wohl irgendetwas im Script falsch. Sonst würds ja gespeichert werden. Also schau das script durch und such nach der Speichermethode.

    Hiho alle zusammen.


    Brauche mal eure Hilfe :)


    Ich habe mir jetzt unter OnPlayerConnect folgendes reingesetzt:


    PlayAudioStreamForPlayer(playerid, "LINK");
    SendClientMessage(playerid,ROT,"Du hörst bla bla bla. benutze /... um das Lied abzubrechen");


    Was muss ich nun tun, damit der Spieler das Lied abbrechen kann, wenn er es nicht hören will?
    Klar, nen Command einbasteln. Soweit war ich auch :D


    Aber wie? :D


    Danke schonmal :)

    Kauf dir doch eine. Meine Güte. dir wird NIE NIE NIE NIE NIE NIE NIE NIE NIEMAND hier ne PSC geben mit dem Guthaben.


    Und dann lern mal mit Satzzeichen zu schreiben. Deinen Text zu Lesen ist GRAUENHAFT!

    Du magst mir nicht zufällig erklären wie das geht oder? :D


    €:// Dann mal noch ne Frage. Man fügt das Remove zeugs ja bei OnPlayerConnect ein. Wieso eigentlich nicht auch das CreateObject zeugs? Wird dann zwar falls das geht alles beim Connecten geladen, aber dafür sind alle Objekte doch SOFORT da oder nicht?


    Edit:// Rechtschreibung

    Ich meinte das SO:



    #include <a_samp>
    #include <dini>
    #include <Dudb>
    #define dcmd(%1,%2,%3) if ((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, "")))||(((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1


    //enums


    enum Info //Info ist der name des enums
    {
    //deine sachen, die gepseichert werden sollen
    }


    enum Info
    {
    passwort[128], // 128 steht für die maximale länge des passworts
    skin,
    };


    new pInfo[MAX_PLAYERS][Info];
    new bool:loggedin[MAX_PLAYERS];
    //Farben


    #define Blau 0x0005FFFF
    #define Rot 0xFF1400FF
    #define Weis 0xFAFAFAFF
    #define Gelb 0xFFFA00FF
    #define Grau 0x8C8C8CFF


    //Variablen


    new Variabele = 1,Variabeleleer;
    new Pickupm;
    new ammunationenter;
    new ammunationexit;


    main()
    {
    print("\n----------------------------------");
    print(" Test/Anfänger Script Server");
    print("----------------------------------\n");
    }


    public OnGameModeInit()
    {
    DisableInteriorEnterExits();
    //Pickups
    Pickupm = CreatePickup(1239,1,1089.8258,-1788.5428,13.6543,-1);
    ammunationenter = CreatePickup(1239,1,1368.0730,-1279.7357,13.5469,-1);
    ammunationexit = CreatePickup(1239,1,285.3749,-40.9756,1001.5156,-1);
    //skins


    SetGameModeText("Test Gamemode");
    AddPlayerClass(0,1398.0420,-918.7873,47.1435,303.6881,0,0,0,0,0,0); // skinchange
    AddPlayerClass(1,1398.0420,-918.7873,47.1435,303.6881,0,0,0,0,0,0); // skinchange
    AddPlayerClass(2,1398.0420,-918.7873,47.1435,303.6881,0,0,0,0,0,0); // skinchange
    AddPlayerClass(3,1398.0420,-918.7873,47.1435,303.6881,0,0,0,0,0,0); // skinchange


    //3D Texte
    Create3DTextLabel("Wilkommen am Spawnpunkt",Blau,1108.1499,-1796.5588,16.5938,25.0,0);


    //Autos
    AddStaticVehicle(411,1062.5868,-1775.6394,12.8493,271.3270,112,1); // Infernus


    printf("%d",Variabele);
    }


    public OnGameModeExit()
    {
    return 1;
    }


    public OnPlayerRequestClass(playerid, classid)
    {
    SetPlayerVirtualWorld(playerid,1+playerid);
    SetPlayerPos(playerid, 1398.0420,-918.7873,47.1435);
    SetPlayerCameraPos(playerid, 1398.0420,-918.7873,47.1435);
    SetPlayerCameraLookAt(playerid, 1399.6635,-917.1542,47.1435);
    return 1;
    }


    public OnPlayerConnect(playerid)
    {
    new name[128], save[128]; // Dies machen wir um den Namen vom Spieler aufzuschreiben || Hiermit können wir sagen, dass etwas gespeichert werden soll
    GetPlayerName(playerid,name,sizeof(name)); // Dies sagt, er soll( vom Spieler, den namen, in der größe name aufschreiben)
    format(save,sizeof(save),"/Spieler/%s.ini",name); // Hier wird gechekt, wo der Spieler gespeichert ist, bzw. wo ein Spieler angelegt werden soll.
    if(dini_Exists(save)) // Hier wird geprüft, ob die Datei des Spielers schon existiert.
    { // Wenn ja, sende einen Text und lade den Skin und das Geld
    SendClientMessage(playerid, 0x33CCFFAA, "Willkommen bei SA:MP 0.3 Server");
    SendClientMessage(playerid, 0xFFFFFFAA, "Dein Account wurde wiedererkannt.");
    SendClientMessage(playerid, 0xFFFFFFAA, "Du kannst dich jetzt einloggen.");
    SendClientMessage(playerid, 0xFFFFFFAA, "Benutze dazu /login [passwort].");
    GivePlayerMoney(playerid,dini_Int(save,"Geld")); // Hier wird das geld dem Spieler gegeben, was er vorher hatte
    SetPlayerSkin(playerid,dini_Int(save,"Skin")); // Hier wird der Skin des Spielers geladen
    }
    else
    {
    if(!dini_Exists(save)) // Wenn kein Spieler mit dem Namen existiert
    { //Sende einen Text
    SendClientMessage(playerid, 0x33CCFFAA, "Willkommen bei SA:MP 0.3 Server");
    SendClientMessage(playerid, 0xFFFFFFAA, "Du hast noch keinen Account.");
    SendClientMessage(playerid, 0xFFFFFFAA, "Du kannst dich jetzt registrieren.");
    SendClientMessage(playerid, 0xFFFFFFAA, "Benutze dazu /register [passwort].");
    }
    }
    return 1;
    new string[100];
    Variabeleleer = 100;
    SendClientMessage(playerid,Blau,"Wilkommen auf meinen Test/Anfänger Server");
    format(string,sizeof(string),"Hier kommt die Zahl %d",Variabeleleer);
    SendClientMessage(playerid,Blau,string);
    return 1;
    }


    public OnPlayerDisconnect(playerid, reason)
    {
    new name[128], save[128];// Gleiche
    GetPlayerName(playerid,name,sizeof(name)); // wie
    format(save,sizeof(save),"/Spieler/%s.ini",name);// oben
    if(dini_Exists(save)) // steht
    {
    dini_IntSet(save,"Geld",GetPlayerMoney(playerid)); // speichert das aktuelle Geld, was der Spieler zum schluss hatte
    dini_IntSet(save,"Skin",GetPlayerSkin(playerid)); // speichert den aktuellen Skin, welchne der Spieler zum schluss hatte
    }
    return 1;
    }


    public OnPlayerSpawn(playerid)
    {
    new name[128], save[128];// Gleiche
    GetPlayerName(playerid,name,sizeof(name)); // wie
    format(save,sizeof(save),"/Spieler/%s.ini",name);// oben
    if(loggedin[playerid] == false) //Wenn er nicht eingeloggt ist
    {
    SendClientMessage(playerid, 0xAA3333AA, "Du musst dich Einloggen bevor du spawnst!");
    Kick(playerid); // Kicke den Spieler
    }
    SetPlayerSkin(playerid,dini_Int(save,"Skin")); //lade und setze den gespeicherten Skin
    return 1;
    SetPlayerVirtualWorld(playerid,0);
    SetPlayerPos(playerid,1108.1499,-1796.5588,16.5938);//Spawn
    SetPlayerFacingAngle(playerid,87.9678);
    return 1;
    }


    public OnPlayerDeath(playerid, killerid, reason)
    {
    return 1;
    }


    public OnVehicleSpawn(vehicleid)
    {
    return 1;
    }


    public OnVehicleDeath(vehicleid, killerid)
    {
    return 1;
    }


    public OnPlayerText(playerid, text[])
    {
    return 1;
    }


    public OnPlayerCommandText(playerid, cmdtext[])
    {
    if(strcmp(strget(cmdtext,0), "/login", true) == 0)
    {
    new save[40], s2[256]; //gleiche wie oben
    GetPlayerName(playerid,spieler,sizeof(spieler));
    format(save,sizeof(save),"Spieler/%s.ini",spieler);
    if(dini_Exists(save)) // wenn Datei existiert
    {
    s2=dini_Get(save,"passwort"); // lade das Passwort
    if(strval(s2)==udb_hash(strget(cmdtext,1))) // wenn die Eingabe nach /login mit dem Passwort von der registration übereinstimmt
    {
    loggedin[playerid] = true; //sage dem Server, dass der Spieler eingeloggt ist.
    SendClientMessage(playerid, 0x33CCFFAA, "***Du hast dich erfolgreich eingeloggt***");
    SpawnPlayer(playerid);
    }
    else // wenn das passwort nicht stimmt
    {
    SendClientMessage(playerid, 0xAA3333AA, "Passwort Falsch!");
    }
    }
    return 1;
    }


    new spieler[MAX_PLAYER_NAME]
    if(strcmp(strget(cmdtext,0), "/register", true) == 0)
    {
    new save[40]; // Erstelle einen neuen String "save", wobei 40 Wörter verwendet werden können.
    GetPlayerName(playerid,spieler,sizeof(spieler));
    format(save, sizeof(save),"Spieler/%s.ini",spieler); //Speicherort
    if(!dini_Exists(save)) // wenn der Spieler sich regestriert und es noch keine .ini Datei mit seinem Namen gibt
    {
    dini_Create(save); // Erstelle eine Neue .ini Datei
    dini_IntSet(save,"passwort",udb_hash(strget(cmdtext,1))); // Setze in die .ini Datei(save,"dass passwort", welches er eingegeben hat) || das udb_hash verschlüsselt das Passwort in der .ini. Dazu benötigen wir die oben angegebene Include DUBD.
    SendClientMessage(playerid, 0x33AA33AA, "***Dein Account wurde erfolgreich registriert***");
    SendClientMessage(playerid, 0x33AA33AA, "***Nutze /login [Passwort] um dich einzuloggen***");
    }
    else
    {
    if(dini_Exists(save)) // Wenn beim regestrieren die Datei schon besteht
    {
    SendClientMessage(playerid, 0xAA3333AA, "Der Account ist bereits registriert");
    }
    }
    return 1;
    }
    dcmd(kick,4,cmdtext);
    if (strcmp("/help", cmdtext, true, 10) == 0)
    {
    SendClientMessage(playerid,Weis,"-|Hilfe Commands|-");
    SendClientMessage(playerid,Gelb,"____________________________________________________");
    SendClientMessage(playerid,Gelb,"____________________________________________________");
    return 1;
    }
    return 0;
    }


    public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
    {
    return 1;
    }


    public OnPlayerExitVehicle(playerid, vehicleid)
    {
    return 1;
    }


    public OnPlayerStateChange(playerid, newstate, oldstate)
    {
    return 1;
    }


    public OnPlayerEnterCheckpoint(playerid)
    {
    return 1;
    }


    public OnPlayerLeaveCheckpoint(playerid)
    {
    return 1;
    }


    public OnPlayerEnterRaceCheckpoint(playerid)
    {
    return 1;
    }


    public OnPlayerLeaveRaceCheckpoint(playerid)
    {
    return 1;
    }


    public OnRconCommand(cmd[])
    {
    return 1;
    }


    public OnPlayerRequestSpawn(playerid)
    {
    return 1;
    }


    public OnObjectMoved(objectid)
    {
    return 1;
    }


    public OnPlayerObjectMoved(playerid, objectid)
    {
    return 1;
    }


    public OnPlayerPickUpPickup(playerid, pickupid)
    {
    if(pickupid == Pickupm)
    {
    SendClientMessage(playerid,Weis,"-|Hilfe für neue User|-");
    SendClientMessage(playerid,Gelb,"____________________________________________________");
    SendClientMessage(playerid,Gelb,"____________________________________________________");
    }
    if(pickupid == ammunationenter)
    {
    SetPlayerPos(playerid,287.0065,-39.5749,1001.5156);
    SetPlayerFacingAngle(playerid,296.3441);
    SetPlayerInterior(playerid,1);
    }
    if(pickupid == ammunationexit)
    {
    SetPlayerPos(playerid,1365.8484,-1279.7980,13.5469);
    SetPlayerFacingAngle(playerid,87.5324);
    SetPlayerInterior(playerid,0);
    }
    return 1;
    }


    public OnVehicleMod(playerid, vehicleid, componentid)
    {
    return 1;
    }


    public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
    {
    return 1;
    }


    public OnVehicleRespray(playerid, vehicleid, color1, color2)
    {
    return 1;
    }


    public OnPlayerSelectedMenuRow(playerid, row)
    {
    return 1;
    }


    public OnPlayerExitedMenu(playerid)
    {
    return 1;
    }


    public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
    {
    return 1;
    }


    public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
    {
    return 1;
    }


    public OnRconLoginAttempt(ip[], password[], success)
    {
    return 1;
    }


    public OnPlayerUpdate(playerid)
    {
    return 1;
    }


    public OnPlayerStreamIn(playerid, forplayerid)
    {
    return 1;
    }


    public OnPlayerStreamOut(playerid, forplayerid)
    {
    return 1;
    }


    public OnVehicleStreamIn(vehicleid, forplayerid)
    {
    return 1;
    }


    public OnVehicleStreamOut(vehicleid, forplayerid)
    {
    return 1;
    }


    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    return 1;
    }


    public OnPlayerClickPlayer(playerid, clickedplayerid, source)
    {
    return 1;
    }


    //DCMD Befehle


    dcmd_kick(playerid,params[])
    {
    new pid, str[64];
    if(sscanf(params,"us")) return SendClientMessage(playerid,Grau,"/kick [ID] [Grund]");
    if(!IsPlayerConnected(pid)) return SendClientMessage(playerid,Rot,"Der Spieler konnte nicht gefunden werden !");
    if(IsPlayerAdmin(playerid))
    {
    new Spieler[MAX_PLAYER_NAME], str2[128];
    GetPlayerName(pid,Spieler,sizeof(Spieler));
    format(str2,sizeof(str2),"%s wurden vom Server gekickt! Grund: %s",Spieler,str);
    SendClientMessageToAll(Rot,str2);
    Kick(pid);
    }
    else return SendClientMessage(playerid,Weis,"Du bist kein Administrator!");
    return 1;
    }


    //DCMD Befehle Ende !


    stock sscanf(string[], format[], {Float,_}:...)
    {
    #if defined isnull
    if (isnull(string))
    #else
    if (string[0] == 0 || (string[0] == 1 && string[1] == 0))
    #endif
    {
    return format[0];
    }
    #pragma tabsize 4
    new
    formatPos = 0,
    stringPos = 0,
    paramPos = 2,
    paramCount = numargs(),
    delim = ' ';
    while (string[stringPos] && string[stringPos] <= ' ')
    {
    stringPos++;
    }
    while (paramPos < paramCount && string[stringPos])
    {
    switch (format[formatPos++])
    {
    case '\0':
    {
    return 0;
    }
    case 'i', 'd':
    {
    new
    neg = 1,
    num = 0,
    ch = string[stringPos];
    if (ch == '-')
    {
    neg = -1;
    ch = string[++stringPos];
    }
    do
    {
    stringPos++;
    if ('0' <= ch <= '9')
    {
    num = (num * 10) + (ch - '0');
    }
    else
    {
    return -1;
    }
    }
    while ((ch = string[stringPos]) > ' ' && ch != delim);
    setarg(paramPos, 0, num * neg);
    }
    case 'h', 'x':
    {
    new
    num = 0,
    ch = string[stringPos];
    do
    {
    stringPos++;
    switch (ch)
    {
    case 'x', 'X':
    {
    num = 0;
    continue;
    }
    case '0' .. '9':
    {
    num = (num << 4) | (ch - '0');
    }
    case 'a' .. 'f':
    {
    num = (num << 4) | (ch - ('a' - 10));
    }
    case 'A' .. 'F':
    {
    num = (num << 4) | (ch - ('A' - 10));
    }
    default:
    {
    return -1;
    }
    }
    }
    while ((ch = string[stringPos]) > ' ' && ch != delim);
    setarg(paramPos, 0, num);
    }
    case 'c':
    {
    setarg(paramPos, 0, string[stringPos++]);
    }
    case 'f':
    {


    new changestr[16], changepos = 0, strpos = stringPos;
    while(changepos < 16 && string[strpos] && string[strpos] != delim)
    {
    changestr[changepos++] = string[strpos++];
    }
    changestr[changepos] = '\0';
    setarg(paramPos,0,_:floatstr(changestr));
    }
    case 'p':
    {
    delim = format[formatPos++];
    continue;
    }
    case '\'':
    {
    new
    end = formatPos - 1,
    ch;
    while ((ch = format[++end]) && ch != '\'') {}
    if (!ch)
    {
    return -1;
    }
    format[end] = '\0';
    if ((ch = strfind(string, format[formatPos], false, stringPos)) == -1)
    {
    if (format[end + 1])
    {
    return -1;
    }
    return 0;
    }
    format[end] = '\'';
    stringPos = ch + (end - formatPos);
    formatPos = end + 1;
    }
    case 'u':
    {
    new
    end = stringPos - 1,
    id = 0,
    bool:num = true,
    ch;
    while ((ch = string[++end]) && ch != delim)
    {
    if (num)
    {
    if ('0' <= ch <= '9')
    {
    id = (id * 10) + (ch - '0');
    }
    else
    {
    num = false;
    }
    }
    }
    if (num && IsPlayerConnected(id))
    {
    setarg(paramPos, 0, id);
    }
    else
    {
    #if !defined foreach
    #define foreach(%1,%2) for (new %2 = 0; %2 < MAX_PLAYERS; %2++) if (IsPlayerConnected(%2))
    #define __SSCANF_FOREACH__
    #endif
    string[end] = '\0';
    num = false;
    new
    name[MAX_PLAYER_NAME];
    id = end - stringPos;
    foreach (Player, playerid)
    {
    GetPlayerName(playerid, name, sizeof (name));
    if (!strcmp(name, string[stringPos], true, id))
    {
    setarg(paramPos, 0, playerid);
    num = true;
    break;
    }
    }
    if (!num)
    {
    setarg(paramPos, 0, INVALID_PLAYER_ID);
    }
    string[end] = ch;
    #if defined __SSCANF_FOREACH__
    #undef foreach
    #undef __SSCANF_FOREACH__
    #endif
    }
    stringPos = end;
    }
    case 's', 'z':
    {
    new
    i = 0,
    ch;
    if (format[formatPos])
    {
    while ((ch = string[stringPos++]) && ch != delim)
    {
    setarg(paramPos, i++, ch);
    }
    if (!i)
    {
    return -1;
    }
    }
    else
    {
    while ((ch = string[stringPos++]))
    {
    setarg(paramPos, i++, ch);
    }
    }
    stringPos--;
    setarg(paramPos, i, '\0');
    }
    default:
    {
    continue;
    }
    }
    while (string[stringPos] && string[stringPos] != delim && string[stringPos] > ' ')
    {
    stringPos++;
    }
    while (string[stringPos] && (string[stringPos] == delim || string[stringPos] <= ' '))
    {
    stringPos++;
    }
    paramPos++;
    }
    do
    {
    if ((delim = format[formatPos++]) > ' ')
    {
    if (delim == '\'')
    {
    while ((delim = format[formatPos++]) && delim != '\'') {}
    }
    else if (delim != 'z')
    {
    return delim;
    }
    }
    }
    while (delim > ' ');
    return 0;
    }



    E:// Verdammt, da war jemand ne Sekunde schneller :D