Beiträge von Jens

    -- Hier wird der Name des Spielers abgefragt und der Name des Spielern auf Name geändern - es ändert sich nichts, da Name == Name ist.

    Kannst du mir sagen, wie da denn was geändert wird?


    Im Moment sieht der Command bei mir so aus:



    //--------------Umbenennen----------------
    if(strcmp(strget(cmdtext,0),"/rename",true) == 0)
    {
    if(!IsPlayerConnected(ziel))
    {
    SendClientMessage(playerid,COLOR_GREY,"Diesen Spieler gibt es nicht.");
    return 1;
    }
    if(pInfo[playerid][admin] >= 7)
    {
    if(!strlen(strget(cmdtext,2)) || !strlen(strget(cmdtext,2)))
    {
    SendClientMessage(playerid,COLOR_YELLOW,"Verwendung: /rename [spielerid] [neuer Name]");
    return 1;
    }
    new string[28];
    new Name[MAX_PLAYER_NAME];
    GetPlayerName(playerid, Name, sizeof(Name));
    format(string,sizeof(string),"%s",Name);
    SetPlayerName(playerid, string);
    return 1;
    }
    else
    {
    SendClientMessage(playerid,COLOR_GRAD2,"Du darfst diesen Command nicht nutzen!");
    }
    return 1;
    }


    Aber wie du schon geschrieben hast, wird da nichts geändert, was nicht so sein soll.

    Moin,
    hab da ein Problem mit dem Einsatzchat für die Cops / das SWAT. Undzwar wenn man ein Cop ist, kann man in dem Chat schreiben. Wenn man kein Cop ist, kann man nicht in dem Chat schreiben, ihn aber lesen.


    Code:



    forward SendClientMessageForCops(color, string[], playerid);


    //---------------------COP CHAT---------------------
    if(strcmp(strget(cmdtext,0),"/e",true) == 0)
    {
    if(IsACop[playerid] == 1)
    {
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    new msg[200];
    format(msg,sizeof(msg),"%s: %s",pName,cmdtext[3]);
    SendClientMessageForCops(TEAM_COP_COLOR, msg, playerid);
    return 1;
    }
    }
    }
    if (IsACop[playerid] == 0)
    {
    SendClientMessage(playerid, COLOR_RED,"Du bist kein Cop!");
    }
    return 1;
    }


    public SendClientMessageForCops(color, string[], playerid)
    {
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    if(IsACop[playerid] == 1)
    {
    SendClientMessage(i, color, string);
    }
    }
    }
    }

    Das Script bearbeitest du mit pawno. Wenn du fertig bist, kompilierst du den Gamemode (das Script) und behebst die Fehler, wenn welche vorhanden sind. Wenn keine da sind, ist die .amx-Datei erstellt. Der Gamemode muss im Ordner "gamemodes" bleiben.
    In der Datei "server.cfg" Trägst du in der Zeile "gamemode" "grandlarc 1" ein, sodass dann da steht:


    "gamemode grandlarc 1"


    Die 1 steht glaub ich dafür, dass der Gamemode bei GMX wiederholt werden soll, sicher bin ich mir aber nicht. Dann startest du halt die "samp-server.exe" und kannst über die IP "127.0.0.1" auf den Server drauf.

    Nabend,
    ich versuche im Moment im folgenden Code zwei User einzutragen, nur ich hab keine Ahnung wie. Ich habs jetzt mit Leerzeichen und Komma in den "" versucht.



    GetPlayerName(playerid, lpName, sizeof(lpName));
    if(strfind("Jens", lpName, true) == 0)


    Also das soll dazu dienen, dass nur ich das Tor öffnen kann. Aber wie bekomme ich das so hin, dass zwei Leute das Recht haben, das Tor zu bewegen?

    lol in dem Filterscript gibts KEY_HORN oO
    Naja egal, geht jetzt.


    Geht das auch, wenn ich eine Taste benutze, die eigentlich nur eine Funktion hat, wenn ich in einem Auto sitze? Kann man die also auch für Funktionen außerhalb eines Fahrzeuges benutzen?

    Hab ich rein gemacht, weil es bei einem Filterscript, was ich benutze, auch so ist. Das Filterscript war aber nicht aktiviert.
    Habs weg gemacht und habe einen Error:

    Zitat

    C:\Users\Jens\Games\Rockstar Games\GTA San Andreas\GTA San Andreas\gamemodes\JLS.pwn(1025) : error 017: undefined symbol "KEY_HORN"
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    1 Error.

    Also muss es ja irgendwie definiert werden.

    Moin,
    da ich noch nie etwas mit
    public OnPlayerKeyStateChange
    gemacht habe, wollte ich das mal testen. Nur leider funktioniert das nicht so, wie ich das will. Im Wiki kann ich nicht gucken, da es irgendwie nicht funktioniert und ich habs eigentlich so gemacht, wie ich es teilweise in der Suchfunktion gefunden habe.


    Also das war jetzt einfach mal so zum Test:


    #define KEY_HORN



    public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
    {
    if(newkeys & KEY_HORN)
    {
    SendClientMessage(playerid, COLOR_GREEN,"Der Test hat funktioniert!");
    }
    return 1;
    }

    Moin,
    wollte mal alle Commands so machen, dass man in den Logs sieht, was ein User eingegeben hat. Das wollte ich mit
    print("blabla");
    machen.
    Also ein Beispiel wie es in den Logs stehen sollte / könnte:


    Spieler hat ein Fahrzeug gelöscht!


    ("Spieler" durch Namen des Anwenders ersetzen)
    Nur wie bekomm ich das hin? Wenn ich jetzt

    print("%s hat ein Fahrzeug gelöscht!",pName);

    eingebe, kommt eine Warnung. War halt nur ein Versuch. Hat jemand eine Lösung?

    Bei mir funktioniert das folgendermaßen:


    • Windows-Taste + P drücken
    • "Erweitert" auswählen


    Beide Monitore werden kurz schwarz und dann funktioniert es. Ich habe Windows 7 32Bit.

    probiert doch ma per Hamachi/Portfreigabe, ob er draufconnecten kann

    WIe kann man denn dann auf den Server zugreifen?
    Also bei SA:MP LAN-Servern geht das ja über den SA:MP Clienten. Aber wie geht das mit dem Map-Editor? oO

    Moin,
    ich hab ein großes Problem, und zwar funktionert kein Command mehr, der in meinem Gamemode ist.
    Ich habe schon die Suchfunktion benutzt, auch was gefunden, nur haben mir die Themen nicht weitergeholfen.


    Hier ein paar Beispiele der Commands:



    if(strcmp("/delcar", cmdtext, true) == 0)
    {
    if(!IsPlayerInAnyVehicle(playerid)) return 1;
    DestroyVehicle(GetPlayerVehicleID(playerid));
    SendClientMessage(playerid, COLOR_GREEN, "Das Fahrzeug wurde gelöscht!");
    return 1;
    }



    if (strcmp("/move", cmdtext, true) == 0)
    {
    if(IsPlayerInRangeOfPoint(playerid, 1.0, 1422.5712890625, -1830.8266601563, 3802.3835449219))
    {
    if(gatesopened == 0)
    {
    MoveObject(AreaGate, 1425.8410644531, -1828.1262207031, 3805.4016113281,1);
    gatesopened = 1;
    }
    else if(gatesopened == 1)
    {
    MoveObject(AreaGate, 1425.8408203125, -1828.1259765625, 3805.8000488281,1);
    gatesopened = 0;
    }
    }
    return 1;
    }


    Hat jemand eine Idee?



    /edit: Problem behoben, lag an einem Filterscript, was wohl nicht richtig funktioniert hat.


    Closed

    Zitat


    C:\Users\Jens\Games\Rockstar Games\GTA San Andreas\GTA San Andreas\gamemodes\JLS.pwn(828) : error 025: function heading differs from prototype
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    1 Error.


    Werde jetzt mal das mit "WaitForMap" probieren. Hab ich mich eig noch nie mit beschäftigt.


    /edit: Es lebe der kleine Opa! :D Es funktioniert. Danke für den Hinweis Big-MAN


    /closed

    public OfficeFreeze()
    {
    TogglePlayerControllable(playerid, 1);
    return 1;
    }

    Zitat

    C:\Users\Jens\Games\Rockstar Games\GTA San Andreas\GTA San Andreas\gamemodes\JLS.pwn(830) : error 017: undefined symbol "playerid"
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    1 Error.