[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

  • stock mysql_DeleteHaus(hausid)
    {
    new query[128];
    format(query, sizeof(query), "DELETE FROM houses WHERE id = %i", hausid);
    mysql_query(query, -1, -1, MySQLHandle);
    }

    Delphi - Check
    PHP - Check
    PAWN - Check
    MySQL - Check


    Bissel rumnerden :D

  • Ich wollte mir einen Gametext anzeigen lassen, sobald man in der nähe folgender Koordinaten ist. Passiert allerdings gerade gar nichts. Liegt das am Public?


    public Tickets(playerid)
    {
    if(IsPlayerInRangeOfPoint(playerid, 1.0, 1436.5356,2656.1499,11.3926) || (playerid,1.0,2840.6609,1276.1277,11.3906) || (playerid,1.0,2840.5479,1304.0836,11.3906) || (playerid,1.0,2856.7517,1314.5154,11.3906) || (playerid,1.0,2857.1738,1266.7858,11.3906))
    {
    GameTextForPlayer(playerid, "~w~/~r~ticketkaufen", 3000, 4);
    }
    return 1;
    }

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

  • Glaube das muss so:
    public Tickets(playerid)
    {
    if(IsPlayerInRangeOfPoint(playerid, 1.0, 1436.5356,2656.1499,11.3926) || IsPlayerInRangeOfPoint(playerid,1.0,2840.6609,1276.1277,11.3906) || IsPlayerInRangeOfPoint(playerid,1.0,2840.5479,1304.0836,11.3906) || IsPlayerInRangeOfPoint(playerid,1.0,2856.7517,1314.5154,11.3906) || IsPlayerInRangeOfPoint(playerid,1.0,2857.1738,1266.7858,11.3906))
    {
    GameTextForPlayer(playerid, "~w~/~r~ticketkaufen", 3000, 4);
    }
    return 1;
    }


    Aber dir ist doch klar, dass du das Public auf irgendwie aufrufen musst? Also ständig per Timer:
    public OnPlayerConnect(playerid)
    {
    SetTimer("Tickets", 1000, 1);
    }

  • OMG Ben was tust du da?
    Wieder eine funktion mit Parameter aufrufen ohne ein argument zu übergeben?
    Das kann ich funktionieren X(


    Vergiss das was Ben von Timen gesagt/geschrieben hat und nutze lieber das untenstehende


    OnPlayerSpawn(playerid)
    {
    SetTimerEx("Tickets", 1000, 1,"i",playerid);
    retrun 1;
    }
    Immer wenn man eine Funktion mit einem oder mehreren Parametern der Timer aufruft dann immer mit SetTimerEx arbeiten
    Vergiss nicht den Timer wieder zu Killen/Stoppen sonst hast du noch Timer von Spielern laufen, die garnicht mehr da sind.

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

    Margarete Stokowski

  • @ nickman:
    Versuch es mal so:

    new pIP[16],strste,step,blocks[4][4];
    GetPlayerIp(playerid,pIP,16);
    for(new strs=0;strs!=16;strs++)
    if(pIP[strs]=='.'||!pIP[strs]) {
    strmid(blocks[step],pIP,strste,strs);
    strste=strs+1;
    step++;
    }

    Hier werden die "IP Blöcke" jeweils in dem Array blocks gespeichert.
    Ich glaube ich poste das gleich nochmal unter nützliche Codeschnipsel, kann vielleicht ja noch der eine oder andere brauchen..


    PS: Sehr kreative Signatur, die du hast. Leute, lasst euch doch mal was eigenes einfallen..

    PAWNit gratis nutzen?
    Geschenkcode: 2017VQXPKB8V3KA

    Hier könnte Ihre Werbung stehen.

  • Warum so kompliziert?
    einfach Abfragen ob der Spieler an der Position ist unter (OnPlayerPickupPickup) viel einfach
    so brauch mann den ganzen Timer mist etc net was ich unötig finde.

  • brauche hilfe bei folgendem /tie befehl


    ocmd:tie(playerid, params[])
    {
    if(IsPlayerInAnyVehicle(playerid));
    {
    if(GetPlayerVehicleSeat(playerid)==0);
    {
    if(isPlayerInFrakt(playerid,GetPVarInt(playerid,"Fraktion")==2| |12;));
    {
    if(HasPlayerRank(playerid,1));
    {
    if(sscanf(params,"u",pID,))return SendClientMessage(playerid,gelb,"/tie [playerid]");
    TogglePlayerControllable(pID,0);
    format(string,sizeof(string),"Du hast %s gefesselt.",SpielerName(pID));
    SendClientMessage(playerid,gelb,string);
    format(string,sizeof(string),"%s hat dich gefesselt.",SpielerName(playerid));
    SendClientMessage(pID,gelb,string);
    }
    }
    }
    return 1;
    }
    }


    Fehlermeldung:


    Code
    G:\SAMP\gamemodes\Tutorial.pwn(822) : error 036: empty statement
    G:\SAMP\gamemodes\Tutorial.pwn(824) : error 036: empty statement
    G:\SAMP\gamemodes\Tutorial.pwn(826) : error 029: invalid expression, assumed zero
    G:\SAMP\gamemodes\Tutorial.pwn(826) : warning 215: expression has no effect
    G:\SAMP\gamemodes\Tutorial.pwn(826) : error 029: invalid expression, assumed zero
    G:\SAMP\gamemodes\Tutorial.pwn(826) : error 029: invalid expression, assumed zero
    G:\SAMP\gamemodes\Tutorial.pwn(826) : fatal error 107: too many error messages on one line


    Danke im Voraus :thumbup:


    mfg


    Mr. EMU

  • Semikolon entfernt aber immer noch diese errors


    Code
    G:\SAMP\gamemodes\Tutorial.pwn(826) : error 029: invalid expression, assumed zero
    G:\SAMP\gamemodes\Tutorial.pwn(826) : warning 215: expression has no effect
    G:\SAMP\gamemodes\Tutorial.pwn(826) : error 001: expected token: ";", but found ")"
    G:\SAMP\gamemodes\Tutorial.pwn(826) : error 029: invalid expression, assumed zero
    G:\SAMP\gamemodes\Tutorial.pwn(826) : fatal error 107: too many error messages on one line


    in dieser zeile:


    if(isPlayerInFrakt(playerid,GetPVarInt(playerid,"Fraktion")==2| |12))



    /Edit hab noch nen fehler gefunden

  • Hier drinne hast du es ja auch noch gelassen...


    if(isPlayerInFrakt(playerid,GetPVarInt(playerid,"Fraktion") ==2 || isPlayerInFrakt(playerid,GetPVarInt(playerid,"Fraktion") == 12))

  • Teste trotzdem mal meins, da ich am Ende noch etwas mehr verändert habe.

  • Es wäre trotzdem nochmal gut wenn du uns sagst was du behoben hast, dadurch können andere Leute die nicht so gut Scripten können diesen Fehler beheben.