Beiträge von Levis_Escobar

    Habe das ganze mal neugeschrieben und funktioniert nun.
    Ich habe ein Problem und bin sehr stark am verzweifeln.
    Ich will, dass Spieler sich gegenseitig SMS's schicken können, also überprüfe Ich erst, ob die Nummer die eingeben wurde, in
    der MySQL Datenbank existiert/Ob Spieler eingeloggt ist/ und ob das Guthaben ausreicht.


    Erstmal will Ich die Spielernamen herrausfinden, von der Nummer die eingegeben wurde, damit Ich später
    auch die ID herrausfinden kann und dem Spieler der die SMS bekommen soll, eine Nachricht schicken kann.

    stock PlayerNumbersName(xNumber)
    {
    new Query[128], count, pName[MAX_PLAYER_NAME+1]; // Zeile 3617
    format(Query, sizeof(Query), "SELECT Name FROM `srv_accounts` WHERE `Nummer` = '%d'", xNumber); // Zeile 3618
    mysql_query(Query); // Zeile 3619
    mysql_store_result(); // Zeile 3620
    count = mysql_num_rows(); // Zeile 3621
    mysql_fetch_string(pName); // Zeile 3622
    mysql_free_result(); // Zeile 3623
    if(count == 0) // Zeile 3624
    {
    return 0;
    }
    else
    {
    return pName;
    }
    return 1;
    }


    Davor will Ich jedoch auch überprüfen, ob die Nummer überhaupt in der Datenbank irgendeinem Spieler zugewiesen wurde bzw. ob die Nummer überhaupt existiert.

    stock PlayerNumber(xNumber)
    {
    new Query[128], count, PNumber;
    format(Query, sizeof(Query), "SELECT Nummer FROM `srv_accounts` WHERE `Nummer` = '%d'", xNumber);
    mysql_query(Query);
    mysql_store_result();
    count = mysql_num_rows();
    mysql_fetch_int(PNumber); // Zeile 3642
    mysql_free_result();
    if(count == 0)
    {
    return 0;
    }
    else
    {
    return PNumber;
    }
    return 1; // Zeile 3652
    }


    Und als guter letzt das Befehl.
    dcmd_sms(playerid, params[])
    {
    new pNumber, Message[128], gName[MAX_PLAYER_NAME+1];
    if(sscanf(params, "us", pNumber, Message)) { return SendClientMessage(playerid, HELLROT, "{FF1400}=> {FFFFFF}Benutzung: {FF1400}/sms [Nummer] [Nachricht]"); }
    if(PlayerNumber(pNumber) == 0) { return SendClientMessage(playerid, GRAU, "Tut... Tut... Tut..."); }
    if(GetPlayerMoney(playerid) < 12) { return SendClientMessage(playerid, GRAU, "Eine SMS (Nachricht) kostet $12. Dein Guthaben reicht nicht aus."); }


    format(gName, sizeof(gName), "%s", PlayerNumbersName(pNumber));
    new pID = GetPlayerID(gName);
    if(!IsPlayerConnected(pID)) { SendClientMessage(playerid, GRAU, "Tut... Tut... Tut... *Spieler ist offline*"); }


    new String[128];
    format(String, sizeof(String), "SMS: %s, Kontakt: %s Nr. %d", Message, PlayerName(pID), pNumber);
    SendClientMessage(pID, GELB, String);
    SendClientMessage(playerid, GELB, String);
    return 1;
    }



    Ich bin echt am verzweifeln, bedanke mich im Vorraus für alle Helfer und Leser.


    /e2
    Habe den Compiler Output vergessen ^^

    OnGameModeInit
    SanFierroKHZone = GangZoneCreate(-3000, -3000, -1014, 3000); // San Fierro
    LasVenturasKHZone = GangZoneCreate(-990, 402, 3000, 3000); // Las Venturas


    if(IsPlayerInZone(playerid, -990, 402, 3000, 3000))
    {
    // Las Venturas
    } else if(IsPlayerInZone(playerid, -3000, -3000, -1014, 3000))
    {
    // San Fierro
    } else
    {
    // Los Santos
    }

    mhm, ich kanns mal versuche, jedoch glaube ich das ich es nicht schaffen werde, hat wer Lust/Zeit mir das über TV zu machen ?

    Wenn du etwas lernen möchtest, versuche auch etwas selber hinzukriegen.
    Es ist nicht böse gemeint ^^. Aber es gibt vielleicht auch welche, die das selbe Problem haben, daher hilft man gerne
    immer in einem Thread, anstatt Teamviewer. Wenn du an Stellen nicht weiter kommst, kannst du ja immer wieder fragen.

    Ich habe mal auf die schnelle etwas kleines gemacht.
    Ist nur ein Beispiel.
    stock AllPlayersWhereIsInFrac(frakid)
    {
    new Query[128], count;
    for(new id; id < MAX_FRAK; id++)
    {
    format(Query, sizeof(Query), "SELECT `Name`, `Leader` FROM `srv_accounts` WHERE `fraktion` = '%d'", frakid);
    mysql_query(Query);
    mysql_store_result();
    count = mysql_num_rows();
    mysql_free_result();
    if(count == 0)
    {

    }
    }
    return 1;
    }
    Ich würde dir raten, den Dialog in der stock aufzurufen, währe einiges einfacher.


    // eingerückt

    Erstell dir einen Stock und gebe das was returnt wird, bei deinem Dialog an.
    In den Stock muss nur rein, dass er jeder Spalte in der MySQL Datenbank in der Benutzer Tabelle alle mit einer for Schleife durchgeht.
    Vielleicht hilft dir es etwas.

    Huch, Ich und meine Probleme.
    Nunja, Ich weis zwar nicht was alles für neue Features rausgekommen sind,
    nachdem Ich aufgehört hatte zu scripten, aber Ich denke mal, dass der Code keinen Fehler haben darf :pinch:


    Ich finde die Fehler nicht, wieso die Spieler nicht gespeichert werden.


    public OnGameModeExit()
    {
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    SavePlayer(i);
    }
    }
    printf("[Server] Alle Spieler wurden gespeichert. Server wird beendet...");
    return 1;
    }


    War mein Fehler, wird wohl nur bei der Eingabe eines Rcon Befehl's (EXIT) ausgeführt.

    Ich habe eine Frage was NPC's angeht.
    Ich will ein NPC erstellen, der nur rumsteht und nicht's tut, außer vielleicht eine Animation (nach einer Befehleingabe).
    Es gibt zwar die Recording Methode, jedoch ist meine Frage, ob es eine einfachere Methode gibt?
    Vielleicht sogar eine Methode, die keine Slots abzieht?


    Das RNPC Plugin wollte Ich mir zwar anschauen nur, der Downloadlink ist down.


    Ich habe mich entschieden es auf die Standart Methode zu machen, habe Ich auch.
    Nun ist das Problem, dass Sich der Skin des BOT's nicht verändern lässt, obwohl Ich jedoch beim Recorden ein SKIN hatte.
    Er bekommt die Skin ID 0 = Carl.


    /e Text

    Wo muss ich das Hinfügen Scout ?

    //Ganz oben
    new Text:LOGINSCREEN;
    //OnGameModeInit
    LOGINSCREEN = TextDrawCreate(0.00000,0.000000,"loadsc5:loadsc5");
    TextDrawBackgroundColor(LOGINSCREEN,255);
    TextDrawFont(LOGINSCREEN,4); //Font 4 ist ganz wichtig, denn sonst wird der vorgegebene Text angezeigt
    TextDrawLetterSize(LOGINSCREEN,0.759999,1.000000);
    TextDrawColor(LOGINSCREEN,-1);
    TextDrawSetOutline(LOGINSCREEN,0);
    TextDrawSetProportional(LOGINSCREEN,1);
    TextDrawSetShadow(LOGINSCREEN,1);
    TextDrawUseBox(LOGINSCREEN,1);
    TextDrawBoxColor(LOGINSCREEN,255);
    TextDrawTextSize(LOGINSCREEN,640.000000,448.000000);
    //OnPlayerConnect
    TextDrawShowForPlayer(playerid, LOGINSCREEN);


    // Code