Beiträge von Templer

    Die Virtuelle Welt wird in Samp nach SpielerTot auf 0 gesetzt, abhilfe schafft hierbei ein SpielerArray bzw. ein PVar, hier ein Beispiel:


    public OnPlayerCommandText(playerid, cmdtext[])
    {
    new string[128];
    if(!strcmp(cmdtext,"/myworld",false,strfind(cmdtext," ",false)))
    {
    strdel(cmdtext,0,strfind(cmdtext," ",false)+1);
    new world = strval(cmdtext);
    SetPlayerVirtualWorld(playerid,world);
    SetPVarInt(playerid,"PlayerWorld",world);
    format(string,sizeof(string),"* Du hast deine Welt auf %d gesetzt...",world);
    return SendClientMessage(playerid,0x000000FF,string);
    }
    return 0;
    }


    public OnPlayerSpawn(playerid)
    {
    SetPlayerVirtualWorld(playerid,GetPVarInt(playerid,"PlayerWorld")); //<-- Setzt die Spieler-Welt

    PlayerPlaySound(playerid, 1036, 0.0, 0.0, 0.0);
    new pname[MAX_PLAYERS],accFormat[128];
    GetPlayerName(playerid,pname,sizeof pname);
    format(accFormat,sizeof accFormat,"%s.savgame",pname);
    //ResetPlayerWeapons(playerid);
    SetPlayerSkillLevel(playerid, WEAPONSKILL_SAWNOFF_SHOTGUN, 1);
    SetPlayerSkillLevel(playerid, WEAPONSKILL_MICRO_UZI, 1);
    if(gTeam[playerid] == 0 || IsAMafia(playerid))
    {
    GivePlayerWeapon(playerid, 4, 1);
    GivePlayerWeapon(playerid, 24, 50);
    GivePlayerWeapon(playerid, 25, 50);
    GivePlayerWeapon(playerid, 30, 450);
    SetPlayerColor(playerid, COLOR_RED);
    if(GetPlayerVirtualWorld(playerid)==1)
    {
    SetPlayerPos(playerid, 2201.2527,-1143.9147,1029.7969);
    SetPlayerInterior(playerid, 15);
    }
    else if(GetPlayerVirtualWorld(playerid)==2)
    {
    SetPlayerPos(playerid, 1264.6923,-773.4435,1091.9063);
    SetPlayerInterior(playerid, 5);
    }
    else if(GetPlayerVirtualWorld(playerid)==3)
    {
    SetPlayerPos(playerid, 2235.8574,1678.7686,1008.3594);
    SetPlayerInterior(playerid, 1);
    }
    }

    if(gTeam[playerid] == 1 || IsAFBI(playerid))
    {
    GivePlayerWeapon(playerid, 41, 500);
    GivePlayerWeapon(playerid, 23, 300);
    GivePlayerWeapon(playerid, 27, 100);
    GivePlayerWeapon(playerid, 31, 450);
    SetPlayerColor(playerid, COLOR_MAFIA);
    if(GetPlayerVirtualWorld(playerid)==1)
    {
    SetPlayerPos(playerid, 2220.8381,-1153.0044,1025.7969);
    SetPlayerInterior(playerid, 15);
    }
    else if(GetPlayerVirtualWorld(playerid)==2)
    {
    SetPlayerPos(playerid, 1301.5267,-791.6212,1084.0149);
    SetPlayerInterior(playerid, 5);
    }
    else if(GetPlayerVirtualWorld(playerid)==3)
    {
    SetPlayerPos(playerid, 2152.2529,1600.2825,1006.1741);
    SetPlayerInterior(playerid, 1);
    }
    }
    return 1;
    }

    Sachmal GLS | Scripter wir sind hier nicht im Ratespiel oder "Probiers doch mal aus".. Aber zu deiner Theorie, öffne mal ne leere PAWN Datei und schreib das mal rein:


    new a[][]={
    {2};


    und sollte es ned gehen, dann tu deine Klammer wieder hinzu... Das sind Multidimensionale Arrays was er definiert hat, keine einfachen.

    Oben in der Include gibt es Include-Einstellungen wo du es alles nach deinen Bedürfnissen ändern kannst, hier ein Ausschnitt:


    /*Include Einstellungen*/
    #define NODM_FILTERSCRIPT (0) //Auf '1' setzen wenn du dieses Include in einem Filterscript einbaust! (Default: 0)
    #define NoDM_MAX_ZONES (10) //Wieviele DM Zonen max. verwendet werden. (Default: 10)
    #define NoDM_ACTIVATE_MAPZONES //Auskommentieren um die NoDM Zonen auf der Karte anzuzeigen!
    #define NoDM_UPDATE (2) //Angabe in Sekunden in welchen Intervalen geprüft werden soll, ob Spieler in einer NoDM Zone ist! (Default: 2)
    #define NoDM_NOWEAPONS (1) //Sollen die Waffen vom Spieler in der NoDM Zone abgenommen und wieder zurückgegeben werden? (Ja = 1; Nein = 0) (Default: 1)
    #define NoDM_AIMING_AT_PEOPLE (true) //Spieler Schaden hinzufügen, wenn sie einen Spieler, der in der NoDM Zone ist, von außerhalb anschießen. (Ja = true; Nein = false) (Default: true)


    @ FoL-Team: Nun sry, sonst wüsste ich keinen Rat. Vielleicht fügst du ein eigenes Textdraw ein ^^ Den unter den Include Einstellungen ist ein stock für die TextDraw-Konfiguration

    Es gibt nur KeyDefines für GTA SA Actions, wie Gehen oder Laufen, aber du kannst keine Tasten auf der Tastatur belegen, mit diesen einfachen Möglichkeiten in SAMP. Du kannst also nur definieren, ob er Spieler die Laufen Taste und Co drückt..

    Nunja, in dem Code wird es auch sozusagen geblockt, schau mal..


    public OnPlayerRequestSpawn(playerid)
    {
    return 0; //Dieser Wert muss auf 1 sein, ansonsten wird der Spieler ned gespawnt
    }


    bedeutet:


    public OnPlayerRequestSpawn(playerid)
    {
    return 1;
    }

    Ich würde es anders machen aber ok..


    Am besten du lässt die Zahlen 56 und 1 aus und lässt einfach den Compiler berechnen, da es ja in dem Fall keine Probleme macht!


    new JoinPed[][] = {
    {280},//POLICE_FORCE 1
    {281}, //2
    {282},//3
    {283},//4
    {284},//5
    {112},//6
    {288},//7
    {71},//8
    {166},//9
    {295},//10
    {148},//11
    {286},//FBI/ATF //12
    {164},//12
    {163},//14
    {55},//NATIONAL_GUARD
    {55},
    {70},//FIRE/AMBULANCE
    {274},
    {275},
    {276},//20
    {277},
    {278},
    {279},
    {258},//LA_COSA_NOSTRA
    {127},
    {126},
    {125},//28
    {124},
    {113},
    {111},
    {98},
    {120},//Yakuza
    {121},
    {122},
    {123},
    {169},
    {186},//38,
    {228},
    {120},//HITMANS
    {165},
    {186},
    {93},
    {141},
    {148},//NEWS_REPORTERS
    {188},
    {187},
    {115},//TAXI_CAB_COMPANY
    {116},
    {59},//50//DRIVING/FLYING_SCHOOL
    {60},//DRIVING/FLYING_SCHOOL
    {76},//DRIVING/FLYING_SCHOOL
    {150},//DRIVING/FLYING_SCHOOL
    {105},
    {106},
    {107},
    {127},
    {112},
    {169}
    };

    eli, das liegt leider an SA-MP, hatte schon öfters kämpfe mit GetPlayerWeaponData, nebenbei habe ich es offiziell auf nem Server getestet, ohne das die Waffen abgenommen werden und das reicht vollkommen aus, glaub mir ^^. Da ja erkannt wird, ob ein Spieler auf einen anderen in der NoDM Zone schießt.


    @FoL-Team Kann es sein, dass du Y_Less oder sonstiges verwendest? Anders kann es auch sein, dass du schon zuviele TextDraw´s erstellt hast. Beim testen selber, auf vielen Servern traten keine Fehler auf.

    An der Abfrage kann es nicht liegen, da das Prinzip ja so verwendet wird:


    if((a >= 8 && a <= 13 || b >= 8 && b <= 13) && c == 23)


    und dies funktioniert einwandfrei..

    Maddin, wenn du meinst es gehört nicht hin, dann teste es selber, denn es funktioniert so...


    lolipop du hast das geschickt:


    C:\Users\Sven\Desktop\samp 0.3cr3\gamemodes\Reallife.pwn(426) : error 029: invalid expression, assumed zero
    C:\Users\Sven\Desktop\samp 0.3cr3\gamemodes\Reallife.pwn(426) : error 029: invalid expression, assumed zero
    C:\Users\Sven\Desktop\samp 0.3cr3\gamemodes\Reallife.pwn(426) : error 029: invalid expression, assumed zero
    C:\Users\Sven\Desktop\samp 0.3cr3\gamemodes\Reallife.pwn(426) : fatal error 107: too many error messages on one line


    jetzt will ich halt wissen, wie die Zeile 426 aussieht...

    @ Beitrag von BloodyEric


    IsPlayerOnline(playername[])
    {
    new cname[MAX_PLAYER_NAME], playerid;
    for(; playerid != MAX_PLAYERS; playerid++)
    {
    GetPlayerName(playerid, cname, sizeof(cname));
    if(!IsPlayerConnected(playerid)||strcmp(playername,cname,false)) continue;
    return playerid;
    }
    return INVALID_PLAYER_ID;
    }

    Den einzigen den ich grade merke ist der, dass du "Tazer", obwohl du eigentlich "tazer" aufrufen willst, kannste die Zeile schicken auch?

    Beim Laden vom Filterscript wird das Public in 2min gestartet.. Um kleine Bugs zu vermeiden


    Danach überprüft das public, ob es 0:59Uhr ist (Könntest auch statt dem 0 eine 23 machen ^^) und wenn es nicht so spät ist, dann startet er die Überprüfung in 30 Sekunden neu. Sollte es dann 0:59 Uhr sein, macht er einen GMX und startet Server neu..



    Mir fällt jedoch gerade was besseres ein.. ^^


    #define RESTART_STUNDE (23)
    #define RESTART_MINUTE (59)


    new gCurrentTime[3];


    forward CheckHour();
    public CheckHour()
    {
    GameModeExit();
    return true;
    }


    public OnFilterScriptInit()
    {
    gettime(gCurrentTime[0],gCurrentTime[1],gCurrentTime[2]);
    gCurrentTime[2] += (RESTART_STUNDE-gCurrentTime[0])*3600; //Wandle restliche Stunden in Sekunden um und füge sie den Sekunden hinzu..
    gCurrentTime[2] += (RESTART_MINUTE-gCurrentTime[1])*60; //Wandle restliche Minuten in Sekunden um und füge sie den Sekunden hinzu...
    SetTimer("CheckHour", gCurrentTime[2]*1000, false); //Startet zum überprüfen erst in 2min...
    return true;
    }

    Ich stehe in dem Fall zu Trooper, schön das einer sich eine Mühe macht, sozusagen eine "Schutzliste" für Server Owner, jedoch wie soll überprüft werden, ob diese "Abwerber" auch wirklich im Auftrage der ServerBesitzer stehen. Im Endeffekt finde ich sowas sehr unpersönlich und Spieler die auf Server spielen und das Script gut finden bzw. die Leitung und die Community, die lassen sich von solchen "Abwerbern" nicht mitleiten. Diese "Abwerber" ist ein gleicher Schmafu wie diese pösen Hoster die deine *.amx klauen.


    //Edit: Verdammt, ich merk seid Bloody seinem Post auch erst jetzt, dass es vom August ist.. Müsst ihr immer die Themen hervorholen oder was^? ^^

    Hier wie du deine stocks einsparen kannst..


    #define IsPlayerOnDesktop(%0) GetPVarInt(%0,"DeskCheck")
    #define GetPlayerDesktopTime(%0) GetPVarInt(%0,"AFKTime")


    Nebenbei empfehle ich nen 4Sekunden Timer, denn wie es damals vor langer langer Zeit Mr. Blackfox (oder wie sein Name nochmals war) auch schon erwähnt, dass es durch kleine Laggs zu falschen Werten kommt und man kann hier in dieser Samp Welt nicht davon ausgehen, dass jeder einen Akademie Abschluss hat in das Anwenden von Programmiersprachen, oder? ^^