Beiträge von VitoHusky

    Hallo Community


    Ich arbeite momentan an einem Script, dass meinem UCP erlauben soll, via Teamspeak UID den User auf dem TS eine Servergruppe zu setzen.
    So soweit so gut ich habe mir die Befehle angeschaut usw.


    Jetzt momentan versuche ich es so ersteinmal via dbid die servergruppe zu setzen.
    Später möchte ich dann noch Sachn aus der Socket Ausgabe auslesen aber die Ausgabe bleibt immer gleich.
    Die servergruppe wird auch nicht gesetzt.


    Hier mal mein PHP Script


    Die Ausgabe auf der Seite sieht wie folgt aus


    Code
    Socket_Create Ok...
    Socket_Bind Ok...
    Socket_Connect Ok...
    Login to Teamspeak Serverquery Ok...
    Setting Servergroup Ok...
    Ausgabe Konsole:
    TS3 Welcome to the TeamSpeak 3 ServerQuery interface, type "help" for a list of commands and "help " for information on a specific command.


    Eventuell kann mir da ja jemand helfen...

    Nur würde ich eben andere Variablen nehmen


    Wenn er in der DM Arena ist eine Variable auf 1 oder sowas setzen


    z.b.


    /dm 1
    -> Variable InDMArena[playierid] = 1
    /dm 2
    -> Variable InDMArena[playierid] = 2


    usw..


    Dann onplayerspawn


    if ( InDMArena[playerid] == 1 )
    {
    SetPlayerPos (zu dem Arena Spawn)
    }
    else if ( InDMArena[playerid] == 2 )
    {
    SetPlayerPos (zu dem Arena Spawn der Arena 2)
    }


    usw


    Mfg

    Da wo es stehen soll


    {
    new tmpstr[128];
    format(tmpstr, sizeof tmpstr, "%s %s: %s",GetRankName(playerid), GetPlayerNameEx(playerid), text);
    SendClientMessage(playerid, -1, tmpstr);
    }



    Das hier die stock Funktion


    stock GetRankName(playerid)
    {
    new faction = (HIER DEINE FRAKTIONSABFRAGE)
    new rank = HIER DEINE RANG ABFRAGE
    new tmpstr[32];
    switch ( faction )
    {
    case FRAK_LSPD:
    {
    switch ( rank )
    {
    case 1: format(tmpstr, sizeof tmpstr, "Azubi");
    case 1: format(tmpstr, sizeof tmpstr, "Ausbilder");
    case 1: format(tmpstr, sizeof tmpstr, "General");
    default: format(tmpstr, sizeof tmpstr, "Falscher Rang");
    }
    }
    }
    return tmpstr;
    }

    usw ;)
    mfg

    Hallo Community und einen fröhllichen guten Morgen ;)


    Also ich habe ein Problem bei meinem anti Healhack System
    Es ist momentan so das eine Variable gespeichert wird wenn der server ihm die Health setzt.
    Sobald es dadrüber ist -> Heallhack Verdacht


    Nur ist mein Problem jetzt das GTA noch eigene Getränkeautomaten hat...
    Diese kann ich ja nicht steuern und somit werden diese auch als Healhack erkannt


    Evtl. kennt ja jemand eine Lösung


    Gruß
    Dark.Shadow

    Hallo Community


    ich habe momentan Probleme mit meinem Server
    Ab und zu stürzt der Server ab
    Nach einer unwilkürlichen Länge an Serverlaufzeit


    hier die Log (mit crashdetect.so)


    Account_Login Funktion
    stock Account_Login(playerid, password[])
    {
    new Query[128];
    mysql_real_escape_string(SpielerName(playerid), SpielerName(playerid));
    format(Query, sizeof(Query), "SELECT * FROM accounts WHERE Name = '%s' AND Passwort = sha1('%s')", SpielerName(playerid), password);
    mysql_query(Query);
    mysql_store_result();

    if ( mysql_num_rows() != 0 )
    {
    gPlayerLogged[playerid] = 1;
    pInfo[playerid][pCash] = 0;
    new string[128], tmpstr[128];
    Account_Load(playerid);
    ResetPlayerMoney(playerid);

    SpawnPlayer(playerid);


    GivePlayerMoney(playerid,pInfo[playerid][pCash]);
    SetPlayerSkin(playerid, pInfo[playerid][pModel]);
    SetPlayerColor(playerid,0xFFFFFF00);
    SetPlayerFightingStyle(playerid, pInfo[playerid][pFightStyle]);


    format(string, sizeof(string), "Erfolgreich eingeloggt, Willkommen %s",SpielerName(playerid));
    SendClientMessage(playerid, COLOR_GREEN,string);
    printf("%s hat sich eingeloggt.",SpielerName(playerid));
    if(pInfo[playerid][pDonateRank] == 1)
    {
    SendClientMessage(playerid, COLOR_GREEN,"Du bist Premium Nutzer.");
    }
    if(pInfo[playerid][pDonateRank] == 2)
    {
    if(pInfo[playerid][pDonateRankTime] < Get_Time())
    {
    SendClientMessage(playerid, COLOR_RED, "Dein Donator Rang ist abgelaufen!");
    pInfo[playerid][pDonateRank] = 0;
    if(pInfo[playerid][pfAcc] == 1) WBB_RemoveUserFromGroup(SpielerName(playerid),10);
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREEN,"Du bist ein Donator. Danke das du den Server unterstützt!");
    }
    }
    if (pInfo[playerid][pAdmin] > 0)
    {
    SendClientMessage(playerid, COLOR_WHITE,sprintf("Du hast dich als "CH_ORANGE"%s"CH_WHITE" eingeloggt!",GetARankName(pInfo[playerid][pAdmin])));
    }
    format(string, sizeof(string), "~w~Willkommen ~n~~y~ %s", SpielerName(playerid));
    GameTextForPlayer(playerid, string, 5000, 1);

    KHSperre[playerid] = 1;
    SetTimerEx("KHSP",60000,0,"i",playerid);

    /*if ( pInfo[playerid][pQuest] > 0 && pInfo[playerid][pQuest] <= LastQuest)
    {
    SendQuestMsg(playerid, "Du hast noch Quests offen! Nutze /quest");
    }*/

    mysql_SetInt("accounts", "Online",1, "Name", SpielerName(playerid));


    HideLoginTextdraws(playerid);

    format(tmpstr,sizeof tmpstr, "%s hat sich gerade eingeloggt", SpielerName(playerid));
    AccountLog(tmpstr);
    }
    else
    {
    SendClientMessage(playerid, COLOR_RED, "Das eingegebene Passwort war falsch!");
    ShowPlayerDialog(playerid, DIALOG_Login, DIALOG_STYLE_PASSWORD, "Login!", "Willkommen zurück auf True Vision Roleplay.\n\nDu hast ein falsches Passwort eingegeben. Wenn dies nicht dein Account\nsein sollte, wähle bitte einen anderen Namen. Ansonsten versuche es erneut\n\nViel Spass weiterhin auf True Vision Roleplay wünscht dir das ganze Team!", "Login","Abbruch");
    }
    return 1;
    }


    Es ist ein Linux Server Debian 64 Bit
    Script ist ein Godfather zu 80% editiert
    Läuft auf mysql


    das letzte macht mich stutzig.. nur habe ich bei Google dazu nichts gefunden


    ich hoffe jemand kennt den Fehler oder kann mir helfen...


    Gruß

    Richtig Virtual Box runter


    Dann kannst du dir das Windows XP Image runterladen dort installieren
    und dann (soweit ich weiß) kannst du den so sichern das wenn die 30 Tage vorbei sind, kannst du den wiederherstellen :)
    Ansonsten illegal cracken oder eben (JA DAS MACHEN MENSCHEN) original kaufen :)


    Gruß

    Das Problem ist, das es etwa 100 Sachen sind die geladen werden müssen
    (Quest System und so ein Quatsch)


    Deswegen habe ich es schon mit Absicht nicht mit sscanf auslesen lassen
    jedes mal einzelnt selecten und dafür jedes mal einen neuen query starten?
    Das ist wohl ressourcen fressender als nur einen zu machen und den dann auslesen zu haben
    (Bestes Beispiel die Mysql Funktionen von maddin)



    //edit
    Fehler nach langer zeit gefunden
    ein wert war in der DB immer "NULL"
    Demnach konnte er das irgendwie nicht laden
    dieser wert wurde nich richtig gespeichert. Ist mir grade aufgefallen als ich das
    Speichern des Accounts neu geschrieben habe


    Danke euch allen funktioniert nun :>

    Nein so war es vorher (siehe oberen Post)
    Das ist nur eine Funktion die von einer Funktion aufgerufen wird
    Die neu aufgerufene Funktion lässt also die alte einfach abbrechen
    Da hat das return nichts zu sagen


    Woran kann es denn sonst noch liegen? :/


    //edit
    Diese While Schleife ist der Grund
    while(mysql_fetch_row_format(query,"|"))
    {
    Ich habe die entfernt also das garnichts geladen wird und schon funktioniert es
    kann es daran liegen das ich nicht alle Felder auslesen lasse?!
    Oder warum?


    Ohne diese While unter LoadPlayer geht LoginPlayer auch weiter :/

    Habe aus LoginPlayer nun LoadPlayer gemacht


    das hatte ich vorher auch nur wie gesagt 4 Stunden lang viel rumprobiert und umgestellt und bla bla ;D
    Ähm naja


    Habe da am ende noch ein return rein gemacht. Wie ich mir dachte war es sinnlos und es hat nichts gebracht
    Demnach besteht das Problem mit demfolgenden Code immernoch


    Loginplayer nun

    pInfo[playerid][pCash] = 0;
    new string[128], tmpstr[128];
    SetCameraBehindPlayer(playerid);
    print("Test1");
    LoadPlayer(playerid);
    print("Test2");
    ResetPlayerMoney(playerid);


    GivePlayerMoney(playerid,pInfo[playerid][pCash]);
    SetPlayerSkin(playerid, pInfo[playerid][pModel]);

    Test 1 kommt... Test 2 nicht :x


    Am ende der Funktion loadplayer sieht es so aus

    }
    print("Ende Load");
    return 1;
    }

    Ende Load wird auch ausgegeben