[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
  • @Kaliber @Jeffry


    Hab da eine Frage:


    Was ist der Unterschied, wenn ich nun Funktionen selber schreibe.


    Beispiel:


    GetName - returnt den Spieler Namen.


    GetName(playerid){ [Code].. }
    stock GetName(playerid){ [Code].. }
    forward & public GetName(playerid){ [Code].. }


    Was ist bei den 3 Möglichkeiten der Unterschied?
    Public wüsste ich, dass ich bspw. die Funktion in einem Timer o.Ä aufrufen kann.
    Aber der Rest bzw. die größte Frage wieso eine Funktion ohne stock, was steckt dahinter? :)

  • @hav0K~


    Hey! Habe auf dem Forum von SA-MP eine kleine Erklärung gefunden => Klick mich!
    Ich hoffe ich konnte dir damit helfen.


    Mit freundlichen Grüßen
    Paymon

  • Füg zwischen Zeile 21 und 22 eine { hinzu.

  • Hey,


    Ich wollte fragen wie ich /free [SpielerName/ID] [Kaution] erstelle
    undzwar


    Der Anwalt kann einen Spieler/free [SpielerName/ID] [Kaution] einen Spieler aus dem Knast holen.
    -> Der Spieler muss /accept "Kaution" eingeben wie mache ich das -> Den Spieler soll das Geld von der Hand abgezogen werden aber der Anwalt verdient dabei nicht wie mache ich das?


    @Jeffry
    @Douq



    wäre sehr nicht wen ihr mir helfen könntet!

  • Einfach 2 Spieler Variable erstellen.
    Eine für die ID andere den Betrag.
    Diese bei OnPlayerConnect auf -1 setzen.


    Bei den Kaution Befehl setzt du dann bei dem ZielSpieler den Wert der Variable auf die ID vom Absender also playerid.


    Und setzt den Wert beim Ziel von Betrag auf die Höhe was es halt kostet.


    Dann machst du ein Accept Befehl und fragst ab ob von dem Auszuführenden die Variable mit der ID nicht auf -1 steht
    ...


    Der Rest sollte dann eigentlich klar sein.
    Die ID von dem Anwalt steht ja in der Variable genauso der Betrag.


    Am Ende halt nur wieder alles auf -1 setzen.
    --------------
    Beispiel:

    new KautionAbsender[Max_Players];
    new Float:KautionBetrag[Max_Players];



    OnPlayerConnect(playerid)
    {
    KautionAbsender[playerid] = -1;
    Kaution....
    }


    Befehl_Free...
    {
    ....
    KautionAbsender[ziel] = playerid;
    KautionBetrag[ziel] = wert;
    ....
    }



    Befehl_accept
    {
    if(KautionAbsender[playerid] != -1)
    {
    ....
    Spieler Frei....
    GivePlayerMoney(KautionAbsender[playerid],KautionBetrag[playerid]);
    ....
    }
    }



    Es handelt sich um ein grobes Beispiel.
    Bin am Handy da ist das nicht so einfach.

    „Auge um Auge - und die ganze Welt wird blind sein.“
    - Mahatma Gandhi

  • ich bin gerade am krümmeln wie ich das zusammen basteln soll komme nicht drauf :D.

  • Hey ich habe das Problem dass mein Mysql Plugin nicht richtig geladen werden kann ?
    Es kommt immer
    Failed (libmysqlclient.so.18: cannot open shared object file: No such file or directory)


    Auf samp4you habe ich es genauso da Klappt es aber auf HK-Hosting nicht ?

  • KP :D


    Aufjedenfall muss libmysqlclient16 Installiert sein.
    Würde normalerweise über apt installiert werden.


    Bash
    apt-get install ia32-libs // Bei 64 Bit
    apt-get update
    apt-get install libmysqlclient16

    Gibt hier aber glaube ich auch genug Threads dazu.


    Siehe zb Failed (libmysqlclient_r.so.16: cannot open shared object file: No such file or directory)

    seekrass approved
    4x vom Discord geflogen


    shoxinat0r 4
    dennismitzwein 2
    Trooper[Y] 2
    maddin 1
    Unbekannter Discord Kick 2

  • stock fVehicleTuning(fV)
    {
    if(IsValidVehicle(fVehicle[fV][vehID]))
    {
    GetVehicleParamsEx(fVehicle[fV][vehID], engine, lights, alarm, doors, bonnet, boot, objective);
    SetVehicleParamsEx(fVehicle[fV][vehID], VEHICLE_PARAMS_OFF, lights, alarm, doors, bonnet, boot, objective);
    if(Vehicle[fVehicle[fV][vehID]][vehMotor])KillTimer(Vehicle[fVehicle[fV][vehID]][VehicleTimer]);
    Vehicle[fVehicle[fV][vehID]][vehMotor] = false;
    Vehicle[fVehicle[fV][vehID]][vehLicht] = false;
    Vehicle[fVehicle[fV][vehID]][vehHaube] = false;
    Vehicle[fVehicle[fV][vehID]][vehKRaum] = false;
    new nPlate[32];
    new ran = random(999) + 1;
    format(nPlate, sizeof(nPlate), "%s %d", GetFraktionNumberPlate(fVehicle[fV][vehFraktion]), ran);
    SetVehicleNumberPlate(fVehicle[fV][vehID], nPlate);
    LinkVehicleToInterior(fVehicle[fV][vehID], fVehicle[fV][vehInterior]);
    SetVehicleVirtualWorld(fVehicle[fV][vehID], fVehicle[fV][vehWorld]);
    if(fVehicle[fV][vehPaintjob] >= 0)ChangeVehiclePaintjob(fVehicle[fV][vehID], fVehicle[fV][vehPaintjob]);
    if(fVehicle[fV][vehColor1] >= 0 || fVehicle[fV][vehColor2] >= 0)ChangeVehicleColor(fVehicle[fV][vehID], fVehicle[fV][vehColor1], fVehicle[fV][vehColor2]);
    if(fVehicle[fV][vehSpoiler] >= 1000)AddVehicleComponent(fVehicle[fV][vehID], fVehicle[fV][vehSpoiler]);
    if(fVehicle[fV][vehHood] >= 1000)AddVehicleComponent(fVehicle[fV][vehID], fVehicle[fV][vehHood]);
    if(fVehicle[fV][vehRoof] >= 1000)AddVehicleComponent(fVehicle[fV][vehID], fVehicle[fV][vehRoof]);
    if(fVehicle[fV][vehSideskirt] >= 1000)AddVehicleComponent(fVehicle[fV][vehID], fVehicle[fV][vehSideskirt]);
    if(fVehicle[fV][vehLamps] >= 1000)AddVehicleComponent(fVehicle[fV][vehID], fVehicle[fV][vehLamps]);
    if(fVehicle[fV][vehNitro] >= 1000)AddVehicleComponent(fVehicle[fV][vehID], fVehicle[fV][vehNitro]);
    if(fVehicle[fV][vehExhaust] >= 1000)AddVehicleComponent(fVehicle[fV][vehID], fVehicle[fV][vehExhaust]);
    if(fVehicle[fV][vehWheels] >= 1000)AddVehicleComponent(fVehicle[fV][vehID], fVehicle[fV][vehWheels]);
    if(fVehicle[fV][vehStereo] >= 1000)AddVehicleComponent(fVehicle[fV][vehID], fVehicle[fV][vehStereo]);
    if(fVehicle[fV][vehHydraulics] >= 1000)AddVehicleComponent(fVehicle[fV][vehID], fVehicle[fV][vehHydraulics]);
    if(fVehicle[fV][vehFrontBumper] >= 1000)AddVehicleComponent(fVehicle[fV][vehID], fVehicle[fV][vehFrontBumper]);
    if(fVehicle[fV][vehRearBumper] >= 1000)AddVehicleComponent(fVehicle[fV][vehID], fVehicle[fV][vehRearBumper]);
    if(fVehicle[fV][vehVentRight] >= 1000)AddVehicleComponent(fVehicle[fV][vehID], fVehicle[fV][vehVentRight]);
    if(fVehicle[fV][vehVentLeft] >= 1000)AddVehicleComponent(fVehicle[fV][vehID], fVehicle[fV][vehVentLeft]);
    switch(fVehicle[fV][vehNeonID])
    {
    case 1: // Blau
    {
    fVehicle[fV][vehNeon1] = CreateDynamicObject(18648, 0, 0, 0, 0, 0, 0, 0);
    fVehicle[fV][vehNeon2] = CreateDynamicObject(18648, 0, 0, 0, 0, 0, 0, 0);
    AttachDynamicObjectToVehicle(fVehicle[fV][vehNeon1], fVehicle[fV][vehID], -0.8, 0.0, -0.70, 0.0, 0.0, 0.0);
    AttachDynamicObjectToVehicle(fVehicle[fV][vehNeon2], fVehicle[fV][vehID], 0.8, 0.0, -0.70, 0.0, 0.0, 0.0);
    }
    case 2: // Grün
    {
    fVehicle[fV][vehNeon1] = CreateDynamicObject(18649, 0, 0, 0, 0, 0, 0, 0);
    fVehicle[fV][vehNeon2] = CreateDynamicObject(18649, 0, 0, 0, 0, 0, 0, 0);
    AttachDynamicObjectToVehicle(fVehicle[fV][vehNeon1], fVehicle[fV][vehID], -0.8, 0.0, -0.70, 0.0, 0.0, 0.0);
    AttachDynamicObjectToVehicle(fVehicle[fV][vehNeon2], fVehicle[fV][vehID], 0.8, 0.0, -0.70, 0.0, 0.0, 0.0);
    }
    case 3: // Weiß
    {
    fVehicle[fV][vehNeon1] = CreateDynamicObject(18652, 0, 0, 0, 0, 0, 0, 0);
    fVehicle[fV][vehNeon2] = CreateDynamicObject(18652, 0, 0, 0, 0, 0, 0, 0);
    AttachDynamicObjectToVehicle(fVehicle[fV][vehNeon1], fVehicle[fV][vehID], -0.8, 0.0, -0.70, 0.0, 0.0, 0.0);
    AttachDynamicObjectToVehicle(fVehicle[fV][vehNeon2], fVehicle[fV][vehID], 0.8, 0.0, -0.70, 0.0, 0.0, 0.0);
    }
    case 4: // Pink
    {
    fVehicle[fV][vehNeon1] = CreateDynamicObject(18651, 0, 0, 0, 0, 0, 0, 0);
    fVehicle[fV][vehNeon2] = CreateDynamicObject(18651, 0, 0, 0, 0, 0, 0, 0);
    AttachDynamicObjectToVehicle(fVehicle[fV][vehNeon1], fVehicle[fV][vehID], -0.8, 0.0, -0.70, 0.0, 0.0, 0.0);
    AttachDynamicObjectToVehicle(fVehicle[fV][vehNeon2], fVehicle[fV][vehID], 0.8, 0.0, -0.70, 0.0, 0.0, 0.0);
    }
    case 5: // Gelb
    {
    fVehicle[fV][vehNeon1] = CreateDynamicObject(18650, 0, 0, 0, 0, 0, 0, 0);
    fVehicle[fV][vehNeon2] = CreateDynamicObject(18650, 0, 0, 0, 0, 0, 0, 0);
    AttachDynamicObjectToVehicle(fVehicle[fV][vehNeon1], fVehicle[fV][vehID], -0.8, 0.0, -0.70, 0.0, 0.0, 0.0);
    AttachDynamicObjectToVehicle(fVehicle[fV][vehNeon2], fVehicle[fV][vehID], 0.8, 0.0, -0.70, 0.0, 0.0, 0.0);
    }
    case 6: // Rot
    {
    fVehicle[fV][vehNeon1] = CreateDynamicObject(18647, 0, 0, 0, 0, 0, 0, 0);
    fVehicle[fV][vehNeon2] = CreateDynamicObject(18647, 0, 0, 0, 0, 0, 0, 0);
    AttachDynamicObjectToVehicle(fVehicle[fV][vehNeon1], fVehicle[fV][vehID], -0.8, 0.0, -0.70, 0.0, 0.0, 0.0);
    AttachDynamicObjectToVehicle(fVehicle[fV][vehNeon2], fVehicle[fV][vehID], 0.8, 0.0, -0.70, 0.0, 0.0, 0.0);
    }
    }
    if(fVehicle[fV][vehFraktion] == 3)
    {
    if(GetVehicleModel(fVehicle[fV][vehID]) == 560){
    if(fVehicle[fV][vehFraktion] == 3){
    fVehicle[fV][vehSiren1] = CreateDynamicObject(19420, 0, 0, 0, 0, 0, 0, 0);
    AttachDynamicObjectToVehicle(fVehicle[fV][vehSiren1], fVehicle[fV][vehID], 0.000000, 0.000000, 0.829999, 0.000000, 0.000000, 0.000000);
    }
    }
    else if(fVehicle[fV][vehFraktion] == 6){
    if(GetVehicleModel(fVehicle[fV][vehID]) == 560){
    fVehicle[fV][vehSiren1] = CreateDynamicObject(19420, 0, 0, 0, 0, 0, 0, 0);
    AttachDynamicObjectToVehicle(fVehicle[fV][vehSiren1], fVehicle[fV][vehID], 0.000000, 0.000000, 0.829999, 0.000000, 0.000000, 0.000000);
    }
    }
    else if(fVehicle[fV][vehFraktion] == 1){
    if(GetVehicleModel(fVehicle[fV][vehID]) == 560){
    fVehicle[fV][vehSiren1] = CreateDynamicObject(19620, 0, 0, 0, 0, 0, 0, 0);
    fVehicle[fV][vehSiren2] = CreateDynamicObject(19797, 0, 0, 0, 0, 0, 0, 0);
    fVehicle[fV][vehSiren3] = CreateDynamicObject(19797, 0, 0, 0, 0, 0, 0, 0);
    fVehicle[fV][vehSiren4] = CreateDynamicObject(19797, 0, 0, 0, 0, 0, 0, 0);
    fVehicle[fV][vehSiren5] = CreateDynamicObject(19797, 0, 0, 0, 0, 0, 0, 0);
    AttachDynamicObjectToVehicle(fVehicle[fV][vehSiren1], fVehicle[fV][vehID], -0.00160, 0.05440, 0.83080, 0.00000, 0.00000, 0.00000);
    AttachDynamicObjectToVehicle(fVehicle[fV][vehSiren2], fVehicle[fV][vehID], 0.73560, 2.59780, -0.13790, 0.00000, 0.00000, 178.00000);
    AttachDynamicObjectToVehicle(fVehicle[fV][vehSiren3], fVehicle[fV][vehID], 0.73560, 2.59780, -0.24890, 0.00000, 0.00000, 178.00000);
    AttachDynamicObjectToVehicle(fVehicle[fV][vehSiren4], fVehicle[fV][vehID], -0.72440, 2.59780, -0.13990, 4.00000, 0.00000, 185.00000);
    AttachDynamicObjectToVehicle(fVehicle[fV][vehSiren5], fVehicle[fV][vehID], -0.72440, 2.59780, -0.25090, 4.00000, 0.00000, 185.00000);
    }
    }
    }
    SetVehiclePos(fVehicle[fV][vehID], fVehicle[fV][vehPosX], fVehicle[fV][vehPosY], fVehicle[fV][vehPosZ]);
    SetTimerEx("SetVehicleZAngle", 5000, 0, "dd", fVehicle[fV][vehID], fVehicle[fV][vehPosA]);
    }
    return 1;
    }



    Hey, ich habe eine frage bei Fraktion ID 3 Wird die Sirene geladen so,
    erstelle ich für die Fraktion ID 6 einen Sultan wird die Sirene nicht drauf gepackt warum?

  • Okay..naja hier paar Beispiel Codes..


    ast2ufdyxkb1.png


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


  • C:\Users\Medion\Desktop\Daten Medion\GTA SA Datein\GTA Scripts\German\pawno\include\nex-ac.inc(2413) : warning 201: redefinition of constant/macro (symbol "SetVehicleHealth")
    C:\Users\Medion\Desktop\Daten Medion\GTA SA Datein\GTA Scripts\German\pawno\include\nex-ac.inc(2433) : warning 201: redefinition of constant/macro (symbol "RepairVehicle")



    Hey,
    habe das Anti Cheat System von
    http://forum.sa-mp.com/showthread.php?t=579963
    als include ein gemacht jetzt zeit er mir die fehler an?


    im include wie kann ich das fixxen?

  • error 035: argument type mismatch (argument 2)
    sorry ich steh heute etwas aufm "schlauch"
    könnt ihr mir da mal bitte weiterhelfen?


    CMD:gov(playerid, params[]){ if(!IsLoggedIn(playerid))return 1; new entry[96], string[128]; if(!(Spieler[playerid][pFraktion] == 1 || Spieler[playerid][pFraktion] == 2 || Spieler[playerid][pFraktion] == 3 || Spieler[playerid][pFraktion] == 4))return SendClientMessage(playerid, COLOR_GREY, "Du bist kein Leader!"); if(!(Spieler[playerid][pFraktion] == 6 || Spieler[playerid][pFraktion] == 8 || Spieler[playerid][pFraktion] == 9))return SendClientMessage(playerid, COLOR_GREY, "Du bist kein Leader!"); if(Spieler[playerid][pRank] < RANG_COLEADER)return SendClientMessage(playerid, COLOR_GREY, "Für diesen Befehl musst du mindestens den Co-Leader Rang besitzen."); if(sscanf(params, "s[96]", entry))return SendClientMessage(playerid, COLOR_GREY, "Benutze /gov [Nachricht]");[color=#FF0000][b] format(string, sizeof(string), "|___________ Durchsage: %s ___________|", GetRankName(Spieler[playerid][pFraktion], entry); [/b][/color]format(string, sizeof(string), "%s %s: %s", GetRankName(Spieler[playerid][pFraktion], Spieler[playerid][pRank]), GetName(playerid), entry); SendClientMessageToAll(COLOR_DARKBLUE, string); return 1;}



    error 035: argument type mismatch (argument 2)
    error 001: expected token: ",", but found ";"

    Einmal editiert, zuletzt von maax97 ()

  • Das sind nur Warnings das es diese Makros schon gibt. Kannst die beiden Makros im include ausklammern wenn du unbedingt willst.


    Markier bitte die Zeilen...

    seekrass approved
    4x vom Discord geflogen


    shoxinat0r 4
    dennismitzwein 2
    Trooper[Y] 2
    maddin 1
    Unbekannter Discord Kick 2
    • CMD:gov(playerid, params[])
    • {
    • if(!IsLoggedIn(playerid))return 1;
    • new entry[96], string[128];
    • if(!Spieler[playerid][pFraktion] == 1 || Spieler[playerid][pFraktion] == 2 || Spieler[playerid][pFraktion] == 3 || Spieler[playerid][pFraktion] == 4))return SendClientMessage(playerid, COLOR_GREY, "Du bist kein Leader!");
    • if(!Spieler[playerid][pFraktion] == 6 || Spieler[playerid][pFraktion] == 8 || Spieler[playerid][pFraktion] == 9))return SendClientMessage(playerid, COLOR_GREY, "Du bist kein Leader!");
    • if(Spieler[playerid][pRank] < RANG_COLEADER)return SendClientMessage(playerid, COLOR_GREY, "Für diesen Befehl musst du mindestens den Co-Leader Rang besitzen.");
    • if(sscanf(params, "s[96]", entry))return SendClientMessage(playerid, COLOR_GREY, "Benutze /gov [Nachricht]");
    • format(string, sizeof(string), "|___________ Durchsage: %s ___________|", GetRankName(Spieler[playerid][pFraktion], entry);
    • format(string, sizeof(string), "%s %s: %s", GetRankName(Spieler[playerid][pFraktion], Spieler[playerid][pRank]), GetName(playerid), entry);
    • SendClientMessageToAll(COLOR_DARKBLUE, string);
    • return 1;
    • }


    versuchs mal jetzt

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