Beiträge von M4rciii

    Ändere die 2 Zeilen so:
    SpielerInfo[playerid][Passwort] = dini_Get(SpielerDatei,"Passwort");
    if(strcmp(SpielerInfo[playerid][Passwort],PText,false) == 0)


    Das false anstatt true bewirkt, dass man beim Passwort "mYpaSSwORd" nicht "mypassword" schreiben kann. => Sicherer

    Commands mit mehreren Parametern? Wo liegt da das Problem?

    if(strmp(cmd,"/einsperren",true) == 0)
    {
    tmp = strtok(cmdtext, idx);
    if(!tmp[0]) return SendClientMessage(playerid,COLOR_RED,"/einsperren [Playerid] [Zeit] [Geld]");
    giveplayerid = ReturnUser(tmp);
    tmp = strtok(cmdtext, idx);
    if(!tmp[0]) return SendClientMessage(playerid,COLOR_RED,"/einsperren [Playerid] [Zeit] [Geld]");
    new zeit = strval(tmp);
    tmp = strtok(cmdtext, idx);
    if(!tmp[0]) return SendClientMessage(playerid,COLOR_RED,"/einsperren [Playerid] [Zeit] [Geld]");
    new geld = strval(tmp);
    // Dein ganzer Code...
    return 1;
    }


    Da ich zu faul für die DCMD-Variante bin, hier klicken.

    Wie schon erwähnt sind es einfache Gangzonen mit etwas Transparenz, die dann wie eine Landfläche aussschauen sollen.
    Auf dem "Andy's Server" sind das eben 2 Gangzones, einmal der Weg und einmal die Fläche von dem /stunt.
    Jedoch wird es schwierig, wenn die Insel rund oder nicht waagrecht ist.


    BlackFox is zwar schnell, dafür is meins ausführlicher. :P


    if(gLeader[playerid] == Cop || gLeader[playerid] == Fbi || gLeader[playerid] == Army || gLeader[playerid] == Medic ||
    gLeader[playerid] == Yakuza || gLeader[playerid] == Neonazis || gLeader[playerid] == Punkz|| gLeader[playerid] == Adac ||
    gLeader[playerid] == Al_Quaida || gLeader[playerid] == Mafia || gLeader[playerid] == Auftragskiller || gLeader[playerid] ==Busfahrer ||
    gLeader[playerid] == Taxifahrer || gLeader[playerid] == Fahrlehrer || gLeader[playerid] == Bauer || gLeader[playerid] == Nsprecher)
    {
    SendClientMessage(playerid, COLOR_RED, "Du bist kein Leader einer Fraktion");
    return 1;
    }


    So vielleicht?

    Im Tut wird die unbekannste Variable playerid verwendet, ein einfacher Gewohnheitsfehler:
    GivePlayerMoney(playerid, <der betrag>);
    GivePlayerMoney(i, <der betrag>);

    forward PayDay();


    public PayDay()
    {
    for(new i=0; i<GetMaxPlayers(); i++)
    {
    if(IsPlayerConnected(i))
    {
    new paymoney = (1000 + random(4000));
    GivePlayerMoney(i, paymoney);
    new str[100];
    format(str,sizeof(str),"PAYDAY!!! Du hast $%d bekommen!",paymoney);
    SendClientMessage(i,0xFFFFFFFF,str);
    }
    }
    return 1;
    }


    Mist, FatJoe ist schneller geworden -_-

    Wenn du da grad nen Screen hast... was steht da nochmal?
    "Use these functions"?? => Das könnte ein Hinweis sein :pinch:


    Also auf jeden Fall musst du in deinem Script immer GivePlayerCash anstatt GivePlayerMoney verwenden.

    In GF ist unter OnPlayerStateChange bei if(newstate == PLAYER_STATE_DRIVER) diese stelle:

    else
    {
    if(PlayerInfo[playerid][pCarLic] < 1)
    {
    if(PlayerDrunk[playerid] >= 5)
    {
    WantedPoints[playerid] += 1;
    SetPlayerCriminal(playerid,255, "Drunk Driving");
    }
    if(TakingLesson[playerid] == 1) { }
    else {
    SendClientMessage(playerid, COLOR_GREY, " You don't know how to Drive yet, so you left the Car !");
    RemovePlayerFromVehicle(playerid); }
    }
    else if(PlayerDrunk[playerid] >= 5)
    {
    WantedPoints[playerid] += 1;
    SetPlayerCriminal(playerid,255, "Drunk Driving");
    }
    }//Done with car check
    Diese änderst sie so hin:

    else if(GetVehicleModel(newcar) != 462 && GetVehicleModel(newcar) != 509 && GetVehicleModel(newcar) != 481 && GetVehicleModel(newcar) != 510)
    {
    if(PlayerInfo[playerid][pCarLic] < 1)
    {
    if(PlayerDrunk[playerid] >= 5)
    {
    WantedPoints[playerid] += 1;
    SetPlayerCriminal(playerid,255, "Drunk Driving");
    }
    if(TakingLesson[playerid] == 1) { }
    else {
    SendClientMessage(playerid, COLOR_GREY, " You don't know how to Drive yet, so you left the Car !");
    RemovePlayerFromVehicle(playerid); }
    }
    else if(PlayerDrunk[playerid] >= 5)
    {
    WantedPoints[playerid] += 1;
    SetPlayerCriminal(playerid,255, "Drunk Driving");
    }
    }//Done with car check


    Dann bei SetPlayerUnjail:

    else
    {
    if(PlayerInfo[i][pCarLic] < 1 && IsPlayerInAnyVehicle(i) && GetPlayerState(i) == 2)
    {
    if(TakingLesson[i] == 1) { }
    else { RemovePlayerFromVehicle(i); }
    }
    }//Done with car check
    Ändern in:

    else if(GetVehicleModel(newcar) != 462 && GetVehicleModel(newcar) != 509 && GetVehicleModel(newcar) != 481 && GetVehicleModel(newcar) != 510)
    {
    if(PlayerInfo[i][pCarLic] < 1 && IsPlayerInAnyVehicle(i) && GetPlayerState(i) == 2)
    {
    if(TakingLesson[i] == 1) { }
    else { RemovePlayerFromVehicle(i); }
    }
    }//Done with car check

    Hallo,
    ich stelle euch hier ein System zur Verfügung, welches euch erlaubt Zonen zu erstellen, die dann auf der Karte angezeigt werden. Wenn man diese Zonen oder auch Ganggebiete betritt, wird ein Textdraw angezeigt. Ganz einfach...



    FUNKTIONEN:
    native M_CreateZone(Float:minx,Float:miny,Float:maxx,Float:maxy,zonecolor,text[]="",textcolor=0xFFFFFFFF);
    native M_DestroyZone(zoneid);
    native M_ZoneFlashForPlayer(playerid,zoneid,flashcolor);
    native M_ZoneFlashForAll(zoneid,flashcolor);
    native M_ZoneStopFlashForPlayer(playerid,zoneid);
    native M_ZoneStopFlashForAll(zoneid);
    native M_ZoneSetTextDraw(zoneid,text[]="",textcolor=0xFFFFFFFF);
    native M_ZoneSetZone(zoneid,Float:minx,Float:miny,Float:maxx,Float:maxy,zonecolor);
    native M_ZoneGetZoneCoords(zoneid,&Float:minx,&Float:miny,&Float:maxx,&Float:maxy);
    native M_IsValidZone(zoneid);
    native M_IsPlayerInZone(playerid,zoneid);
    native M_IsPlayerInAnyZone(playerid);
    native M_GetPlayerCurrentZone(playerid);
    native M_IsPlayerInArea(playerid,Float:minX,Float:minY,Float:maxX,Float:maxY);



    CHANGELOG:
    v1.3:
    - M_AddZone heißt nun M_CreateZone
    - Neue Funktion: IsPlayerInAnyZone
    - Neue Funktion: GetPlayerCurrentZone
    - Neues Callback: OnPlayerEnterZone
    - Neues Callback: OnPlayerLeaveZone
    - Man kann das Textdraw deaktivieren (zB. Falls man überm TextDrawLimit ist). Einfach den Text und die Textfarbe auslassen.



    EINBAU:
    Der Einbau gestaltet sich recht einfach. Füge ganz oben in deinen Gamemode
    #include <M-Zones>
    ein. Die Include wird geladen... Nun brauchst du nur noch
    M_Init();
    in deinem OnGameModeInit() Callback, sodass ein Timer gestartet wird und das System erst funktioniert.
    Dann kommt noch
    M_Connect(playerid);
    in das Callback OnPlayerConnect rein, sodass die Zonen für diesen Spieler angezeigt werden.
    Außerdem müssen diese Callbacks im Script enthalten sein:
    public M_OnPlayerEnterZone(playerid,zoneid)
    {
    return 1;
    }


    public M_OnPlayerLeaveZone(playerid,zoneid)
    {
    return 1;
    }



    BUGS:
    - Der Bug aus Version 1.1 wurde nun endlich behoben und die Zonen werden angezeigt!



    BEISPIEL:
    Ich habe das System mit den Zonen getestet und es hat funktioniert :D
    #define GANG_ZONE_GROVE 0x006600C0
    #define GANG_ZONE_BALLAS 0x990066C0
    #define GANG_ZONE_VAGOS 0xFFFF00C0
    #define GANG_ZONE_ZIVIS 0x66FFFFC0
    M_CreateZone(2321.9546,-1746.7269,2585.2441,-1546.8424,GANG_ZONE_GROVE,"Ganggebiet der Grove Street",GANG_ZONE_GROVE); // Mit TextDraw
    M_CreateZone(1849.7106,-1278.7588,2171.7375,-1103.2615,GANG_ZONE_BALLAS); // Ohne TextDraw
    M_CreateZone(1066.9972,-2160.9045,1522.2491,-1882.8773,GANG_ZONE_VAGOS,""); // Auch ohne TextDraw
    M_CreateZone(1818.6459,-1548.1340,2112.2666,-1344.7012,GANG_ZONE_ZIVIS,"",0x00000000); // Auch ohne TextDraw



    DOWNLOAD:
    RAR-Archiv
    INC-Datei





    Ich denke das wars dann. Hoffe alles funktioniert für euch einwandfrei, wenn nicht, hier sagen und ich behebe es ;) .


    MfG, M4rciii ;)

    // Oben hin:
    new AutosTeamA[ANZAHL_DER_AUTOS_HIER_REINSCHREIBEN];
    new AutosTeamB[ANZAHL_DER_AUTOS_HIER_REINSCHREIBEN];


    // OnGameModeInit
    AutosTeamA[0] = AddStaticVehicle(...);
    AutosTeamA[1] = AddStaticVehicle(...);
    AutosTeamA[2] = AddStaticVehicle(...);
    AutosTeamB[0] = AddStaticVehicle(...);
    AutosTeamB[1] = AddStaticVehicle(...);


    // OnPlayerStateChange
    if(newstate == PLAYER_STATE_DRIVER)
    {
    for(new vA=0; vA<sizeof(AutosTeamA); vA++)
    {
    if(GetPlayerVehicleID(playerid) == AutosTeamA[vA] && gTeam[playerid] != TEAM_A) RemovePlayerFromVehicle(playerid);
    }
    for(new vB=0; vB<sizeof(AutosTeamB); vB++)
    {
    if(GetPlayerVehicleID(playerid) == AutosTeamB[vB] && gTeam[playerid] != TEAM_B) RemovePlayerFromVehicle(playerid);
    }
    }