[SAMMELTHREAD] Kleine Scripting Fragen

Dein Problem konnte durch einen User gelöst werden? Bedank dich bei ihm indem du seinen Beitrag als Hilfreich markierst sowie einen Daumen oben dalässt
Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Indem du bei deinem enum noch 2 Einträge wie "fraction" und "rank" hinzufügst und diese Dann je nach Fraktion setzt.
    Und je nach dem, was deine Fraktion können soll brauchst du dann halt noch ein paar Settings.


    #Brotfischbaron


    In schā'a llāh

  • Schau dir einfach mal die Gamemodes an, die derzeit so im Showroom rumschwirren, da ist sicher ein einfaches Fraktionssystem dabei.
    Außerdem gibt's auch in der Tutorial-Section genug zum Thema "Fraktionssystem".


    #Brotfischbaron


    In schā'a llāh

  • moin, hrhrhr ich bin zuu blööd um x,y,z coordinaten zu erstellen bzw habe nen revive system (wiederbeleben auf deutsch) das sieht so aus:



    new TotenKopf[MAX_PLAYERS];


    Function OnPlayerDisconnect(playerid, reason)
    {
    DestroyPickup(TotenKopf[playerid]);


    BEIM KRANKENHAUS TIMER:

    SendClientMessage(i, COLOR_LIGHTGREEN, "Du wurde erfolgreich aus dem Krankenhaus entlassen");
    SendClientMessage(i, COLOR_LIGHTGREEN, "Der aufenhalt kostet dich 1000$ Schönen Tag noch");
    DestroyPickup(TotenKopf[i]);



    for(new i = 0; i < MAX_PLAYERS;i++)
    {
    if(pickupid == TotenKopf[i])
    {
    new deathplayername[MAX_PLAYER_NAME],deathplayerstring[128];
    GetPlayerName(i,deathplayername,sizeof(deathplayername));
    format(deathplayerstring,sizeof(deathplayerstring),"Leiche von %s Arzt /revive",deathplayername);
    GameTextForPlayer(playerid,deathplayerstring,3000,3);
    }
    }
    if(pickupid == port)
    {
    SetPlayerPos(playerid, 219.7440,121.5539,1003.2188);
    SetPlayerInterior(playerid, 10);
    }
    if(pickupid == port1)
    {
    SetPlayerPos(playerid, 1526.6427,-1672.1626,6.2188);
    SetPlayerInterior(playerid, 0);
    }
    if(pickupid == port3)
    {
    SetPlayerPos(playerid,327.7865,-1496.1865,24.9219);
    SetPlayerInterior(playerid, 0);
    }
    if(pickupid == port4)
    {
    SetPlayerPos(playerid,231.0565,184.3733,1003.0313);
    SetPlayerInterior(playerid, 3);
    }
    if(pickupid == port5)
    {
    SetPlayerPos(playerid,304.8093,-1524.2535,76.5391);
    SetPlayerInterior(playerid, 0);
    }
    if(pickupid == port6)
    {
    SetPlayerPos(playerid, 231.3349,184.0748,1003.0313);
    SetPlayerInterior(playerid, 3);
    }



    if (strcmp(cmd, "/revive", true) == 0)
    {
    new x = 0;
    if (PlayerInfo[playerid][pMember] == 4 || PlayerInfo[playerid][pLeader] == 4)
    {
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i) && PlayerInfo[i][pTot] == 1 && PlayerToPoint(5.0,playerid,PlayerInfo[i][pTx],PlayerInfo[i][pTy],PlayerInfo[i][pTz]))
    {
    new pname[MAX_PLAYER_NAME];
    GetPlayerName(i, pname, sizeof(pname));
    SetPlayerHealth(i,20.0);
    FraktionsKasse[4] += 1000;
    GivePlayerMoney(playerid,100);
    format(string, 256, "Du hast %s, für 1000$ wiederbelebt!",pname);
    SendClientMessage(playerid, COLOR_LIGHTGREEN, string);
    GetPlayerName(playerid, pname, 256);
    format(string, 256, "Arzt %s hat dich für 1000$ wiederbelebt!",pname);
    SendClientMessage(i, COLOR_LIGHTGREEN, string);
    GivePlayerMoney(i,-1000);
    PlayerInfo[i][pTot] = 0;
    pIstTot[i] = 0;
    SetPlayerPos(i,PlayerInfo[i][pTx],PlayerInfo[i][pTy],PlayerInfo[i][pTz]);
    SetPlayerInterior(i,GetPlayerInterior(playerid));
    SetCameraBehindPlayer(i);
    DestroyPickup(TotenKopf[i]);
    TogglePlayerControllable(i,1);
    PlayerInfo[i][pTx] = 0;
    PlayerInfo[i][pTy] = 0;
    PlayerInfo[i][pTz] = 0;
    SetPlayerHealth(i,20.0);
    x++;
    }
    }
    if(x == 0)
    {
    SendClientMessage(playerid, COLOR_GRAD1, "Hier ist niemand den du wiederbeleben könntest");
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_GRAD1, "Du bist kein Arzt!");
    }
    return 1;
    }


    es funktioniert einfach nicht :(

    Moinsen,

    Ich Schreibe aktuell Nebenbei in ein SA:MP Script einfach wegen der Guten alten Zeiten :thumbup:

    Script Fortschritt: ||||||||||||

  • nunja wenn ich /revive machen tuhe wird der spieler revived und alles aber der toten kopf ist komischerweiser immernoch da und ich werde geportet O.o :(

    Moinsen,

    Ich Schreibe aktuell Nebenbei in ein SA:MP Script einfach wegen der Guten alten Zeiten :thumbup:

    Script Fortschritt: ||||||||||||

  • hab ich gemacht hmhmhm das macht mich kirre :( ich hab mir neben her dein flood bot angekuckt hast du vllt skype will das auch testen lassen mache das auch drauf

    Moinsen,

    Ich Schreibe aktuell Nebenbei in ein SA:MP Script einfach wegen der Guten alten Zeiten :thumbup:

    Script Fortschritt: ||||||||||||

  • Ich habe einen Dialog gemacht wo man jmd, checken, kicken und bannen kann, wenn man auf ihn Clickt bei der Tab_taste
    Dann muss man ja von OnPlayerClickPlayer zu On Dialog Response
    Allerdings muss man bei KickPlayer ja die playerid angeben, in dem Fall clickedplayerid.
    Die ist bei OnDialogResponse aber nicht definiert.
    Wie definier ich die damit das funktioniert?


    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    if(dialogid==DialogClickPlayer)
    {
    if(response==0)
    {
    }
    if(response==1)
    {
    }
    if(listitem==0)
    {
    new stringstats[256],arang,atext[50];
    arang = GetPVarInt(clickedplayerid,"Adminlevel");
    if(gTeam[clickedplayerid] == TeamCops) { atext = "Cops"; }
    else if(gTeam[clickedplayerid] == TeamGrove) { atext = "Grove Street"; }
    else if(gTeam[clickedplayerid] == TeamZivi) { atext = "Zivilist"; }
    format(stringstats,sizeof(stringstats),"[Name: %s] [ID: %i] [Level: %i] [Adminlevel: %d] [Team: %s]",SpielerName(clickedplayerid),clickedplayerid,GetPlayerScore(clickedplayerid),arang,atext);
    ShowPlayerDialog(playerid,DialogCheckStats,DIALOG_STYLE_MSGBOX,"Check Stats:",stringstats,"Ok","Ok");
    return 1;


    //die anderen Klammern fehlen da ncoh mehr kommt
    }

  • Hallo Leute, kann mir mal jemand helfen, also ich habe hier ein Tacho gemacht wo die HP anzeige gezeigt wird, nur irgendwie bleibt die hp anzeige immer auf 1 :/



    new heal[20];
    new Float:vicheal;
    new Vehicleid;
    Vehicleid = GetPlayerVehicleID(i);
    vicheal = GetVehicleHealth(Vehicleid, vicheal);

    if(vicheal < 10) format(heal,sizeof(heal),"HP: ~r~%0.0f", vicheal);
    else if(vicheal < 30) format(heal,sizeof(heal),"HP: ~y~%0.0f", vicheal);
    else if(vicheal <= 100) format(heal,sizeof(heal), "HP: ~g~%0.0f", vicheal);
    TextDrawSetString(SpeedoHeal[i],heal);


    Bitte um Hilfe



  • new heal[20];
    new Float:vicheal;
    new Vehicleid;
    Vehicleid = GetPlayerVehicleID(i);
    GetVehicleHealth(Vehicleid, vicheal);

    if(vicheal < 10) format(heal,sizeof(heal),"HP: ~r~%0.0f", vicheal);
    else if(vicheal < 30) format(heal,sizeof(heal),"HP: ~y~%0.0f", vicheal);
    else if(vicheal <= 100) format(heal,sizeof(heal), "HP: ~g~%0.0f", vicheal);
    TextDrawSetString(SpeedoHeal[i],heal);


    sollte gehen :thumbup:


  • Hatte es davor schon richtig XD



    nur habe ich hier die zahlen zu niedrig gemacht, da meine hp anzeige bei 1000 beginnt


    falsch:

    if(vicheal < 10) format(heal,sizeof(heal),"HP: ~r~%0.0f", vicheal);
    else if(vicheal < 30) format(heal,sizeof(heal),"HP: ~y~%0.0f", vicheal);
    else if(vicheal <= 100) format(heal,sizeof(heal), "HP: ~g~%0.0f", vicheal);


    richtig:

    if(vicheal < 250) format(heal,sizeof(heal),"HP: ~r~%0.0f", vicheal);
    else if(vicheal < 500) format(heal,sizeof(heal),"HP: ~y~%0.0f", vicheal);
    else if(vicheal <= 1000) format(heal,sizeof(heal), "HP: ~g~%0.0f", vicheal);


    Trotzdem bedanke ich mich für deine Hilfe :)



    ------------------------------------
    Nächste Frage:


    Hier mein sms script:

    format(text,sizeof(text),"[SMS][Von %s]: %s",sName(playerid),text);
    SendClientMessage(pid,GELB,text);
    format(text,sizeof(text),"[SMS][An %s]: %s", sName(pid),text);
    SendClientMessage(playerid, GELB, text);


    Mein Problem:


    beim 2ten format sieht dann die SendClientMessage so aus:


    [SMS][An NAME1]: [SMS][Von NAME2] test


    Wie kann ich machen das dort nicht nocheinmal von steht ?

    3 Mal editiert, zuletzt von grauerhase ()

  • Wie ist es eigentlich am besten das Register und Login System zu machen?? Dini ( mit Enum) oder mit PVars ??


    (E) 1. Rechtschreibung

    Die Kritik an anderen hat noch keinem die eigene Leistung erspart.

    – Noël Coward

  • Hey, wollte einen eigenen kleinen Ammu scripten hier das mit den Dialogen etc. und mit dem GivePlayerWeapon ist ja einfach aber wie mache ich das dem Spieler dann auch die Summe entzogen wird? oder er ggf. ins - geht?


    Meinste das ?


    GivePlayerMoney(playerid, -500); //- 500 wenn ehr geld abgezogen bekommen soll und GivePlayerMoney(playerid, 500); wenn er geld bekommen soll.
    oder was meinst du ?

  • Hier mein sms script:


    format(text,sizeof(text),"[SMS][Von %s]: %s",sName(playerid),text);
    SendClientMessage(pid,GELB,text);
    format(text,sizeof(text),"[SMS][An %s]: %s", sName(pid),text);
    SendClientMessage(playerid, GELB, text);


    Mein Problem:


    beim 2ten format sieht dann die SendClientMessage so aus:


    [SMS][An NAME1]: [SMS][Von NAME2] test


    Wie kann ich machen das dort nicht nocheinmal von steht ?

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen