Beiträge von Kaliber

    Wäre für hilfe dankbar.


    1. Lässt du die Animation Preloaden? :huh:


    Wenn nicht schreibe mal unter OnPlayerRequestClass (ganz nach oben in die 1. Zeile:)


    ApplyAnimation(playerid,"MEDIC","null",0.0,0,0,0,0,0);


    2. Schreibe das mal so:


    ocmd:wiederbeleben(playerid)
    {
    if(!IsPlayerInRangeOfPoint(playerid,5,tx[i],ty[i],tz[i]))return SendClientMessage(playerid,error,"Du bist nicht in der Nähe einer Leiche!");
    if(GetPlayerAnimationIndex(playerid) != 0) return SendClientMessage(playerid,error,"Du reanimierst bereits eine Person!");
    for(new i; i<MAX_PLAYERS; i++) {
    if(!IsPlayerConnected(i))continue;
    if(SpielerInfo[i][pTot] == 0)continue;
    new string[MAX_PLAYER_NAME + 34];
    format(string,sizeof(string),"'%s' begint mit deiner Reanimation.",SpielerName(playerid));
    SendClientMessage(i,hinweis,string);
    ApplyAnimation(playerid,"MEDIC","CPR",4.1,1,1,1,0,888*10,1);
    SetTimerEx("reanimation",888*10,false,"i",playerid);
    break;
    }
    return 1;
    }


    mfg. :thumbup:

    Also, ich habe mir mal dein Skript angeschaut...und da sind einige Fehler drinnen ^^


    Zum einen, erstelle die Objekte unter OnGameModeInit und nicht unter OnPlayerConnect.


    Desweiteren nutze am besten einen Streamer..


    und leggen könnte es höchstens wegen dem AutoSave oder weil jemand gerade den Server connected hatte...


    Aber ansonsten sieht das ok aus :)


    mfg. :thumbup:

    Wieso wird mir die Nachricht beim sterben nicht gesendet?


    Weil dein Code vorher einen Run Time Error bekommt, da killerid nicht online ist, somit einen Wert von 0xFFFF hat...und da das größer als MAX_PLAYERS ist..schlägt das alles fail :D


    Schreib es so:


    public OnPlayerDeath(playerid, killerid, reason)
    {
    SpielerInfo[playerid][pTode] +=1;
    if(killerid != INVALID_PLAYER_ID) SpielerInfo[killerid][pKills] +=1;
    SpielerInfo[playerid][pDuty] = 0;
    //if(SpielerInfo[playerid][pTot] != 1) {
    SpielerInfo[playerid][pTot] = 1;
    SendClientMessage(playerid, info, "Du bist nun tot"); //}
    TextDrawHideForPlayer(playerid,txtTimeDisp);
    return 1;
    }


    mfg. :thumbup:

    Schreibe es mal so:


    ocmd:carlock(playerid,params[])
    {
    new veh = GetOwnVehicle(playerid);
    if(veh == INVALID_VEHICLE_ID) return SendClientMessage(playerid,COLOR_RED,!"Es befindet sich keines deiner Fahrzeuge in der Nähe.");
    new engine,lights,alarm,bonnet,boot,objective;
    GetVehicleParamsEx(veh,engine,lights,alarm,vehdoor,bonnet,boot,objective);
    GameTextForPlayer(playerid, (vehdoor)?("~w~Fahrzeug ~g~aufgeschlossen"):("~w~Fahrzeug ~g~abgeschlossen"), 3000, 5);
    SetVehicleParamsEx(veh,engine,lights,alarm,!vehdoor,bonnet,boot,objective);
    for(new i; i<MAX_PLAYERS; i++) SetVehicleParamsForPlayer(veh,i,0,!vehdoor);
    vehdoor = !vehdoor;
    return 1;
    }


    stock GetOwnVehicle(playerid) {
    new t;
    for(new i,Float:p[3],Float:tmp=50.0,Float:z; i<sizeof(cInfo); i++) {
    if(cInfo[i][besitzer]!=sInfo[playerid][db_id]) continue;
    GetVehiclePos(cInfo[i][id_x],p[0],p[1],p[2]);
    z = GetPlayerDistanceFromPoint(playerid,p[0],p[1],p[2]);
    if(z < tmp) tmp=z,t=i;
    }
    return (!t)?INVALID_VEHICLE_ID:t;
    }


    mfg. :thumbup:


    //Edit: Distance 50.0

    Kann ich den DataGridView denn auch wie eine Exceltabelle gestalten und drucken?


    Ja das kannst du :)


    Das mit dem Drucken sollte eigentlich funktionieren, wenn nicht, schau dir das mal an:


    https://msdn.microsoft.com/de-…ry/aa287528(v=vs.71).aspx


    Hast du mal \t Für Tab genommen?


    Das ist Quatsch....aber ja man kann die Spalte beliebig vergrößern :)


    // Ja die Daten müsste ich statisch eingeben da die zuvor aus einer Liste ausgewählt werden müssen für jede Reihe und daher erst alle Informationen zusammen getragen werden sollten :b


    Ich verstehe nicht...was du mir damit sagen willst? :huh:


    mfg. :thumbup:

    Das kannst du einfach mit deinem dataGridView machen:


    //Gib hier an, wie viele Header-Spalten du hast:
    dataGridView1.ColumnCount = 2;


    //Dann die Namen der Header-Spalten
    dataGridView1.Columns[0].Name = "Name";
    dataGridView1.Columns[1].Name = "Alter";


    //Dann deine Daten:
    string[] row1 = new string[] {"Test","15"};
    string[] row2 = new string[] {"Peter","20"};
    string[] row3 = new string[] {"Susi","17"};



    object[] rows = new object[] { row1, row2, row3 };


    foreach (string[] rowArray in rows)
    {
    dataGridView1.Rows.Add(rowArray);
    }


    Wenn dir das mit der Schleife zu doof ist, kannst du das auch einfach statisch hinzufügen:


    //Dann deine Daten:
    string[] row1 = new string[] {"Test","15"};
    dataGridView1.Rows.Add(row1);


    string[] row2 = new string[] {"Peter","20"};
    dataGridView1.Rows.Add(row2);


    string[] row3 = new string[] {"Susi","17"};
    dataGridView1.Rows.Add(row3);


    mfg. :thumbup:

    Muss ich dann unter diesem Callback meine Skinid aus der DB laden oder geht das anders auch?


    Genau dann, wenn du auch deine anderen Daten wie (Geld) o.ä. lädst, genau da lädst du auch den Skin in eine Variable.


    und dann unter OnPlayerSpawn, machst du dann:


    SetPlayerSkin(playerid, SpielerInfo[playerid][pSkin]);


    mfg. :thumbup: