[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
  • Ungetested:



    public OnPlayerCommandText(playerid, cmdtext[])
    {
    if(!strcmp("/eventpickup", cmdtext))
    {
    if(IsPlayerAdmin(playerid)) //Deine Admin Variable
    {
    new Float:x, Float:y, Float:z;
    GetPlayerPos(playerid, x, y, z);
    HealPickup = CreateDynamicPickup(1240, 1, x, y, z, -1,-1,-1, 100.0);
    SendClientMessage(playerid, -1, "Eventpickup {00FF00}erfolgreich{FFFFFF} erstellt");
    return 1;
    }



    if(!strcmp("/eventpickup", cmdtext))
    {
    if(IsPlayerAdmin(playerid)) //Deine Admin Variable
    {
    DestroyDynamicPickup(HealPickup);
    SendClientMessage(playerid, -1, "Eventpickup {00FF00}erfolgreich {FFFFFF}gelöscht.");
    return 1;
    }
    }



    }
    return 0;
    }


    Mit freundlichen Grüßen
    JustMe.77 8)

  • Ungetested:


    public OnPlayerCommandText(playerid, cmdtext[]){ if(!strcmp("/eventpickup", cmdtext)) { if(IsPlayerAdmin(playerid)) //Deine Admin Variable { new Float:x, Float:y, Float:z; GetPlayerPos(playerid, x, y, z); HealPickup = CreateDynamicPickup(1240, 1, x, y, z, -1,-1,-1, 100.0); SendClientMessage(playerid, -1, "Eventpickup {00FF00}erfolgreich{FFFFFF} erstellt"); return 1; } if(!strcmp("/eventpickup", cmdtext)) { if(IsPlayerAdmin(playerid)) //Deine Admin Variable { DestroyDynamicPickup(HealPickup); SendClientMessage(playerid, -1, "Eventpickup {00FF00}erfolgreich {FFFFFF}gelöscht."); return 1; } } } return 0;}

    D:\script\NLR\gamemodes\editbyalex.pwn(30079) : error 029: invalid expression, assumed zero
    D:\script\NLR\gamemodes\editbyalex.pwn(30079) : error 029: invalid expression, assumed zero
    D:\script\NLR\gamemodes\editbyalex.pwn(30083) : error 001: expected token: ")", but found "["
    D:\script\NLR\gamemodes\editbyalex.pwn(30083) : error 029: invalid expression, assumed zero
    D:\script\NLR\gamemodes\editbyalex.pwn(30083) : warning 215: expression has no effect
    D:\script\NLR\gamemodes\editbyalex.pwn(30083) : error 001: expected token: ";", but found "]

  • Nach dem ersten Befehl hast du die letze Klammer vergessen. ^^

  • Nach dem ersten Befehl hast du die letze Klammer vergessen. ^^

    So hab ich es jetzt. Ist das mit der Variable so richtig?^^




    ##edit
    30079) : error 029: invalid expression, assumed zero
    D:\script\NLR\gamemodes\editbyalex.pwn(30079) : error 029: invalid expression, assumed zero
    D:\script\NLR\gamemodes\editbyalex.pwn(30083) : error 001: expected token: ")", but found "["
    D:\script\NLR\gamemodes\editbyalex.pwn(30083) : error 029: invalid expression, assumed zero
    D:\script\NLR\gamemodes\editbyalex.pwn(30083) : warning 215: expression has no effect
    D:\script\NLR\gamemodes\editbyalex.pwn(30083) : error 001: expected token: ";", but found "]"
    D:\script\NLR\gamemodes\editbyalex.pwn(30083) : fatal error 107: too many error messages on one line
    Meine Erros. Alle im bereich des pickups
    @[LnD]JustMe.77

    Einmal editiert, zuletzt von Carl Ohaia ()

  • Nabend,
    ich wollte einmal fragen ob man es Script technisch oder von der Datenbank aus folgendes Problem lösen:
    Wenn ich bei meiner MyS Datenbank Spieler erstelle (ID ist Auto Increment) und dann z.B. ID 1-5 habe aber dann ID 5 lösche und einen neuen erstellen fängt er erst wieder bei 6 an und über springt die 5 einfach.
    Kann man dies umgehen?


    Mit freundlichen Grüßen
    Pytroxis
    ~Handy

  • In dem du auto incrwment weg lässt und die nächst freie id deiner datenbank abfragst


  • public OnPlayerTakeDamage(playerid, issuerid, Float: amount, weaponid, bodypart)
    {
    return 1;
    }
    // Falls du noch das passende Gegenstück brauchst:
    public OnPlayerGiveDamage(playerid, damagedid, Float: amount, weaponid, bodypart)
    {
    return 1;
    }

    RTL - Das N steht für Niveau!
    MfG,
    StreetS


    Jegliche Freundesanfragen, die für mich keinen Sinn ergeben, werden professionell Ignoriert. (Gleiche mit Skype!)
    Wer es nicht kapiert wird in Breadfish & Skype blockiert.


    - Stolzer PAWN Scripter der Klasse Beherrscht

  • Gibts nen Weg wie man extra logs machen kann? Kb dass alles immer im ServerLog gespeichert wird, z.B. Admin-Log, dort werden alle adminbefehle gelistet wie ausgeführt wurden

    SA:MP in 2020?

  • stock Log(log[],text[])
    {
    new string[1000],File:hFile;
    if(fexist(log))
    {
    hFile = fopen(log,io_append);
    }
    else hFile = fopen(log,io_write);
    gettime(stunde,minute,sekunde);
    getdate(jahr,monat,tag);
    format(string,sizeof(string),"%02d/%02d/%04d-%02d:%02d:%02d | %s\r\n",tag,monat,jahr,stunde,minute,sekunde,text);
    fwrite(hFile,string);
    fclose(hFile);
    return true;
    }


    Zum "Loggen" (Das schreibst du dann immer wo du was geloggt haben willst)


    new string[256];
    format(string,sizeof(string),"Beispiel bla bla bla mit Platzhaltern || Admin %s hat %s %i Dollar gegeben",SpielerName(playerid),SpielerName(pID),Geld[playerid]);
    Log("/Adminlog/Givemoney.txt",string);


    Zum Beispiel so :)

  • Wie mache ich es das der Besitzer des Fahrzeuges eine Nachricht bekommt wenn das Fahrzeug kaputt geht?

    wenn der Zustand des Autos auf 0 sinkt setzt du eine Variable z.B carInfo[vehicleID][c_kaputt] = 1;


    dann fragste ab ob dies auf 1 ist wenn ja sendest du dem besitzer ---> carInfo[vehicleID][c_besitzer] fallst du nur den Namen abspeicherst dann glaub ich so
    for(new i = 0; i < MAX_PLAYERS; i++;)
    {
    if(carInfo[vehicleID][c_besitzer] != SpielerName(i))continue;
    SendClientMessage(i,ORANGE,"Dein Auto ist Kaputt.");
    }


    das sind jetzt nur Variablen von mit und das SpielerName ist ein Stock was du durch das Googeln finden kannst.


    ich hoffe ich konnte dir die logik geben :)

  • Hey, habe ein Problem beim Kombinieren von Strings:
    Und zwar habe ich keine Ahnung wie genau ich das mache, da mein MySQL-Format viel zu lang ist, brauche ich jetzt mehrer Strings, aber einfach noch einen neuen String machen und den dann speichern klappt nicht, der wird einfach ausgelassen..



    MySQL:


    Code
    [01:08:54] [DEBUG] mysql_format - connection: 1, len: 2048, format: "UPDATE userdata SET level = '%d', money = '%d', kills = '%d', deaths = '%d', skin = '%d', adminlevel = '%d', fraktion = '%d', pa..."
    [01:08:54] [DEBUG] mysql_pquery - connection: 1, query: "UPDATE userdata SET level = '1', money = '45900', kills = '54', ", callback: "(null)", format: "(null)"
    [01:08:54] [DEBUG] CMySQLQuery::Execute[] - starting query execution
    [01:08:54] [DEBUG] CMySQLQuery::Execute[] - query was successfully executed within 40.499 milliseconds
    [01:08:54] [DEBUG] CMySQLQuery::Execute[] - no callback specified, skipping result saving

    SA:MP in 2020?

  • Hey,
    Ich wollte mal fragen wie ich mein Chechpoit eine Id geben kann damit ich unter OnPlayerEnterCheckPoint abfragen kann es es die ID wirklich ist damit er z.b nicht einfach im Job ein anderen CP vom Navi oder so nimmt.
    Also soll es so sein z.b


    Jobcp[playerid] = SetPlayerCheckPoint.....


    OnPlayerEnterCheckPoint(playerid,checkpointid)
    {
    If(checkpointid == Jobcp[playerid])
    {
    }
    }

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