[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
  • Hab ich aber...
    Es Funktioniert nicht man kriegt immer Skin 1.(CJ)


    public OnPlayerDeath(playerid, killerid, reason)
    {
    if(GetPVarInt(playerid,"Donator")==0)
    {
    SetPVarInt(playerid,"Tode",GetPVarInt(playerid,"Tode")+1);
    SetPVarInt(killerid,"Kills",GetPVarInt(killerid,"Kills")+1);
    GivePlayerMoney(killerid,250);
    SetPVarInt(killerid,"Respektpunkte",GetPVarInt(killerid,"Respektpunkte")+1);
    }
    if(GetPVarInt(playerid,"Donator")==1)
    {
    SetPVarInt(playerid,"Tode",GetPVarInt(playerid,"Tode")+1);
    SetPVarInt(killerid,"Kills",GetPVarInt(killerid,"KIlls")+1);
    GivePlayerMoney(killerid,500);
    SetPVarInt(killerid,"Respektpunkte",GetPVarInt(killerid,"Respektpunkte")+2);
    }
    SetPVarInt(playerid,"Killed",1);
    if(GetPVarInt(playerid,"Killed")==1)
    {
    SetTimer("Toggle",3000,1 );
    TogglePlayerSpectating(playerid, 1);
    PlayerSpectatePlayer(playerid, killerid);
    }
    if(GetPVarInt(playerid,"Klassen")==1)
    {
    if(GetPVarInt(playerid,"Team")==1)
    {
    SetPlayerSkin(playerid,287);
    }
    if(GetPVarInt(playerid,"Team")==2)
    {
    SetPlayerSkin(playerid,206);
    }
    if(GetPVarInt(playerid,"Team")==3)
    {
    SetPlayerSkin(playerid,125);
    }
    if(GetPVarInt(playerid,"Team")==4)
    {
    SetPlayerSkin(playerid,142);
    }
    if(GetPVarInt(playerid,"Team")==5)
    {
    SetPlayerSkin(playerid,156);
    }
    if(GetPVarInt(playerid,"Team")==6)
    {
    SetPlayerSkin(playerid,203);
    }
    if(GetPVarInt(playerid,"Team")==7)
    {
    SetPlayerSkin(playerid,118);
    }
    }
    if(GetPVarInt(playerid,"Klassen")==1)
    {
    SetPlayerSkin(playerid,70);
    }
    if(GetPVarInt(playerid,"Klassen")==3)
    {
    if(GetPVarInt(playerid,"Team")==1)
    {
    SetPlayerSkin(playerid,60);
    }
    if(GetPVarInt(playerid,"Team")==2)
    {
    SetPlayerSkin(playerid,47);
    }
    if(GetPVarInt(playerid,"Team")==3)
    {
    SetPlayerSkin(playerid,43);
    }
    if(GetPVarInt(playerid,"Team")==4)
    {
    SetPlayerSkin(playerid,95);
    }
    if(GetPVarInt(playerid,"Team")==5)
    {
    SetPlayerSkin(playerid,98);
    }
    if(GetPVarInt(playerid,"Team")==6)
    {
    SetPlayerSkin(playerid,59);
    }
    if(GetPVarInt(playerid,"Team")==7)
    {
    SetPlayerSkin(playerid,57);
    }
    }
    if(GetPVarInt(playerid,"Klasse")==4)
    {
    SetPVarInt(playerid,"Klassen",4);
    SetPlayerSkin(playerid,149);
    }
    SpielerSpeichern(playerid);
    return 1;
    }

  • Wie erstelle ich einen Pickup in einem Interior?


    Einfach ganz normal ein Pickup erstellen, das wird in allen Interiors angezeigt.


    Falls du ein Pickup nur in einem bestimmten Interior anzeigen lassen willst, musst du einen streamer z.B. Incognitos verwenden und dort die entsprechenden Parameter ausfüllen für CreateDynamicPickup.


    mfg. :thumbup:

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • if(newkeys == 16)// --> Enter / F


    bitte nicht == 16, wenn dann & 16.
    Das liegt an der Struktur, wie die Keys von SA:Mp gehandhabt werden.


    Das mag zwar funktionieren, aber nur wenn keine andere Taste gedrückt wird.
    Die Keys sind binär angelegt und müssen somit auch so geprüft werden ;)
    http://forum.sa-mp.com/showthread.php?t=177523

    "Bevor ich mir Informationen aus der "Bild" hole,
    werde ich anfangen, Wahlergebnisse danach vorauszusagen,
    neben welchen Busch unsere Katze gepinkelt hat."

    Margarete Stokowski

  • Habe ein kleines Problem, bei wir wird der 1 Checkpoint nicht gelöscht und der 2. auch nicht angezeigt.


    Code:


    public OnPlayerEnterCheckpoint(playerid)
    {
    if(IsPlayerInRangeOfPoint(playerid,5,1037.4674,2428.6323,10.8203))
    {
    DisablePlayerCheckpoint(playerid);
    SetPlayerCheckpoint(playerid,1037.4674,2428.6323,10.8203,3.0);
    }
    else if(IsPlayerInRangeOfPoint(playerid,5,1037.6967,2440.1572,10.8203))
    {
    DisablePlayerCheckpoint(playerid);
    SetPlayerCheckpoint(playerid,1037.6399,2452.2610,10.8203,3.0);
    }


    Danke an euch im Vorraus :thumbup:

  • Die Koordinaten von "IsPlayerInRangeOfPoint" stimmen nicht.


    if(IsPlayerInRangeOfPoint(playerid,5,1037.4674,2428.6323,10.8203))
    {
    DisablePlayerCheckpoint(playerid);
    SetPlayerCheckpoint(playerid,1037.4674,2428.6323,10.8203,3.0);
    }
    Das sind dieselben Koordinaten, das macht keinen Sinn.


    ------
    @FerienFreak: Wo gibst du dem Spieler denn den Skin ID 1?

  • Hallo! Jeffry: ((Ich markiere dich schonmal weil du eh weißt wies richtig geht :P))


    ich habe ein kleines Problem.



    ocmd:fcarrespawn(playerid, params[])
    {
    if(Spieler[playerid][fraktion] == 0) return SCM(playerid, C_DRED, "Du bist in keiner Fraktion");
    if(Spieler[playerid][rang] != 8) return SCM(playerid, C_DRED, "Du bist kein Leader");
    for(new i = 0; i < MAX_VEHICLES; i++)
    {
    if(AnyPlayerInVehicle(i)) continue;
    if(i == FraktionsCars[i][f_car_id_x] && FraktionsCars[i][f_id] == Spieler[playerid][fraktion]) SetVehicleToRespawn(i);
    }
    format(s, sizeof(s), "%s %s hat alle Fraktions-Cars respawnt", FRangName(playerid), GetName(playerid));
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(!InFrak(i, Spieler[playerid][fraktion])) continue;
    SCM(i, C_YELLOW, s);
    }
    return 1;
    }


    Die Cars werden zwar respawnt, ich bekomme aber vom Server ein "SERVER: Unknown Command" ausgegeben


    Hoffentlich kann jmd helfen.

  • Liegt wohl an einem gesprengten Array. Welches das ist müssen wir über Debugging herausfinden:
    ocmd:fcarrespawn(playerid, params[])
    {
    printf("Befehl gestartet: %d", playerid);
    if(Spieler[playerid][fraktion] == 0) return SCM(playerid, C_DRED, "Du bist in keiner Fraktion");
    if(Spieler[playerid][rang] != 8) return SCM(playerid, C_DRED, "Du bist kein Leader");
    for(new i = 0; i < MAX_VEHICLES; i++)
    {
    printf("Gehe in V-ID: %d", i);
    if(AnyPlayerInVehicle(i)) continue;
    if(i == FraktionsCars[i][f_car_id_x] && FraktionsCars[i][f_id] == Spieler[playerid][fraktion]) SetVehicleToRespawn(i);
    }
    printf("Erste Schleife beendet.");
    format(s, sizeof(s), "%s %s hat alle Fraktions-Cars respawnt", FRangName(playerid), GetName(playerid));
    printf("Vor zweiter Schleife. => s = %s", s);
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    printf("Prüfe ID: %d", i);
    if(!InFrak(i, Spieler[playerid][fraktion])) continue;
    SCM(i, C_YELLOW, s);
    }
    printf("Ende");
    return 1;
    }
    Was wird geprintet? (Achtung, könnte viel sein!)