[SAMMELTHREAD] Kleine Scripting Fragen

In 10 Minuten startet der nächtliche Backupvorgang! Es kann währenddessen (ca. 10 Minuten) zu Einschränkungen bei der Nutzung des Forums kommen
Weitere Infos findet ihr im Thema Backup des Forums
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
  • Ich habe immernoch ein großes Problem mit return.


    Ich weiß nie genau wann ich return 1;, return 0; oder return wasweißich; benutzen soll,
    besonders bei stocks und Befehlen, wäre nett wenn mir das jemand verständlich erklärt ?(


    Und das Verb "returnen" versteh ich ebensowenig :D


    --------------------------------------------------------------
    Danny Ocean:


    if(IsPlayerInAnyVehicle(playerid))
    {
    SetVehiclePos(vehicleid,x,y,z,);
    SetPlayerPos(playerid,x,y,z);
    PutPlayerInVehicle(vehicleid);
    LinkVehicleToInterior(vehicleid,INTERIOR);
    }
    else
    {
    SetPlayerPos(playerid,x,y,z);
    }

  • if(pickupid == pickupxyz)
    {
    if(IsPlayerInAnyVehicle(playerid))
    {
    SetVehiclepos(getplayervehicleid,x,y,z);
    linkvehicledingsda(eine Seite zurück);
    PutPlayerInVehicle(xxxxxxxx);
    return 1;
    }
    }


    90% des Codes sind falsch geschrieben... soll dir nur den "Ansatz" geben was du machen sollst.
    Bin off.


    Edit: Pille hat edietiert... (wurde mir nicht angezeigt, sorry dafür)

  • Hi,


    ich habe folgendes Problem:


    Wenn man in meinem Dm spawnt (Spieler wird in eine VirtualWorld gesetzt) steht man für die Gegenspieler immer an der selben stelle herum. Alle können sich bewegen aber sie sehen halt ihre Gegenspieler nicht bzw. die Gegenspieler stehen an der selben Stelle herum wobei sie sich bei sich selber
    bewegen. Verlässt man dann das Dm wieder ist alles normal. Die VirtualWorld wird dann natürlich wieder zurück gesetzt.


    Wie kann ich das beheben?

  • Ja, an einer Stelle steht ein return 0;


    Hab's mal entfernt und werde gleich testen ob es geht. Das wäre super. :D


    //Edit: Ja das war der Fehler :D Danke dir

    Einmal editiert, zuletzt von |»Timmeyable«| ()


  • stock SpielerName(playerid)
    {
    new xname[MAX_PLAYER_NAME];
    GetPlayerName(playerid,xname,sizeof xname);
    return xname;
    }

  • Hi,


    ich habe eben etwas komisches entdeckt:


    Wenn man normal auf meinem Server spawnt bekommt man Waffen die aber nirgens im Script stehen.
    Unter OnPlayerSpawn zum Beispiel steht kein GivePlayerWeapon Befehl und trotzdem hat man nach jedem Spawn (auch beim Tod)
    wieder diese Waffen. Habe sie schon probiert über die Suchfunktion zu finden aber habe auch nichts entdeckt.


    Wo könnte dieses Problem versteckt sein und wie finde ich es?

  • Kann mir jemand helfen?


    Habe bei OnPlayerShootPlayer 1 Hit mit der waffe Möchte aber, wenn Der jenige Rüstung hat, das der user nicht bei 1 Hit Stirbt, sondern das die Rüstung ganz normal weggeht.


    Kann mir wer da helfen?


    Mein Code ist so:


    public OnPlayerShootPlayer(Shooter,Target,Float:HealthLost,Float:ArmourLost)
    {
    new Float:Health,Float:Armour;
    if(spawnkill[Target] == 1 && GetPlayerTeam(Shooter) != GetPlayerTeam(Target))
    {
    if(GetPlayerTeam(Shooter) == TEAM_RED && GetPlayerTeam(Target) == TEAM_BLUE && GetPlayerWeapon(Shooter) == 0 || 1 || 2 || 3 || 4 || 5 || 6 || 7 || 8 || 9 || 10 || 11 || 12 || 13 || 14 || 15 || 16 || 17 || 18 || 19 || 20 || 21 || 22 || 23 || 24 || 25 || 26 || 27 || 28 || 29 || 30 || 31 || 32 || 33 || 34 ) HealthLost = Health-101; ArmourLost = Armour-5;
    GetPlayerArmour(Target, Armour);
    SetPlayerArmour(Target, ArmourLost+Armour);
    SetPlayerHealth(Target, HealthLost+Health);
    }
    return 1;
    }


  • wieso OnPlayerShootPlayer wenn es OnPlayerTakeDamage gibt ?

  • Falls ich dich richtig verstanden habe würde ich den Enforcer am 0 Punkt Spawnen lassen. Aber die Z Cordinate auf 2 Setzen. Dann sich hinterdas fahrzeug stellen und dan hast du die diferenz zwichen dem Fahrzeug (0.0, 0.0, 2.0) und dem Spieler z.B (1.845456, 1.5464, 2.0)


    wenn du dann den Spieler hinter demn Fahrzeugspawnen möchtest solltest du einfach



    new float:X, float:Y, float:Z;
    GetVehiclePos(vehicleid, X, Y, Z);
    SetPlayerPos(playerid, X+1.85, Y+1.55, Z+0.0);//Z könnte auch Variieren!



    Hätte aber auch mal ne frage


    Ich benutze dieses MYSQL Plugin: http://forum.sa-mp.com/showthread.php?t=56564&page=1 Allerdings die R6 Version.
    Wenn ich nun meinen Server von 0.3d auf 0.3d RC2 aufrüste schmeißt mich der Server mit der Meldung "Server closed the connection" sofort nach OnPlayerConnect raus!
    könnte das an dem Plugin liegen? Wieter Plugins habe ich testweise raus genommen nur das MYSQL Plugin ist noch drin wäre mir zuviel arbeit alles rauszubauen. Außerdem würde ich nur ungerne auf MYSQL verzichten.
    Oder gibt es iwas was sonst nicht mehr compatibel ist?


    Zitat von Kalcor

    This problem will be fixed in the next server update. Either continue using the R1 server, wait for a fix, or add SetSpawnInfo before calling SpawnPlayer.


    könnte das das Problem sein?

    Einmal editiert, zuletzt von Legö () aus folgendem Grund: Zitat hinzugefügt!

  • public SubHealthTimer()
    {
    for(new i=0;i<MAX_PLAYERS;i++)
    {
    if(IsPlayerConnected(i))
    {
    new Float:Health,save[40],pName[MAX_PLAYER_NAME];
    GetPlayerName(i,pName,sizeof pName);
    format(save,sizeof(save),"/Spieler/%d.ini",pName);
    GetPlayerHealth(i,Health);
    SetPlayerHealth(i,Health-5);
    GetPlayerHealth(i,Health); // <<
    sInfo[i][pHealth] = floatround(Health, floatround_round); // <<
    dini_FloatSet(save,"pHealth", sInfo[i][pHealth]); // <<
    }
    }
    return 1;
    }


    Ich habe dazu einen Timer erstellt der momentan diesen Public ausführen soll. Allerdings wird die Energie nicht zwischengespeichert, Lebensenergie wird jedoch abgezogen. Woran kann das liegen? Ich habe dieselbe Methode bei meinem Drivein's verwendet, dort heisst es allerdings:


    if(listitem == 1)
    {
    sInfo[playerid][pGeld] = GetPlayerMoney(playerid);
    dini_Int(save, "pGeld");
    if(sInfo[playerid][pGeld] >= 5)
    {
    new Float:Health;
    GetPlayerHealth(playerid,Health);
    GivePlayerMoney(playerid,-5);
    dini_IntSet(save,"pGeld",GetPlayerMoney(playerid));
    SetPlayerHealth(playerid,Health+50.0);
    GetPlayerHealth(playerid,Health); // <<
    sInfo[playerid][pHealth] = floatround(Health, floatround_round); //<<
    dini_FloatSet(save,"pHealth", sInfo[playerid][pHealth]); //<<
    SendClientMessage(playerid, COLOR_GREEN, "Hier, Ihr Essen, guten Appetit!");
    }
    else
    {
    SendClientMessage(playerid, COLOR_RED, "Sie haben leider nicht genug Geld dabei.");
    }
    }
    Woran kann das liegen?

    "Dem wird befohlen, der sich nicht selbst gehorchen kann" - Friedrich Nietzsche

  • Klappt das So??


    Ich habs noch nicht getestet bin mir aber ziemlich unsicher


    new ServerCars[MAX_CARS][ServerVeh];
    for(new i;i<MAX_CARS;i++)
    {
    ServerCars[i][carID] = Fcar_Get(i,"carID");
    ServerCars[i][carX] = Fcar_Get(i,"PosX");
    ServerCars[i][carY] = Fcar_Get(i,"PosY");
    ServerCars[i][carZ] = Fcar_Get(i,"PosZ");
    ServerCars[i][carA] = Fcar_Get(i,"PosA");
    ServerCars[i][Color1] = Fcar_Get(i,"C1");
    ServerCars[i][Color2] = Fcar_Get(i,"C2");
    ServerCars[i][Numplate] = Fcar_Get(i,"Numplate");
    CreateVehicle(ServerCars[i][carID],ServerCars[i][carX],ServerCars[i][carY],ServerCars[i][carZ],ServerCars[i][carA],ServerCars[i][Color1],ServerCars[i][Color2],-1);
    }

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