Beiträge von German_ScripterHD

    Hallo Brotfische,


    Ich möchte abfragen ob der Fahrzeug rückwerts an einem Haus steht... Leider kommt bei mir immer, das Fahrzeug steht nicht rückwerts am Haus obwohl es so steht.


    Mein gespeicherter Punkt aus savedpositions.txt:


    AddStaticVehicle(428,-821.3318,1507.3132,20.1009,180.5114,1,1); //Haus Angle (Float:rot)


    Code:

    if(rot >= 180 && rot <= 225 || rot >= 225 && rot <= 180) {
    SetPlayerCheckpoint(playerid,GetBackVehiclePosX(atmVehid[playerid]),GetBackVehiclePosY(atmVehid[playerid]),GetBackVehiclePosZ(atmVehid[playerid]),1.0);
    atmCheckpoint[playerid] = 2;
    } else {
    return SendClientMessage(playerid, COLOR_GRAY,"* Dein Fahrzeug steht nicht rückwärts am Haus.");
    }



    MfG :thumbup:

    Hallo Broftfische,


    Ich war gerade dabei mein Bankautomatensystem zu scripten. Wenn die Bankautomaten nun laden, stecken diese im Boden. Wie kann ich es machen, das diese nicht im Boden & nicht in der Luft schweben?


    Code:

    CreateObject(2942,atmInfo[id][atm_x],atmInfo[id][atm_y],atmInfo[id][atm_z],0.0,0.0,180.0);


    Ich hoffe ihr könnt mir helfen :)


    MfG :thumbup:

    Befehl zum leiche einsammeln:


    ocmd:corpse(playerid)
    {
    if(GetVehicleModel(GetPlayerVehicleID(playerid)) != 442)return SendClientMessage(playerid,C_Error,"Du bist nicht im Leichenwagen!");
    if(leiche[playerid] == 1) return SendClientMessage(playerid, C_Error, "Du hast bereits eine Leiche geladen. Bringe sie zuerst zum Friedhof.");
    for(new i=0; i<MAX_LEICHEN; i++)
    {
    if(!IsPlayerInRangeOfPoint(playerid,10.0,leichenInfo[i][l_x],leichenInfo[i][l_y],leichenInfo[i][l_z]))return SendClientMessage(playerid,C_Error,"Hier ist keine Leiche!");
    Delete3DTextLabel(leichenInfo[i][NamenLabel]);
    DestroyPickup(leichenInfo[i][pickup]);
    SendClientMessage(playerid,C_Blau,"Du hast eine Leiche eingesammelt.");
    SendClientMessage(playerid,C_Blau,"Fahre nun zum Friedhof, und geb die Leiche dort ab.");
    leiche[playerid]=1;
    leichenInfo[i][existiert]=0;
    SetPlayerCheckpoint(playerid,927.4283,-1073.0220,24.2891,5.0);
    return 1;
    }
    return 1;
    }


    Muss jetzt dann .... leichenInfo[i][existiert]=0; oder leichenInfo[i][existiert]=1; ?


    .

    Wenn ich mich jetzt das erstemal töte, wird mir bei der Leichenliste, jetzt angzeigt: "Santa Maria Beach Entfernung: blabla" klicke ich jetzt auf diesen Ort wird mir keine Checkpoint gesetzt. Wenn ich mich jetzt ein zweitesmal töte, wird auch dieser Ort angezeigt aber klicke ich jetzt auf das zweite wird mir der Checkpoint zum ersten gesetzt.

    Danke, klappt :thumbup:


    Jetzt habe ich noch ein Problem mit meiner Leichenliste, diese soll ein Dialog mit allen leichen die es gibt anzeigen. Leider zeigt diese garnichts an .


    Code:
    #define DIALOG_LeichenMenu 122


    ocmd:corpselist(playerid,params[])
    {
    new string[512],string2[512],inhalt[512],Float:x,Float:y,Float:z;
    if(!IsPlayerInAnyVehicle(playerid))return SendClientMessage(playerid,COLOR_GRAY,"*Du bist in keinem Fahrzeug!");
    if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER)return SendClientMessage(playerid,COLOR_GRAY,"*Du bist nicht der Fahrer eines Fahrzeugs!");
    for(new i = 0; i < MAX_LEICHEN; i++)
    {
    if(leichenInfo[i][l_x] == 0 && leichenInfo[i][l_y] == 0 || leichenInfo[i][l_z] == 0)return 1;
    format(string2,sizeof(string2),"%s\t%0.2f Meter\t%d\n",GetAreaName(leichenInfo[i][l_x],leichenInfo[i][l_y],leichenInfo[i][l_z]),GetDistance(x,y,z,leichenInfo[i][l_x],leichenInfo[i][l_y],leichenInfo[i][l_z]));
    strcat(string, string2);
    }
    format(inhalt,sizeof(inhalt),"Ort\tEntfernung\n%s",string);
    ShowPlayerDialog(playerid, DIALOG_LeichenMenu, DIALOG_STYLE_TABLIST_HEADERS, "Leichen Menu",inhalt, "Wählen", "Abbrechen");
    return 1;
    }


    if(dialogid==DIALOG_LeichenMenu)
    {
    if(!response)return 1;
    new tmp;
    for(new i=1; i<MAX_LEICHEN; i++)
    {
    if(tmp==listitem)
    {
    if(leichenInfo[i][onload]==1)return 1;
    SetPlayerCheckpoint(playerid,leichenInfo[i][l_x],leichenInfo[i][l_y],leichenInfo[i][l_z],3.0);
    return 1;
    }
    else tmp++;
    }
    }

    Hallo Brotfische,


    Ich bin gerade dabei mein Bestatter System zu scripten.


    Wenn ein Spieler stierbt, sollte eigentlich ein Pickup erstellt werden. Leider passiert da garnichts :(


    Codes:


    #define MAX_LEICHEN 3000


    enum LeichenInfoEnun{
    Float:l_x,
    Float:l_y,
    Float:l_z,
    pickup,
    Text3D:NamenLabel,
    onload
    }
    new leichenInfo[MAX_LEICHEN][LeichenInfoEnun];


    public OnPlayerDeath(playerid, killerid, reason)
    {
    new Float:tot_x,Float:tot_y,Float:tot_z;
    tot[playerid] = 1;
    giveplayermoney(playerid,-GetPlayerScore(playerid)*50);
    new namenstring[200];
    format(namenstring,sizeof(namenstring),"†\n%s",getPlayerName(playerid));
    for(new l = 0; l < MAX_LEICHEN; l++)
    {
    GetPlayerPos(playerid,tot_x,tot_y,tot_z);
    tot_x=leichenInfo[l][l_x];
    tot_y=leichenInfo[l][l_y];
    tot_z=leichenInfo[l][l_z];
    leichenInfo[l][pickup] = CreatePickup(1254,1,leichenInfo[l][l_x],leichenInfo[l][l_y],leichenInfo[l][l_z],0);
    leichenInfo[l][NamenLabel] = Create3DTextLabel(namenstring,C_Weiß,leichenInfo[l][l_x],leichenInfo[l][l_y],leichenInfo[l][l_z],10.0,0,0);
    leichenInfo[l][onload] = 0;
    print("OnPlayerDeath.. Leichenpickup usw. wurde erstellt!");
    return 1;
    }
    //.....
    //.....
    }


    Das Wird mir geprintet:


    [16:57:36] Number of vehicle models: 102
    [16:57:53] [join] German_ScripterHD has joined the server (0:127.0.0.1)
    [16:59:12] OnPlayerDeath.. Leichenpickup usw. wurde erstellt!


    Ich hoffe es kann mir jemand helfen :)


    MfG :thumbup:

    Abend Brotfische,


    Mein Server crasht sobald man eine Textnaricht im Chat schreibt.


    Spoiler anzeigen
    public OnPlayerText(playerid, text[])
    {
    new Float:x, Float:y, Float:z;
    GetPlayerPos(playerid, x, y, z);

    Spoiler anzeigen
    new string[150];
    if(supduty[playerid]==1)
    {
    format(string,sizeof(string), "{C800FF}%s: {FFFFFF}%s",getPlayerName(playerid), text);
    }
    else
    {
    format(string,sizeof(string), "%s: %s",getPlayerName(playerid), text);
    }

    Spoiler anzeigen
    new chat_color;

    Spoiler anzeigen
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    if(!IsPlayerConnected(i))continue;
    if(!IsPlayerInRangeOfPoint(i, CHAT_RADIUS, x, y, z))continue;
    if(GetPlayerVirtualWorld(i)!=GetPlayerVirtualWorld(playerid)) continue;
    new Float:distance = GetPlayerDistanceFromPoint(i, x, y, z);
    if(distance < CHAT_RADIUS / CHAT_FADES)
    {
    chat_color = COLOR_CHAT;
    }
    else if(distance < CHAT_RADIUS / CHAT_FADES * 2)
    {
    chat_color = COLOR_FADE1;
    }
    else if(distance < CHAT_RADIUS / CHAT_FADES * 3)
    {
    chat_color = COLOR_FADE2;
    }
    else if(distance < CHAT_RADIUS / CHAT_FADES * 4)
    {
    chat_color = COLOR_FADE3;
    }
    else if(distance <= CHAT_RADIUS / CHAT_FADES * 5)
    {
    chat_color = COLOR_FADE4;
    }
    SendClientMessage(i, chat_color, string);
    }
    ChatLog(playerid, text);
    SetPlayerChatBubble(playerid,text,C_Weiß, 100.0, 10000);
    if(GetPlayerState(playerid) == PLAYER_STATE_ONFOOT)
    {
    new Length = strlen(text);
    new aTime = Length*400;
    ApplyAnimation(playerid,"PED","IDLE_CHAT",4.1,1,1,1,0,aTime);
    }
    return 0;
    }

    Spoiler anzeigen
    stock ChatLog(playerid, text[])
    {
    new
    File:lFile = fopen("scriptfiles/Logs/ChatLog.txt", io_append),
    logData[178],fyear, fmonth, fday,fhour, fminute, fsecond;
    getdate(fyear, fmonth, fday);
    gettime(fhour, fminute, fsecond);
    format(logData, sizeof(logData),"[%02d/%02d/%04d | %02d:%02d:%02d] %s: %s \r\n", fday, fmonth, fyear, fhour, fminute, fsecond, getPlayerName(playerid), text);
    fwrite(lFile, logData);
    fclose(lFile);
    return 1;
    }


    MfG :thumbup:

    Abend Brotfische,


    Ich möchte wenn ein spieler "/afk" eintippt, das ein Textlabel über dem Spieler steht, wie lang er im AFK Modus ist... Format: 00:00:00 (Stunden,Minunten,Sekunden)


    Ich hoffe es kann mir jemand helfen :)


    MfG :thumbup:

    Nabend Brotfische,


    Ich habe ein Problem mit meinem Sprunklist Dialog. Wenn mehr als 80 Dosen im Automat sind, soll der Automat nicht angezeigt werden. (Er wird nicht angezeigt, aber wenn ich unten auf den Button 1 "Wählen" klicke wird mir ein Marker zu dem Sprunkautomat gesetzt.)


    Code:
    ocmd:list(playerid,params[])
    {
    if(sInfo[playerid][job] == 1)
    {
    new vehicleid,string[512],string2[512],inhalt[512],Float:x,Float:y,Float:z;
    GetPlayerPos(playerid,x,y,z);
    if(IsPlayerInAnyVehicle(playerid))
    {
    vehicleid = GetPlayerVehicleID(playerid);
    if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
    {
    if(IsASprunkCar(vehicleid))
    {
    for(new i = 0; i < MAX_FOODS; i++)
    {
    if(Food[i][fx] == 0 && Food[i][fy] == 0 || Food[i][fvalue] > 80)continue;
    if(Food[i][fdisabled] == 1)continue;
    format(string2,sizeof(string2),"%s\t%0.2f Meter\t%d\n",GetAreaName(Food[i][fx],Food[i][fy],Food[i][fz]),GetDistance(x,y,z,Food[i][fx],Food[i][fy],Food[i][fz]),100-Food[i][fvalue]);
    strcat(string, string2);
    }
    format(inhalt,sizeof(inhalt),"Ort\tEntfernung\tBenötigt\n%s",string);
    ShowPlayerDialog(playerid, DIALOG_SPRUNKLIST, DIALOG_STYLE_TABLIST_HEADERS, "Sprunk Automaten",inhalt, "Wählen", "Abbrechen");
    } else {
    return SendClientMessage(playerid,COLOR_GRAY,"* Das ist kein Fahrzeug von Sprunk.");
    }
    } else {
    return SendClientMessage(playerid,COLOR_GRAY,"* Du bist nicht der Fahrer.");
    }
    } else {
    return SendClientMessage(playerid,COLOR_GRAY,"* Du bist in keinem Fahrzeug.");
    }
    }
    return 1;
    }


    if(dialogid==DIALOG_SPRUNKLIST)
    {
    if(!response)return 1;
    new tmp;
    switch(listitem)
    {
    case 0..MAX_FOODS:
    {
    for(new i = 1; i < MAX_FOODS; i++)
    {
    if(tmp == listitem)
    {
    SetPlayerCheckpoint(playerid,Food[i][fx],Food[i][fy],Food[i][fz],1.0);
    SprunkCheckpoint[playerid] = 3;
    break;
    }
    else tmp++;
    }
    }
    }
    }
    Ich hoffe es kann mir jemand helfen :)


    MfG :thumbup:

    Ich würde es so machen:


    public OnPlayerSpawn(playerid)
    {
    if(PlayerInfo[playerid][pGeschlecht] == 0)
    {
    SetPlayerSkin(playerid,23);
    }
    else
    {
    SetPlayerSkin(playerid,40);
    }
    return 1;
    }


    So müsste es klappen :)


    #Ungetestet
    ________________________________________________________


    Zitat

    Wie kann ich abfragen ob er bereits eingeloggt ist ?


    Ganz einfach, wenn das passwort richtig eingegeben wurde, machst du einfach eine Variable z.B:

    PlayerInfo[playerid][pEingeloggt] = 1;


    Und so kannst du dann immer abfragen ob der spieler eingeloggt ist:



    if(PlayerInfo[playerid][pEingeloggt] !=1)return 1;




    MfG :thumbup: