Beiträge von Cassius

    Ich kann den Befehl irgendwie nur mit der ID des Spielers ausführen, also statt: /tv Aviero muss ich die ID nehmen, also bspw: /tv 88. Möchte jedoch, dass beides funktioniert.


    und..


    habe mal probiert das in einen Befehl zu packen, hat auch funktioniert, will jedoch, dass die Person die Tvt hat wieder in seine Ausgangsposition (die Position, von wo er angefangen hat zu tvn) gesetzt wird.
    Ich weiß, dass ich die Koordinaten des Spielers in einer Variable speichern muss, weiß jedoch nicht richtig wie ich das umsetzen soll.


    Danke im Voraus :)


    Aktueller Befehl:



    ocmd:tv(playerid,params[])
    {
    if(isAdmin(playerid,1))
    {
    if(GetPVarInt(playerid, "tvmodus") == 0){
    new pID,string[128];
    if(sscanf(params,"i",pID))return SendClientMessage(playerid,COLOR_GREY,"Verwendung: /tv [Spieler]");
    if(!IsPlayerConnected(pID))return SendClientMessage(playerid,COLOR_GREY,"Dieser Spieler ist nicht online.");
    if(pID == playerid)return SendClientMessage(playerid,COLOR_GREY,"Du kannst dich nicht selbst beobachten.");
    TogglePlayerSpectating(playerid,1);
    PlayerSpectatePlayer(playerid, pID);
    format(string,sizeof(string),"Du beobachtest nun Spieler: %s.",PlayerName(pID));
    SendClientMessage(playerid,COLOR_BLUE,string);
    SetPVarInt(playerid,"tvmodus",1);
    }else{
    TogglePlayerSpectating(playerid,0);
    SetCameraBehindPlayer(playerid);
    SendClientMessage(playerid,COLOR_BLUE,"Du hast die Beobachtung beendet.");
    SetPVarInt(playerid,"tvmodus",0);
    return 1;
    }
    }
    else
    {
    SendClientMessage(playerid,COLOR_GREY,"Du darfst diesen Befehl nicht benutzen.");
    }
    return 1;
    }


    Ich glaube da fehlt ein
    PlayerSpectatePlayer(playerid, pID);


    Zwar keine Fehlermeldung, jedoch funktioniert es immer noch nicht.
    Jeffry:


    Viele Grüße

    Hey, habe mal eine Frage, hab hier ein TV System (nicht selber geschrieben), dies funktioniert leider nicht. Bekomme zwar im Script keine Fehler, jedoch erhalte ich Ingame, wenn ich den Befehl ausführe nur ein "Bild" vom Blueberry Access.



    ocmd:tv(playerid,params[])
    {
    new pID,string[128];
    if(!isAdmin(playerid,1))return SendClientMessage(playerid,COLOR_GREY,"Du darfst diesen Befehl nicht benutzen.");
    if(sscanf(params,"i",pID))return SendClientMessage(playerid,COLOR_GREY,"Verwendung: /tv [Spieler]");
    if(!IsPlayerConnected(pID))return SendClientMessage(playerid,COLOR_GREY,"Dieser Spieler ist nicht online.");
    if(pID == playerid)return SendClientMessage(playerid,COLOR_GREY,"Du kannst dich nicht selbst beobachten.");
    TogglePlayerSpectating(playerid,pID);
    format(string,sizeof(string),"Du beobachtest nun Spieler: %s.",PlayerName(pID));
    SendClientMessage(playerid,COLOR_BLUE,string);
    return 1;
    }


    ocmd:tvoff(playerid,params[])
    {
    if(!isAdmin(playerid,1))return SendClientMessage(playerid,COLOR_GREY,"Du darfst diesen Befehl nicht benutzen.");
    TogglePlayerSpectating(playerid,0);
    SetCameraBehindPlayer(playerid);
    SendClientMessage(playerid,COLOR_BLUE,"Du hast die Beobachtung beendet.");
    return 1;
    }


    Vielen Dank im Voraus.

    Funktioniert nun, war Fehler meinerseits. Danke für deine Hilfe. :)



    //Komischerweise gibt's nun einen Fehler, obwohl ich nichts geändert habe.. xD
    Eben hat es noch funktioniert, nun nicht mehr, naja..

    Setze mal einen Print vor das SetPlayerSkin und schau ob der Print im Log steht, wenn du spawnst.

    Ich erhalte wieder den CJ Skin, die Funktion wird aufgerufen habe es soeben geprintet. In der MySQL Log steht;

    SQL
    [WARNING] cache_get_field_content_int - no active cache


    Habs genau so getan, wie du es oben gemacht hast.


    Wenn ich mir beispielsweise einen Skin Ingame setze und dann überprüfe, ob der Skin gespeichert wurde, wird er gespeichert. Jedoch wird mir der Skin beim spawnen komischerweise nicht gesetzt.
    Jeffry:


    Viele Grüße

    Das Problem lag an meinem Speicher Befehl, die Daten werden nun gespeichert.


    Nun habe da noch kurz eine Frage;
    nach dem Tod wird nicht mehr der eigentliche Skin gesetzt, weil ich bei SpawnInfo dem Spieler einen festen Skin gesetzt habe, nun möchte ich auslesen lassen, welchen Skin er eigentlich hat (durch Datenbank/setskin/o.Ä)


    SetSpawnInfo(playerid,0,100,1763.2980,-1896.6514,13.5625,276.7087,0,0,0,0,0,0);


    Jeffry: Danke für deine Hilfe.

    So, ich melde mich mal wieder zu Wort. Mein Problem besteht weiterhin;
    Wenn ich einen Skin/Adminrang/whatever direkt über den Server ändere und anschließend relogge werden die Daten nicht gespeichert.


    Wenn nein, versuche mal das savePlayer(playerid) per Befehl aufzurufen, während der Spieler noch online ist, es kann sein, dass GetPlayerSkin bei OnPlayerDisconnect nicht mehr funktioniert.


    Er gibt mir nur den richtigen Skin zurück, wenn ich mir den Skin selbst über die Datenbank gebe.


    Viele Grüße

    Hallo,


    ich habe mir vorhin ein Video Bearbeitungsprogramm von CHIP heruntergeladen, alles schön und gut, jedoch habe ich folgendes Problem;


    Nachdem ich das Programm heruntergeladen habe, habe ich kurz den Laptop neugestartet und es lief erstmal alles normal, nachdem ich mich eingeloggt habe war der komplette Bildschirm schwarz, man sah nur die Maus.
    Es gab keine Menüleiste o.Ä, bitte um Hilfe. Ich habe probiert das Bootmenü zu öffnen, hat leider komischerweise auch nicht funktioniert.
    Bitte um Hilfe.


    Viele Grüße

    SQL
    [05:36:39] [DEBUG] mysql_tquery - connection handle: 1
    [05:36:39] [DEBUG] mysql_tquery - scheduling query "UPDATE user SET level='0',money='0',alevel='4',skins='0',kills='0',deaths='1',mute='0' WHERE id='9'"..
    [05:36:39] [DEBUG] CMySQLQuery::Execute[()] - starting query execution
    [05:36:39] [DEBUG] CMySQLQuery::Execute[()] - query was successful
    [05:36:39] [DEBUG] CMySQLQuery::Execute[()] - no callback specified, skipping result saving

    Hallo,


    meine Daten werden aus irgendeinem Grund nicht gespeichert, werden jedoch geladen, wenn ich die Daten über die Datenbank ändere.
    Ich bitte um Hilfe. :)


    Spoiler anzeigen


    enum playerInfo{
    eingeloggt,
    level,
    id,
    alevel,
    kills,
    deaths,
    mute
    }

    savePlayer(playerid)
    {
    if(sInfo[playerid][eingeloggt]==0)return 1;
    //Speichern level,money
    new query[128];
    format(query,sizeof(query),"UPDATE user SET level='%d',money='%d',alevel='%d',skins='%d',kills='%d',deaths='%d',mute='%d' WHERE id='%i'",sInfo[playerid][level],GetPlayerMoney(playerid),sInfo[playerid][alevel],GetPlayerSkin(playerid),sInfo[playerid][kills],sInfo[playerid][deaths],sInfo[playerid][mute], sInfo[playerid][id]);
    mysql_function_query(dbhandle,query,false,"","");
    return 1;
    }

    sInfo[playerid][eingeloggt] = 1;
    sInfo[playerid][level] = cache_get_field_content_int(0,"level",dbhandle);
    SetPlayerScore(playerid,sInfo[playerid][level]);
    sInfo[playerid][id] = cache_get_field_content_int(0,"id",dbhandle);
    SetPlayerMoney(playerid,cache_get_field_content_int(0,"money",dbhandle));
    sInfo[playerid][alevel] = cache_get_field_content_int(0,"alevel",dbhandle);
    SetPlayerSkin(playerid,cache_get_field_content_int(0,"skins",dbhandle)); //////////// <---------------- GENAU DA
    sInfo[playerid][kills] = cache_get_field_content_int(0,"kills",dbhandle);
    sInfo[playerid][deaths] = cache_get_field_content_int(0,"deaths",dbhandle);
    sInfo[playerid][mute] = cache_get_field_content_int(0,"mute",dbhandle);


    Falls ich irgendwas vergessen habe zu posten, einfach bescheid geben. 8o
    Danke im voraus!


    (Selbstverständlich speichere ich die Daten bei jedem Disconnect.)


    Viele Grüße


    ocmd:makeadmin(playerid,params[])
    {
    if(!isAdmin(playerid,3))return SendClientMessage(playerid,COLOR_RED,"** Du kannst diesen Befehl nicht ausführen. **");
    new pID,a_level;
    if(sscanf(params,"ui",pID,a_level))return SendClientMessage(playerid,COLOR_GREY,"** Benutze: /setadmin [ID/NAME] [Adminrank] **");
    if(!IsPlayerConnected(pID))return SendClientMessage(playerid,COLOR_GREY,"** Dieser Spieler ist nicht auf dem Server! **");
    sInfo[pID][alevel]=a_level;
    savePlayer(pID);
    SendClientMessage(pID,COLOR_RED,"Dein Adminrang wurde geändert.");
    SendClientMessage(playerid,COLOR_RED,"Du hast den Adminrang geändert.");
    return 1;
    }

    Könnte jemand machen, dass da statt "Dein Adminrang wurde geändert.", dies steht: "Dein Admin Rank wurde von SPIELER auf RANK gesetzt."
    Und bei Du hast den Adminrang geändert => "Du hast den Admin Rank von SPIELER auf RANG gesetzt."


    Kriege grade das einfachste irgendwie nicht hin..
    Komme ständig mit den formatierungen durcheinander :whistling:


    Viele Grüße

    Hallo,


    ich habe ein kleines Problem und zwar, die Kills und die Tode werden irgendwie nicht gespeichert.
    Woran liegt das? Danke im voraus. :)

    public OnPlayerDeath(playerid, killerid, reason)
    {
    sInfo[playerid][kills] ++;
    sInfo[playerid][deaths] ++;
    SendDeathMessage(killerid, playerid, reason);
    return 1;
    }



    savePlayer(playerid)
    {
    if(sInfo[playerid][eingeloggt]==0)return 1;
    //Speichern
    new query[128];
    format(query,sizeof(query),"UPDATE user SET level='%i',money='%i',alevel='%i',skins='%i',kills='%i',deaths='%i' WHERE id='%i'",sInfo[playerid][level],GetPlayerMoney(playerid),sInfo[playerid][alevel],GetPlayerSkin(playerid),sInfo[playerid][kills],sInfo[playerid][deaths], sInfo[playerid][id]);
    mysql_function_query(dbhandle,query,false,"","");
    return 1;
    }



    sInfo[playerid][kills] = cache_get_field_content_int(0,"kills",dbhandle);
    sInfo[playerid][deaths] = cache_get_field_content_int(0,"deaths",dbhandle);


    Viele Grüße

    @Aviero: Was wird ausgelesen und was sollte ausgelesen werden? Wird bei allen der gleiche Rang ausgelesen?

    Aktuell liest das System nur den Ranknamen "User" aus.
    Jedoch möchte ich es ja so haben, dass wenn der Spieler bspw Head Admin ist das es dann auch Ingame so steht:


    "Head Admin Aviero: TEXT"


    Aktuell ist es jedoch so:
    "User Aviero: TEXT"

    Jeffry:


    Bekomme zwar nun keine Fehler mehr, jedoch liest er immer noch nicht den richtigen Rank aus.



    ocmd@2:aa,announce(playerid,params[])
    {
    if(!isAdmin(playerid,1))return SendClientMessage(playerid,COLOR_RED,"Du bist kein Admin.");
    new string[128], pName[MAX_PLAYER_NAME];
    GetPlayerName(playerid,pName,sizeof(pName));
    if(sscanf(params,"s",string))return SendClientMessage(playerid,COLOR_GREY,"** /announce [Text] **");
    format(string,sizeof(string),"%s: %s : %s",GetAdminRank(playerid),pName, string);
    for(new i=0;i<MAX_PLAYERS;i++)
    {
    if(IsPlayerConnected(i))
    {
    if(isAdmin(playerid,1))
    {
    SendClientMessage(i,COLOR_RED,string);
    }
    }
    }
    return 1;
    }



    stock GetAdminRank(playerid){
    new rankname[40];
    switch(sInfo[playerid][alevel]){ //Hier die Variable an deine Admin Level Variable anpassen
    case 0: format(rankname, sizeof(rankname), "User");
    case 1: format(rankname, sizeof(rankname), "Supporter");
    case 2: format(rankname, sizeof(rankname), "Trial Admin");
    case 3: format(rankname, sizeof(rankname), "Admin");
    case 4: format(rankname, sizeof(rankname), "Head Admin");
    }
    return rankname;
    }

    Hey, hab da ein Problem und zwar habe ich nun für jeden Rank einen Namen erstellt und habe dazu einen Chat erstellt ( Ansage Befehl an alle Spieler '/announce' ).


    Der Befehl funktioniert auch, jedoch ließt er den Ranknamen nicht richtig aus und gibt bspw. statt "Projektleiter", "Supporter" wieder.



    stock GetAdminRank(rank){
    new rankname[40];
    switch(rank){
    case 0: format(rankname, sizeof(rankname), "User");
    case 1: format(rankname, sizeof(rankname), "Supporter");
    case 2: format(rankname, sizeof(rankname), "Trial Admin");
    case 3: format(rankname, sizeof(rankname), "Admin");
    case 4: format(rankname, sizeof(rankname), "Head Admin");
    }
    return rankname;
    }



    ocmd@2:aa,announce(playerid,params[])
    {
    if(!isAdmin(playerid,1))return SendClientMessage(playerid,COLOR_RED,"Du bist kein Admin.");
    new string[128], pName[MAX_PLAYER_NAME];
    GetPlayerName(playerid,pName,sizeof(pName));
    if(sscanf(params,"s",string))return SendClientMessage(playerid,COLOR_GREY,"** /announce [Text] **");
    format(string,sizeof(string),"%s: %s : %s",GetAdminRank(playerid),pName, string);
    for(new i=0;i<MAX_PLAYERS;i++)
    {
    if(IsPlayerConnected(i))
    {
    if(isAdmin(playerid,1))
    {
    SendClientMessage(i,COLOR_RED,string);
    }
    }
    }
    return 1;
    }


    Danke im voraus! :)
    ( Bin noch Anfänger :p )