Beiträge von xNobodyx

    Also, wenn du direkt nach dem Tod den Friedhof siehst, sollte das ganze in OnPlayerDeath sein, oder evt OnPlayerSpawn.
    Kann natürlich auch in einer anderen public stecken, aber die müsste dann trotzdem mit OnPlayerDeath/OnPlayerSpawn in Verbindung stehen.


    Sonst kannst du ja einfach nach "SetPlayerCameraPos" suchen, so viele wirst du wohl eh nicht im Skript haben.
    Bzw. solltest du an der Umgebung erkennen, ob es diese Funktion sein kann.

    Du hast
    if(strlen(tmp)) return SendClientMessage(playerid, GRAU, "/Hotelerstellen [Preis] [Interior]");
    es gehört aber
    if(!strlen(tmp)) return SendClientMessage(playerid, GRAU, "/Hotelerstellen [Preis] [Interior]");


    Kann passieren ;)

    error 017: undefined symbol "SupporterAutoErstellen" bedeutet, dass du nicht angegeben hast, was SupporterAutoErstellen sein soll.
    Ebenso "carid".


    Wenn du nicht zurecht kommst, kopierst du am besten die entsprechende public hier herein(sofern diese nicht zu groß ist), oder zumindest die Skriptstelle, die das Problem macht.

    Die Koordinaten für die Kamera, die auf den Friedhof schaut, müssen ja eh im Skript stehen.
    Also du musst einfach per /save [name] im Spiel die Koordinaten von der Position beim Krankenhaus speichern, wo du die Kamera plazieren willst.
    Danach machst du das noch bei einem Punkt, auf den die Kamera schauen soll.
    Die Koordinaten werden in "C:\Dokumente und Einstellungen\"Username"\Eigene Dateien\GTA San Andreas User Files\SAMP\savepositions.txt" gespeichert.
    Diese Koordinaten musst du dann nur noch in das Skript einfügen.

    Sofern ich dich richtig verstanden habe, musst du die beiden Skriptteile - logischwer Weise - ein Verbindung miteinander bringen.
    Ich empfehle dir, dass du alle Abfragen etc. in FRAC_OnDialogResponse abwickelst, so hast du alles kompakt zusammen.


    Also in OnDialogResponse:
    if(dialogid == DIALOG_FBUYCAR)
    {
    FRAC_OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]);
    return 1;
    }


    Darauf hin kannst du alles in FRAC_OnDialogResponse abwickeln.
    Somit kannst du die Abfrage "dialogid == DIALOG_FACTION_CAR_BUY" löschen, da diese public eh nur aufgerufen wird, wenn es sich um den Dialog DIALOG_FBUYCAR handelt.
    Vergiss jedoch nicht, dass du dort halt noch die Zeilen von (listitem == 0){...} und if(listitem == 1){...} ebenfalls in die FRAC_OnDialogResponse packen musst.

    Ist jetzt sinnlos das zu Posten weil man hierbei eh keine hilfe kriegt aber trotzdem...


    Entweder du verwehrst Hilfe, oder du lässt dir helfen.
    Da gibt's kein Mittelding....


    Ohne uns zu sagen, welche Zeilen die Error's rauswerfen, kann man kaum helfen(sofern nicht schon gelöst).


    Ich frage mich allerdings, wie du FRAC_OnDialogResponse() aufrufen willst, wenn in dem 1. Code-Abschnitt die public nicht aufrufst.
    Du musst ja irgendwie von der OnDialogResponse() zur FRAC_OnDialogResponse() kommen.
    Nochdazu handelt es sich wohl nicht um die selbe DialogID, da du einmal "dialogid == DIALOG_FBUYCAR" und einmal "dialogid == DIALOG_FACTION_CAR_BUY" hast.
    Das sind doch 2 nicht zusammengehörende Skriptteile, oder?
    Du musst schon genauer erörtern, was du gelöst haben willst.

    Für TextDrawUseBox benötigst du zuerst eine Textdraw, die du mit TextDrawCreate erstellst.
    Also solltest du "new textdraw:test = TextDrawCreate(...);" haben, musst du TextDrawUseBox(test,1); setzen.
    Daraufhin "nimmt" sich die Box die Koordinaten von deinem TextDrawCreate();
    Nun musst du aber noch mit TextDrawTextSize(text,x-Koordinate,y-Koordinate); die Größe festlegen.
    Ohne TextDrawTextSize(); bekommst du eine durchgehende Linie über den ganzen Bildschrim und das sieht nicht besonders aus ;)
    Da würde ich - so hab ich's auch gemacht - einfach mal verschiedene Zahlenwerte(besonders bei y-Koordinate) einsetzen um ein Gefühl für das Ganze zu bekommen.


    Es ist natürlich nützlich das Filterskript "Textdraw Editor 1.0" - möglich, dass es eine neuere Version gibt - zu benutzen, da ersparst du dir viele Nerven ;)

    Schon versucht die max. Distanz zu den Objekten, bevor die spawen, zurückzudrehen?
    Damit hatte ich nämlich auch schon Probleme und bei mir hat das geholfen.

    Hi,


    Ich hab ein eigenartiges Problem mit einem bestimmten Befehl im Skript.

    if(strcmp(cmdtext,"/records",true)==0)
    {
    RecordsLoad();
    new string1[128],string2[128],string3[128],string4[128],string5[128],string6[128],string7[128];
    SendClientMessage(playerid,0x33AA33AA,"************Records************");
    format(string1,sizeof(string1),"/rlsjumps2: %d:%s%d by %s",TimeMinLSJumps2,(TimeSekLSJumps2 < 10) ? ("0") : (""),TimeSekLSJumps2,NameLSJumps2);
    SendClientMessage(playerid,0xFFFF00AA,string1);
    format(string2,sizeof(string2),"/rsfjumps: %d:%s%d by %s",TimeMinSFJumps,(TimeSekSFJumps < 10) ? ("0") : (""),TimeSekSFJumps,NameSFJumps);
    SendClientMessage(playerid,0xFFFF00AA,string2);
    format(string3,sizeof(string3),"/rlstower: %d:%s%d by %s",TimeMinLSTower,(TimeSekLSTower < 10) ? ("0") : (""),TimeSekLSTower,NameLSTower);
    SendClientMessage(playerid,0xFFFF00AA,string3);
    format(string4,sizeof(string4),"/rlstower2: %d:%s%d by %s",TimeMinLSTower2,(TimeSekLSTower2 < 10) ? ("0") : (""),TimeSekLSTower2,NameLSTower2);
    SendClientMessage(playerid,0xFFFF00AA,string4);
    format(string5,sizeof(string5),"/rlstower3: %d:%s%d by %s",TimeMinLSTower3,(TimeSekLSTower3 < 10) ? ("0") : (""),TimeSekLSTower3,NameLSTower3);
    SendClientMessage(playerid,0xFFFF00AA,string5);
    format(string6,sizeof(string6),"/racetrack: %d:%s%d by %s",TimeMinRacetrack,(TimeSekRacetrack < 10) ? ("0") : (""),TimeSekRacetrack,NameRacetrack);
    SendClientMessage(playerid,0xFFFF00AA,string6);
    format(string7,sizeof(string7),"/airrace: %d:%s%d by %s",TimeMinAirrace,(TimeSekAirrace < 10) ? ("0") : (""),TimeSekAirrace,NameAirrace);
    SendClientMessage(playerid,0xFFFF00AA,string7);
    return 1;
    }


    Wenn ich diesen Befehl ausführen lassen möchte, kommt nur "Server Unknown Command".
    Ich wundere mich sehr, da ich einen Timer habe, der alle 24 Stunden genau die Variablen verwendet und diese erfolgreich abspeichert.


    Wäre nett, wenn Ihr mir Lösungsvorschläge geben könntet.

    Hi Leute,


    Ich habe folgendes Problem:
    Wenn man stirbt, soll man nicht gleich spawnen, aber ich habe das nicht hinbekommen.
    Wenn ich das return in der OnPlayerSpawn bzw. OnPlayerRequestSpawn ändere, wird man noch immer sofort nach dem Tod gespawnt.


    Kann mir jemand bitte bei diesem Problem helfen?

    Ich weiß einfach nicht, warum man manchmal gebannt wird, wenn man sich auf meinem Server einloggt.
    Könntet ihr mir bitte weiter helfen?


    Das Skript:
    Oben:
    forward AntiCheat();


    public OnFilterScriptInit():
    SetTimer("AntiCheat",2000,1);


    public AntiCheat(playerid)
    {
    for(new w = 3; w < 45; w++)
    {
    for(new p = 0; p < MAX_PLAYERS; p++)
    {
    if(IsPlayerConnected(p) && AccountInfo[p][Logged] == 1 && GetPlayerInterior(p) != 17)
    {
    if(GetPlayerWeapon(p) == w)
    {
    new cheatername[MAX_PLAYER_NAME];
    new anticheat[128];
    GetPlayerName(p,cheatername,sizeof(cheatername));
    format(anticheat,sizeof(anticheat),"%s got banned. Reason: Weaponcheat",cheatername);
    SendClientMessageToAll(0xFB0000FF,anticheat);
    BanEx(p,"Weaponcheat");
    }
    }
    }
    }
    return 1;
    }

    Ich hab in der Aufnahme "/a" eingegeben, aber beim Abspielen vom Playback ist von den Auswirkungen des Befehls nicht zu sehen.
    forward CheckpointOff(playerid);
    OnPlayerCommandText:
    if(strcmp(cmdtext,"/a",true)==0)
    {
    SendClientMessageToAll(0x33AA33A,"The SF-Tour heli will start his tour at the SF AP in 30 secounds.");
    SetTimer("CheckpointOff",30000,0);
    for(new p = 0; p < MAX_PLAYERS; p++)
    {
    SetPlayerCheckpoint(p,-1298.6667,-56.9255,14.1484,2);
    }
    }


    public CheckpointOff(playerid)
    {
    for(new p = 0; p < MAX_PLAYERS; p++)
    {
    DisablePlayerCheckpoint(p);
    }
    return 1;
    }


    Wenn ich den Befehl selber eingebe, gibt es kein Problem, nur der Bot machts eben ned.

    Hi,


    Ich habe ein fertiges NPC-Playback und möchte dieses per Befehl starten.


    Ich suche nun eine Möglichkeit meinen Befehl von der Gamemod mit dem NPC-Playback zu "verbinden".


    So geht es nicht:


    Aus der Gamemod(Beispiel):



    #include "a_npc"
    #define recordname "heli"
    #define playback_type 1



    public OnPlayerCommandText(playerid, cmdtext[])
    {
    if(strcmp(cmdtext,"/start",true)==0)
    {
    StartRecordingPlayback(playback_type, "heli");
    }
    return 1;
    }

    Errors bekomm ich beim Compilen keine, aber wenn ich dann "samp-server.exe" starte, steht im "CMD-Kästchen":
    Script[gamemodes/Stunt.amx]: Run time error 19: "File or function is not found"



    Könntet ihr mir bitte sagen, wie ich mit einem Befehl das Playback starten kann?

    Ich habe ein Problem mit der Log.
    Mein Wunsch wäre es, alle Befehle, die eingegeben werden in einer .ini zu speichern, bei mir ergibt sich folgendes Problem:
    Es wird immer nur ein Befehl gespeichert, das heißt, dass der zuletz eingegebe Befehl den vorigen überschreibt.
    Könntet ihr mir bitte sagen, was ich falsche mache?



    public OnPlayerCommandText(playerid, cmdtext[])
    {
    new cmd[128];
    new idx;
    cmd = strtok(cmdtext,idx);
    for(new i = 0; i < GetMaxPlayers(); i++)
    {
    if (IsPlayerConnected(i))
    {
    if(AccountInfo[playerid][Logged] == 1)
    {
    new name[MAX_PLAYER_NAME], str[128];
    GetPlayerName(playerid, name, sizeof name);
    format(str, sizeof str, "cmdlog.ini");
    new File:cmdfile = fopen(str, io_write);
    if(cmdfile)
    {
    new file[128];
    {
    new hour,minute,second;
    gettime(hour,minute,second);
    format(file, sizeof file, "[%s%d:%s%d:%s%d]%s: %s ", (hour < 10) ? ("0") : (""), hour, (minute < 10) ? ("0") : (""), minute, (second < 10) ? ("0") : (""), second, name, cmdtext);
    { fwrite(cmdfile, file); }
    fclose(cmdfile);
    }
    }
    }
    }
    }
    }