Beiträge von Akino Kiritani

    AC/DC biste des Wahnsinns?


    Du erstellt einfach nen Textdraw ohne ihn löschen?
    Willst du schon anfangen unschuldige Server zu vernichten?


    Besser wäre so


    new Text:anzeige[MAX_PLAYERS];


    public Anzeige()
    {
    for new (i = 0; i < MAX_PLAYERS, i++)
    {
    if(IsPlayerConnected(i))
    {
    new Float:lebenvonplayer;
    killsvonplayer[i] = GetPlayerScore(i);
    Money[i] = GetPlayerMoney(i);
    Ping[i] = GetPlayerPing(i);
    GetPlayerHealth(i,lebenvonplayer);


    new string[256];
    format(string, sizeof(string),"Ping:~r~ %d ~n~~w~Score:~r~ %d ~n~~w~Geld:~r~ %d ~n~~w~Leben:~r~ %.0f",Ping[i],killsvonplayer[i],Money[i],lebenvonplayer);
    TextDrawSetSting(anzeige[i], string);
    }
    }

    AC/DC unser beides ist nicht ganz richtig.
    Ich hab übersehen, das er den Textdraw nicht für alle Spieler einzeln erstellt und du hast über sehen, dass er seine Arrays im TextDrawSetString vergessen hat, also packen wir beides zusammen und schon stimmt ;)
    //oben
    new Text:anzeige[MAX_PLAYERS];


    public Anzeige()
    {
    for new (i = 0; i < MAX_PLAYERS, i++)
    {
    if(IsPlayerConnected(i))
    {
    new Float:lebenvonplayer;
    killsvonplayer[i] = GetPlayerScore(i);
    Money[i] = GetPlayerMoney(i);
    Ping[i] = GetPlayerPing(i);
    GetPlayerHealth(i,lebenvonplayer);


    new string[256];
    format(string, sizeof(string),"Ping:~r~ %d ~n~~w~Score:~r~ %d ~n~~w~Geld:~r~ %d ~n~~w~Leben:~r~ %.1f",Ping[i],killsvonplayer[i],Money[i],lebenvonplayer);
    anzeige[i] = TextDrawCreate(491.000000,292.000000, string);
    TextDrawLetterSize(anzeige[i], 0.5, 2.5);
    TextDrawShowForPlayer(i,anzeige[i]);
    }
    }
    }

    Das mit TextDrawShowForAll wird nix da er ja schon angezeigt wird desweiteren wird er das gleiche Problem weiterhaben


    Denn er hat seine Arrays vergessen


    format(string, sizeof(string),"Ping:~r~ %d ~n~~w~Score:~r~ %d ~n~~w~Geld:~r~ %d ~n~~w~Leben:~r~ %.1f",Ping[i],killsvonplayer[i],Money[i],lebenvonplayer);


    So sollte das funktionerien

    Mhm das geht leider auch nicht.


    Sieht jetzt genauso aus wie das sagtest


    new Float:x,Float:y,Float:z;
    GetVehiclePos(vehicleid,x,y,z);
    sirene[0][vehicleid] = CreateDynamicObject(19288,x,y+vm,z,0,0,0,vehicleid,-1,-1,-1);
    sirene[1][vehicleid] = CreateDynamicObject(18646,x+ds1,y,z+ds2,0,0,0,vehicleid,-1,-1,-1);
    sirene[2][vehicleid] = CreateDynamicObject(19288,x+vlb1,y+vlb2,z,0,0,0,vehicleid,-1,-1,-1);
    sirene[3][vehicleid] = CreateDynamicObject(19288,x+vlf1,y+vlf2,z,0,0,0,vehicleid,-1,-1,-1);


    Aber irgendwie kann ich das immer noch nicht glauben dass das so funktionieren soll, wenn ich mir die Include so angucke
    native CreateDynamicObject(modelid, Float:x, Float:y, Float:z, Float:rx, Float:ry, Float:rz, worldid = -1, interiorid = -1, playerid = -1, Float:distance = 350.0);

    //oben
    new alarm[MAX_VEHICLES], alarm2[MAX_VEHICLES];
    new bool:LightOn[MAX_VEHICLES];


    public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
    {
    new Float:x,Float:y,Float:z;
    if(newkeys & KEY_CROUCH)
    {
    if(IsPlayerInAnyVehicle(playerid))
    {
    new vehicleid = GetPlayerVehicleID(playerid);
    if(LightOn[vehicleid] == false)
    {
    alarm[vehicleid] = CreateObject(18646,x,y,z,0,0,0,283); //die 1. neonröhre
    alarm2[vehicleid] = CreateObject(18646,x,y,z,0,0,0,283); //die 2. neoröhre
    AttachObjectToVehicle(alarm, GetPlayerVehicleID(playerid), 0.77,-0.2,1.4,0,0,0); //das ist die eine seite
    AttachObjectToVehicle(alarm2, GetPlayerVehicleID(playerid), -0.77,-0.2,1.4,0,0,0); //das die andere seite unter dem auto
    SendClientMessage(playerid, COLOR_GREEN, "Licht montiert.");
    LightOn[vehicleid] = true;
    }
    else if(LightOn[vehicleid] == true)
    {
    DestroyObject(alarm[vehicleid]);
    DestroyObject(alarm2[vehicleid]);
    SendClientMessage(playerid, COLOR_GREEN, "Licht demontiert.");
    LightOn[vehicleid] = false;
    }
    }
    }
    return 1;
    }


    Sorry hab den Theard eig nur überflogen sonst hätt ich die Fehler sofort gesehn :D


    Machs am besten so mit Arrays -> speicherst das für jedes Auto

    Sorry das blick ich jetzt nicht.


    Ich habs einfach ma probiert und es hat nicht geklappt
    new Float:x,Float:y,Float:z;
    GetVehiclePos(vehicleid,x,y,z);
    sirene[0][vehicleid] = CreateDynamicObject(19288,x,y+vm,z,0,0,0,vehicleid);
    sirene[1][vehicleid] = CreateDynamicObject(18646,x+ds1,y,z+ds2,0,0,0,vehicleid);
    sirene[2][vehicleid] = CreateDynamicObject(19288,x+vlb1,y+vlb2,z,0,0,0,vehicleid);
    sirene[3][vehicleid] = CreateDynamicObject(19288,x+vlf1,y+vlf2,z,0,0,0,vehicleid);


    Ich hab extra noch ma in der Include geguckt und nichts dergleichen gefunden.


    Sollte ich mir nen neuen/anderen besorgen?


    PS: Ja es ist der Streamer von Icognito


    //Edit wenn ich das ohne vehicleid mache erstellt er das Object auf dem Auto drauf, es ist aber nicht Attached ^^
    Achja in vm, ds1, ds2, vlb1, vlb2, vlf1 und vlf2 stehen nur kordinaten für das Attachen drin

    Bist du auch auf die Idee gekommen das Adminlevel zuändern bzw speichern zulassen?
    Wenn ich mir den Code so anschaue sehe ich, das du nicht einmal das Adminlevel in Register in die Datei schreiben lässt.
    Wenn du das Adminlevel nicht änderst ist doch logisch das es 0 bleibt

    Ich geh mal davon aus, das du den Grundstring in OnPlayerDialogResponse definierst.


    Schmeiß das mal raus und pack das oben new grundstring[MAX_PLAYERS][DEINE_GRÖßE]; rein
    so speicherst du den Grund zwar für jeden spieler verhinderst aber, dass du den string durch das wiederaufrufen des Callbacks OnPlayerDialogResponse löscht und wieder neu definierst.


    //EDIT: falsche Varibalen deklaration