Beiträge von NoxiZ

    Keine Bange der ist nicht kopiert höchstens von mir selber.


    habe diesen Befehl:



    dcmd_gc(playerid,params[])
    {
    new text[256];
    new spielername[MAX_PLAYER_NAME];
    if(sscanf(params,"s",text)) return SendClientMessage(playerid,Weiß,"Info: /gc (text)");
    if(sSpieler[playerid][Fraktion] < 1 || sSpieler[playerid][Fraktion] > 2) return SendClientMessage(playerid,Weiß,"Du bist in keiner Gang!");
    {
    GetPlayerName(playerid,spielername,sizeof(spielername));
    format(text,sizeof(text),"%s %s %s: %s",GetFraktionName(playerid),GetRangName(playerid),spielername,text);
    SendGangMessage(1&&2,Weiß,text);
    }
    return 1;
    }


    Wie man sehen kann soll der geschriebene Text an Fraktion 1 und 2 gesendet werden.
    Bei Frak. 1 klappt das auch, ob dabei die Nachricht an 2 gesendet wird, weiß ich momentan nicht.
    Bei Frak. 2 passiert wiederum nichts. Wie ich schon öfter bemerkt habe, kommt der nicht dastehende Text bei Fraktion 1 an.


    Mein stock sieht so aus:



    //GANGNACHRICHTEN
    stock SendGangMessage(frakid,farbe,string[])
    {
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(!IsPlayerConnected(i)) continue;
    if(sSpieler[i][Fraktion] == frakid)SendClientMessage(i,farbe,string);
    }
    }


    meine komplette bugliste besteht momentan aus diesem problem

    Hat gefunkt.


    und was ist daran falsch?
    ist aus nem tutorial so übernommen aber failt total



    dcmd_usedrugs(playerid,params[])
    {
    #pragma unused params
    new str[145];
    new strii[145];
    new Float:x, Float:y, Float:z;
    if(sSpieler[playerid][Drogen] <= 0) return SendClientMessage(playerid,Weiß,"Du hast keine Drogen!");
    sSpieler[playerid][Drogen]--;
    format(str, sizeof(str), "Du hast 1g Drogen genommen und 10HP erhalten (%d/10)", sSpieler[playerid][Drogen]);
    SendClientMessage(playerid,Weiß, str);
    GivePlayerHealth(playerid,10);
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    if(IsPlayerInRangeOfPoint(i, 40.0, x, y, z))
    {
    GetPlayerName(playerid, strii, sizeof(strii));
    GetPlayerPos(playerid, x, y, z);
    format(strii, sizeof(strii), "%s hat Drogen genommen!",playerid);
    SendClientMessage(i, Weiß, strii);
    }
    }
    }
    return 1;
    }


    der spieler der usedrugs benutzt nimmt 2 mal drogen wenn jemand in der nähe ist
    und der andere in der nähe sieht den text "NoxiZ hat Drogen genommen! hat Drogen genommen!"

    Heutzutage ist Leistung = Geld
    Und meiner meinung nach ist man sogar heute noch mit DDR 3 gut im Spiel.
    Hab nen i5 mit 3,3 ghz und ne 2gb graka sowie 8 gb ram und gta v läuft fast auf max.
    Antialisialing oder wie des heißt mach ich grundsätzlich aus weil ich keinen unterschied bemerke außer das alles laggt

    Ich habe ein kleines Problem was ich überhaupt nicht verstehe, das sich auch auf andere befehle ausweitet.



    dcmd_pay(playerid,params[])
    {
    new pid;
    new geld;
    new spieler[256];
    new spieler2[256];
    new geber[MAX_PLAYER_NAME];
    new nehmer[MAX_PLAYER_NAME];
    new Float:x,Float:y,Float:z;
    GetPlayerName(playerid,geber,sizeof(geber));
    GetPlayerName(pid,nehmer,sizeof(nehmer));
    GetPlayerPos(pid,x,y,z);
    if(sscanf(params,"ui",pid,geld)) return SendClientMessage(playerid,Weiß,"Info: /pay (playerid) (summe)");
    if(pid == INVALID_PLAYER_ID) return SendClientMessage(playerid,Weiß,"Der Spieler mit dieser ID ist nicht Online!");
    if(pid == playerid) return SendClientMessage(playerid,Weiß,"Du kannst dir nicht selbst Geld geben!");
    if(!IsPlayerInRangeOfPoint(pid,2,x,y,z)) return SendClientMessage(playerid,Weiß,"Dieser Spieler ist nicht in der Nähe!");
    format(spieler,sizeof(spieler),"Du hast %s %i$ gegeben!", nehmer,geld);
    format(spieler2,sizeof(spieler2),"%s hat dir %i$ gegeben!",geber,geld);
    SendClientMessage(pid,Weiß,spieler2);
    SendClientMessage(playerid,Weiß,spieler);
    GivePlayerMoney(pid,geld);
    GivePlayerMoney(playerid,-geld);
    return 1;
    }


    Ich war auf meinem Testserver und habe diesen Befehl getestet mit 2 Accounts.
    Playerid 0 = NoxiZ und playerid 1 = chazer!
    Wenn playerid 0 der 1 geld gibt, steht da, du hast NoxiZ geld gegeben! Warum wird der name "chazer" nicht erkannt?
    wenn playerid 1 der 0 geld gibt, lässt sich nichts feststellen, da da ja NoxiZ stehen soll so wie gewünscht!


    wo ist der fehler?

    Meinst du in deinem Command oder extern durch etwas anderes? ^^

    Wird im Command wieder auf 0 gesetzt.


    Also /amodus aktiviert.
    Nochmal /amodus soll deaktivieren und den Namen wieder normal ohne [ADMIN] machen.
    Was mir grade aber aufgefallen ist, ist das sobald /amodus eingetippt wird, eine neue Accountdatei erstellt wird.
    Kein Plan wie ich das hinbekommen habe xD

    Danke hat geklappt.
    Dabei ist mirjedoch ein weiterer Fehler aufgefallen.



    dcmd_amodus(playerid,params[])
    {
    #pragma unused params
    if(sSpieler[playerid][Adminlevel] < 1) return SendClientMessage(playerid,Weiß,"Du hast nicht die benötigten Rechte, um diesen Befehl auszuführen!");
    if(aDuty[playerid] == 0)
    {
    aDuty[playerid] = 1;
    new str[64], name[MAX_PLAYER_NAME];
    GetPlayerName(playerid, name, sizeof(name));
    SetPVarString(playerid, "oldName", name);
    format(str, sizeof(str), "[ADMIN]%s", name);
    SetPlayerName(playerid, str);
    SetPlayerHealth(playerid,60000);
    SetPlayerArmour(playerid,60000);
    SendClientMessage(playerid,Weiß,"Du hast den Adminmodus gestartet!");
    }
    else
    {
    aDuty[playerid] = 0;
    new name[MAX_PLAYER_NAME];
    GetPVarString(playerid, "oldName", name, MAX_PLAYER_NAME);
    SetPlayerName(playerid, name);
    SetPlayerHealth(playerid,100);
    SetPlayerArmour(playerid,100);
    SendClientMessage(playerid,Weiß,"Du hast den Adminmodus beendet!");
    }
    return 1;
    }


    Wenn ich Aduty aktiviert habe, passt alles.
    Sobald ich aber den Aduty auf 0 setzen lasse, steht [ADMIN][ADMIN]Spielername: Text!
    Wieso verdoppelt sich das [ADMIN], anstatt wegzugehen?

    Moin, habe ein Problem mit SetTimer


    habe den forward oben im Script
    das Public dazu über meinen befehlen und den SetTimer im /kick befehl.


    Der Kick kommt, aber die message dazu wird nicht ausgegeben.


    Befehl sieht so aus:



    dcmd_kick(playerid,params[])
    {
    new pid;
    new grund[256];
    new servertext[256];
    new spielertext[256];
    new spielername[MAX_PLAYER_NAME];
    new adminname[MAX_PLAYER_NAME];
    GetPlayerName(pid,spielername,sizeof(spielername));
    GetPlayerName(playerid,adminname,sizeof(adminname));
    if(sscanf(params, "us",pid,grund)) return SendClientMessage(playerid,Weiß,"Info: /kick [playerid] [grund]");
    if(!IsPlayerConnected(pid)) return SendClientMessage(playerid,Weiß,"Kein Spieler mit angegebener ID Online!");
    if(sSpieler[playerid][Adminlevel] < 2) return SendClientMessage(playerid,Weiß,"Du hast nicht die benötigten Rechte, um diesen Befehl auszuführen!");
    {
    format(spielertext,sizeof(spielertext),"INFO: Du wurdest von %s gekickt! Grund: %s",adminname,grund);
    format(servertext,sizeof(servertext),"SERVER: %s wurde von %s gekickt! Grund: %s",spielername,adminname,grund);
    SendClientMessage(pid,Weiß,spielertext);
    SendClientMessageToAll(Weiß,servertext);
    SetTimer("KickTimer",200,0);
    }
    return 1;
    }

    Diese Informationen sind sicherlich nicht korrekt, da Microsoft voll auf die Scorpio setzt. Spielen mit PC Spielern würde auch so funktionieren, wenn sich die entwickler einmal für die spieler entscheiden würden.