Beiträge von Rayan

    Code
    \gamemodes\1337.pwn(8924) : error 012: invalid function call, not a valid address
    \gamemodes\1337.pwn(8924) : warning 215: expression has no effect
    \gamemodes\1337.pwn(8924) : error 001: expected token: ";", but found ")"
    \gamemodes\1337.pwn(8924) : error 029: invalid expression, assumed zero
    \gamemodes\1337.pwn(8924) : fatal error 107: too many error messages on one line

    Benötige Ich für SetObjectMaterial ein bestimmtes Include oder Plugin?


    Code
    \gamemodes\1337.pwn(13635) : error 017: undefined symbol "SetObjectMaterial"
    \gamemodes\1337.pwn(13649) : error 017: undefined symbol "SetObjectMaterial"

    if(dialogid == DIALOG_COLOR)
    {
    if(response)
    {
    switch(listitem)
    {
    new vehicleid = GetPlayerVehicleID(playerid);
    GivePlayerMoney(playerid,-2500);
    GameTextForPlayer(playerid,"~r~KOSTEN: ~w~$2500",2500,3);
    case 0:
    {
    SendClientMessage(playerid,COLOR_GREEN,"» Du hast dein Fahrzeug erfolgreich umgefärbt.");
    ChangeVehicleColor(vehicleid,3,3);
    return 1;
    }
    case 1:
    {
    SendClientMessage(playerid,COLOR_GREEN,"» Du hast dein Fahrzeug erfolgreich umgefärbt.");
    ChangeVehicleColor(vehicleid,86,86);
    return 1;
    }
    case 2:
    {
    SendClientMessage(playerid,COLOR_GREEN,"» Du hast dein Fahrzeug erfolgreich umgefärbt.");
    ChangeVehicleColor(vehicleid,106,106);
    return 1;
    }
    case 3:
    {
    SendClientMessage(playerid,COLOR_GREEN,"» Du hast dein Fahrzeug erfolgreich umgefärbt.");
    ChangeVehicleColor(vehicleid,172,172);
    return 1;
    }
    case 4:
    {
    SendClientMessage(playerid,COLOR_GREEN,"» Du hast dein Fahrzeug erfolgreich umgefärbt.");
    ChangeVehicleColor(vehicleid,6,6);
    return 1;
    }
    case 5:
    {
    SendClientMessage(playerid,COLOR_GREEN,"» Du hast dein Fahrzeug erfolgreich umgefärbt.");
    ChangeVehicleColor(vehicleid,13,13);
    return 1;
    }
    case 6:
    {
    SendClientMessage(playerid,COLOR_GREEN,"» Du hast dein Fahrzeug erfolgreich umgefärbt.");
    ChangeVehicleColor(vehicleid,0,0);
    return 1;
    }
    case 7:
    {
    SendClientMessage(playerid,COLOR_GREEN,"» Du hast dein Fahrzeug erfolgreich umgefärbt.");
    ChangeVehicleColor(vehicleid,1,1);
    return 1;
    }
    }
    }
    }


    Aufgrund diesem PAWN-Code spackt mein Compiler ab. Weiß jemand warum? Habe bereits einiges rumprobiert...

    forward klauen(playerid,giveplayerid);
    public klauen(playerid,giveplayerid)
    {
    if (ProxDetectorS(5.0, playerid, giveplayerid))
    {
    new string[256],playername[24],giveplayer[24];
    GetPlayerName(playerid,playername,sizeof(playername);
    GetPlayerName(giveplayerid,giveplayer,sizeof(giveplayer);
    new money = GetPlayerMoney(giveplayerid)/4;
    format(string,sizeof(string),"[INFO] Spieler %s hat dir $%d geklaut.",playername,money);
    SendClientMessage(giveplayerid,COLOR_YELLOW,string);
    format(string,sizeof(string),"[INFO] Du hast dem Spieler %s $%d geklaut.",giveplayer,money);
    SendClientMessage(giveplayerid,COLOR_YELLOW,string);
    GivePlayerMoney(playerid,money);
    GivePlayerMoney(giveplayerid,-money);
    klauen[playerid] = 1;
    SetTimerEx("StopKlauen", 1800000, false, "i", playerid); // Alle 30 Minuten klauen
    return 1;
    }
    else
    {
    SendClientMessage(playerid,COLOR_RED,"» Dein Opfer befindet sich nicht mehr in der Nähe.");
    return 1;
    }
    return 1;
    }


    Pawn Compiler spackt ab. Verstehe nur gerade nicht warum. Kein Klammerfehler im Script vorhanden.

    dcmd_unban(playerid, params[])
    {
    if(!IsPlayerConnected(playerid)) return SendClientMessage(playerid, COLOR_WHITE, "Du bist nicht eingeloggt.");
    if(PlayerInfo[playerid][pAdmin] < 1338) return SendClientMessage(playerid, COLOR_WHITE, "» Du besitzt nicht die benötigten Zugriffsrechte.");
    new accname[MAX_PLAYER_NAME];
    if(sscanf(params, "s", accname)) return SendClientMessage(playerid, COLOR_WHITE, "BENUTZUNG: /unban [Accountname]");
    new acc[MAX_PLAYER_NAME+20];
    format(acc,sizeof(acc),"/Accounts/%s.ini",accname);
    if(!fexist(acc)) {
    format(stringx,sizeof(stringx)," Der Account %s existiert nicht!",accname);
    SendClientMessage(playerid,COLOR_GRAD2,stringx);
    return 1;
    }
    new File:banaccount = fopen(acc,io_write);
    fwrite(banaccount,"Gebannt=0\n");
    fclose(banaccount);
    format(stringx, sizeof(stringx), "<< Administrator %s hat den Spieler %s entbannt. >>", MeinName(playerid), accname);
    SendClientMessageToAll(COLOR_LIGHTRED,stringx);
    return 1;
    }



    Die gesamte Dini Speicherung wird gelöscht und durch "Gebannt=0" gesetzt.
    Warum?

    Moin,


    ich habe das Problem dass mein Server oft abstürtzt.
    Manchmal ist zwischen den Abstürzen 1-2 Stunden Pause, jedoch stürzt der Server immer wieder ab.
    Könnte es an DDos liegen?
    Ich habe alle Befehle durchgecheckt, die den Rcon Command "gmx" enthalten.

    Also unter dem Variablennamen "Servername" erwarte ich normalerweise einen Text, der den aktuellen Servernamen speichert.
    Genauso ist die Funktion "ServerName" irritierend meiner Meinung nach.


    Außerdem funktioniert (nicht getestet) dein "SendRconCommand" nicht, da er so nur versucht den Servernamen als RCON Befehl auszuführen was nicht funktioniert.
    Um den (Host-)Namen des Serves zu ändern brauchst du schon ein "hostname" von dem Namen (Quelle: http://wiki.sa-mp.com/wiki/RCON#RCON_Commands)


    Eine switch Anweisung wäre für einen Anfänger evtl. auch verständlicher als (bei z. B. 10 verschiedenen Servernamen) 10 "else-if" Anweisungen.

    Sorry, war ein wenig Müde ;)
    Habe das hostname im RconCommand vergessen. :pinch:

    Hallo liebe Community!


    Ich möchte euch heute ein Tutorial zeigen, wie ihr euren Servernamen alle x Sekunden ändern könnt. (automatische Funktion)
    Beispiel:
    Tutorial Reallife [0.3z]
    [0.3z] Tutorial Reallife [Neueröffnung]


    Als erstes benötigen wir folgendes (am Besten ganz am Anfang des Scripts):
    new Servername = 0;
    Mit dieser Variable können wir nun arbeiten.


    Als erstes brauchen wir unter "OnGameModeInit" einen Timer:

    public OnGameModeInit()
    {
    SetTimer("ServerName",2500,1);
    return 1;
    }

    Dieser Timer sagt aus, dass in 2500 Millisekunden (2,5 Sekunden) der Timer ausgelöst wird. Nach dem 2500 die 1 (true) sagt aus, dass dieser Timer nicht nur 1x verwendet wird, sondern öfters.


    Danach schreiben wir am Besten oberhalb OnGameModeInit() folgendes:
    forward ServerName();
    public ServerName();
    {
    return 1;
    }
    In diesem Public wird nun festgelegt, was im Timer passieren soll. (In diesem Fall Servername wird geändert)


    Nun kommt auch die vorher, definierte Variable zum Einsatz:
    forward ServerName();
    public ServerName();
    {
    if(Servername == 0)
    {
    return 1;
    }
    else if(Servername == 1)
    {
    return 1;
    }
    return 1;
    }
    Diese Variable sagt später aus, welcher Servername zurzeit gewählt ist.


    Nun möchten wir, dass der Servername ständig geändert wird, dies legen wir mit einem SendRconCommand fest.
    Damit dieser auch ständig gewechselt wird, benötigen wir unsere Variable, die auch ständig gesetzt wird.
    forward ServerName();
    public ServerName();
    {
    if(Servername == 0)
    {
    SendRconCommand("hostname Tutorial Reallife [0.3z]")
    Servername = 1;
    }
    else if(Servername == 1)
    {
    SendRconCommand("hostname [0.3z] Tutorial Reallife [Neueröffnung]")
    Servername = 0;
    }
    return 1;
    }
    Im SendRconCommand("TEXT") legen wir den ersten Servernamen fest.
    Darunter mit Servername = 1; damit, dass die Variable auf 1 wechselt und in 2,5 Sekunden die Variable 1 ausgelesen wird, nicht die 0, wie vorher.


    Dies war mein erstes Tutorial.
    Ich hoffe ich habe es nicht all zu kompliziert geschrieben.
    Ich weiß, dies ist für Anfänger - dies sollte auch Anfänger in den Einstieg des Scriptens helfen.

    ocmd:prison(playerid, params[])
    {
    new Zeit, pID, Grund[128], sendername[MAX_PLAYER_NAME], playername[MAX_PLAYER_NAME], string[500], oldtime;
    if(!IsPlayerConnected(playerid)) return SendClientMessage(playerid, COLOR_GRAD2, "Du bist nicht eingeloggt!");
    if(PlayerInfo[playerid][pAdmin] < 1) return SendClientMessage(playerid, COLOR_GRAD2, "» Du besitzt nicht die benötigten Zugriffsrechte.");
    if(sscanf(params, "uds", pID, Zeit, Grund)) return SendClientMessage(playerid, COLOR_GRAD2, "Benutze: /prison [PLAYERID/NAME] [ZEIT IN MINUTEN] [GRUND]");
    if(PlayerInfo[playerid][pAdmin] == 1 && Zeit > 30) return SendClientMessage(playerid, COLOR_GRAD2, "Als Admin1 kannst du maximal 30 Minuten Prison geben!");
    if(Zeit < 10) return SendClientMessage(playerid, COLOR_GRAD2, "Die Prisonzeit darf nicht weniger als 10 Minuten betragen!");
    if(!IsPlayerConnected(pID)) return SendClientMessage(playerid, COLOR_GRAD2, "Dieser Spieler ist nicht online!");
    if(PlayerInfo[pID][pJailTime] == 0)
    {
    GetPlayerName(playerid, sendername, sizeof(sendername));
    GetPlayerName(pID, playername, sizeof(playername));
    new yearr, monthh,dayy,Hour,Minute,Sec;
    getdate(yearr, monthh, dayy);
    gettime(Hour,Minute,Sec);
    format(string, sizeof(string), "* Du hast %s für %d Minuten ins Prison teleportiert. | Grund:%s", playername,Zeit,Grund);
    SendClientMessage(playerid, COLOR_LIGHTRED, string);
    format(string, sizeof(string), "* Du wurdest von Admin %s für %d Minuten ist Prison teleportiert. | Grund:%s", sendername,Zeit,Grund);
    SendClientMessage(pID, COLOR_LIGHTRED, string);
    format(string, sizeof(string), "[ADMIN] %s hat %s für %d Minuten ins Prison teleportiert. | Grund:%s",sendername,playername,Zeit,Grund);
    ABroadCast(COLOR_LIGHTRED,string,1);
    Log("Prison.log",string);
    GameTextForPlayer(pID, "~w~Willkommen im ~n~~r~Prison", 5000, 3);
    WantedPoints[pID] = 0;
    WantedLevel[pID] = 0;
    SetPlayerWantedLevel(pID,0);
    PlayerInfo[pID][pJailed] = 5;
    SetPlayerVirtualWorld(pID,pID+500);
    PlayerInfo[pID][pJailTime] = Zeit*60;
    ResetPlayerWeapons(pID);
    //SetPlayerPos(pID,prisonspawn);
    SetPlayerPos(pID,1218.4226,2552.8484,10.8203+2);
    return 1;
    }
    }


    Es kommt ständig: "/prison [PLAYERID/NAME] [ZEIT] [GRUND]"


    warum?