Beiträge von _PayDay_

    if(strcmp(cmd, "/tanken", true) == 0)
    {
    new fillstation = -1;
    for(new i = 0; i<MAX_TANKEN; i++) //Hier die Schleife
    {
    if(IsPlayerInRangeOfPoint(playerid, 8.0, TankenInfo[i][tPosX], TankenInfo[i][tPosY], TankenInfo[i][tPosZ]))
    {
    fillstation = i;//Tankstelle gefunden
    break;//Schleife anhalten
    }
    }

    if(fillstation != -1)//Fragt ab ob eine Tankstelle in der Nähe vom Spieler gefunden wurde
    {
    //if(IsANoTachoVehicle(GetPlayerVehicleID(playerid)))
    //{
    // SendClientMessage(playerid,COLOR_RED,"* Ein Fahrrad hat keinen Tank!"); //Erstmal entfernt.
    //}
    //else
    //{


    new VID;
    new FillUp;
    new string[256];
    VID = GetPlayerVehicleID(playerid);
    FillUp = GetGasMax(GetVehicleModel(VID)) - Gas[VID];

    if(GetPlayerMoney(playerid) >= FillUp+4)
    {
    SetTimer("Fillup",RefuelWait,0);
    Refueling[playerid] = 1;
    FreezePlayer(playerid);
    TankenInfo[fillstation][tLiter] -= FillUp;
    UpdateTankenLabel(fillstation);

    format(string, sizeof(string), "* Tankstelle: {FFFFFF}Du betankst dein Fahrzeug an der %s Tankstelle!", TankenInfo[fillstation][tDescr]);
    SendClientMessage(playerid,COLOR_LIGHTBLUE,string);
    SendClientMessage(playerid,COLOR_LIGHTBLUE,"* Tankstelle: {FFFFFF}Bitte warte bis es aufgetankt wurde!");
    return 1;
    }
    else
    {
    format(string,sizeof(string),"* Du hast nicht genug Geld zum Tanken auf der Hand! Kosten: %d$",FillUp);
    return SendClientMessage(playerid, COLOR_LIGHTGREEN,string);
    }
    }
    else
    {
    return GameTextForPlayer(playerid,"~r~DU BIST AN KEINER TANKSTELLE!", 4000, 3);
    }
    }


    Wenn du die for-Schleifen so verwendest, sparst du enorm Leistung.
    Ich hab dir auch deine i und playerid Fehler gefixt.

    Ich versuch mal was zusammen zu scripten.


    //Edit:


    Ganz oben:


    #include <sscanf>//Wenn du es noch nicht eingebunden hast
    #include <ocmd>//Wenn du es noch nicht eingebunden hast


    #define COLOR_WHITE 0xFFFFFFFF//Wenn du es noch nicht definiert hast
    #define COLOR_GREY 0xAFAFAFAA//Wenn du es noch nicht definiert hast
    #define COLOR_GREEN 0x33AA33AA//Wenn du es noch nicht definiert hast


    new PlayerContractPrice[MAX_PLAYERS];
    new PlayerContractTarget[MAX_PLAYERS];
    new bool:Finding[MAX_PLAYERS];


    Unter OnPlayerConnect:


    PlayerContractTarget[playerid] = -1;
    PlayerContractPrice[playerid] = 0;


    Unter OnPlayerDisconnect:


    PlayerContractTarget[playerid] = -1;
    PlayerContractPrice[playerid] = 0;


    Unter OnPlayerDeath:


    if(isPlayerInFrakt(killerid,12))
    {
    for(new i=0;i<MAX_PLAYERS;i++)
    {
    if(PlayerContractTarget[i] == playerid)
    {
    new string[128];
    new pName[128];
    GetPlayerName(playerid, pName, sizeof pName);
    format(string, sizeof string, "[Hitman]Du hast %s getoetet, und %d$ bekommen!", pName, PlayerContractPrice[i]);
    SendClientMessage(killerid, COLOR_GREEN, string);
    new money = GetPlayerMoney(killerid);//Anpassen!
    ResetPlayerMoney(killerid);//Anpassen!
    GivePlayerMoney(killerid, money+PlayerContractPrice[i]);//Anpassen!
    PlayerContractPrice[i] = 0;
    PlayerContractTarget[i] = -1;
    }
    }
    }


    Ganz unten:


    ocmd:contract(playerid, params[0])
    {
    new target,price;
    if(sscanf(params, "ud", target,price))
    {
    if(!isPlayerInFrakt(playerid,12))
    {
    if(price <= 3000)
    {
    if(GetPlayerMoney(playerid) >= price)//Anpassen!
    {
    if(IsPlayerConnected(target))
    {
    if(PlayerContractPrice[playerid] == 0)
    {
    new string1[128];
    new pName2[MAX_PLAYER_NAME];
    GetPlayerName(playerid, pName2, sizeof pName2);
    new pName[MAX_PLAYER_NAME];
    GetPlayerName(target, pName, sizeof pName);
    format(string1, sizeof string1, "[Hitman]Du hast %d$ Kopfgeld auf %s gesetzt!", price,pName);
    SendClientMessage(playerid, COLOR_GREEN, string1);
    format(string1, sizeof string1, "[Hitman]%s hat ein Kopfgeld von %d$ auf %s gesetzt, erledige ihn.", pName2, price, pName);
    for(new i=0;i<MAX_PLAYERS;i++)
    {
    if(isPlayerInFrakt(i,12))
    {
    SendClientMessage(i, COLOR_GREEN, string1);
    }
    }
    PlayerContractPrice[playerid] = price;
    PlayerContractTarget[playerid] = target;
    new money = GetPlayerMoney(playerid);//Anpassen!
    ResetPlayerMoney(playerid);//Anpassen!
    GivePlayerMoney(playerid, money-price);//Anpassen!
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, "Du hast bereits einen Vertrag abgeschlossen!");
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, "Dieser Spieler ist nicht online!");
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, "Du hast nicht genug Geld!");
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, "Der Preis muss ueber 3000$ liegen!");
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, "Du darfst kein Hitman sein um einen Auftrag abzuschließen!");
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, "BENUTZE: /contract [Spieler-ID/Teil des Namens] [Preis]");
    }
    return 1;
    }


    ocmd:uncontract(playerid, params[0])
    {
    if(PlayerContractPrice[playerid] != 0)
    {
    new string1[128], pName[MAX_PLAYER_NAME];
    GetPlayerName(PlayerContractTarget[playerid], pName, sizeof pName);
    format(string1, sizeof string1, "[Hitman]Du hast das Kopfgeld auf %s zurueckgezogen!", pName);
    SendClientMessage(playerid, COLOR_GREEN, string1);
    new pName2[MAX_PLAYER_NAME];
    GetPlayerName(playerid, pName2, sizeof pName2);
    format(string1, sizeof string1, "[Hitman]%s hat das Kopfgeld auf %s zurueckgezogen!", pName2, pName);
    for(new i=0;i<MAX_PLAYERS;i++)
    {
    if(isPlayerInFrakt(i,12))
    {
    SendClientMessage(i, COLOR_GREEN, string1);
    }
    }
    new money = GetPlayerMoney(playerid);//Anpassen!
    ResetPlayerMoney(playerid);//Anpassen!
    GivePlayerMoney(playerid, money+PlayerContractPrice[playerid]);//Anpassen!
    PlayerContractPrice[playerid] = 0;
    PlayerContractTarget[playerid] = -1;
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, "Du hast keinen Auftrag abgeschlossen!");
    }
    return 1;
    }


    ocmd:contractlist(playerid, params[0])
    {
    if(isPlayerInFrakt(i,12))
    {
    new string[128];
    new bool:ContractExist;
    for(new a=0;a<MAX_PLAYERS;a++)
    {
    if(PlayerContractPrice[a] != 0)
    {
    ContractExist = true;
    new pName[MAX_PLAYER_NAME];
    GetPlayerName(PlayerContractTarget[a], pName, sizeof pName);
    format(string, sizeof string, "%s(ID: %d): %d$", pName, PlayerContractTarget[a], PlayerContractPrice[a]);
    }
    }
    if(ContractExist == true)
    {
    SendClientMessage(playerid, COLOR_WHITE, "======[Hitman Auftraege]======");
    SendClientMessage(playerid, COLOR_GREEN, string);
    SendClientMessage(playerid, COLOR_WHITE, "==============================");
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, "Es gibt keine Auftraege!");
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, "Du musst ein Hitman sein um alle Auftraege zu sehen!");
    }
    return 1;
    }


    ocmd:find(playerid, params[0])
    {
    new target;
    if(sscanf(params, "u", target))
    {
    if(isPlayerInFrakt(i,12))
    {
    if(IsPlayerConnected(target))
    {
    if(Finding[playerid] == false)
    {
    Finding[playerid] = true;
    new Float:x, Float:y, Float:z;
    GetPlayerPos(target, x,y,z);
    SetPlayerCheckpoint(playerid, x,y,z,2);
    SetTimerEx("DeleteCheckpoint", 15000, false, "playerid", playerid);
    new string[128],pName[MAX_PLAYER_NAME];
    GetPlayerName(target, pName, sizeof pName);
    format(string, sizeof string, "[Hitman]Es wurde ein Marker bei %s erstellt!",pName);
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, "Du suchst bereits jemanden!");
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, "Dieser Spieler ist nicht online!");
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, "Du musst ein Hitman sein um Personen ausfindig zu machen!");
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, "BENUTZE: /find [Spieler-ID/Teil des Namens]");
    }
    return 1;
    }


    forward public DeleteCheckpoint(playerid);
    public DeleteCheckpoint(playerid)
    {
    DisablePlayerCheckpoint(playerid);
    SendClientMessage(playerid, COLOR_GREY, "Der Marker wurde entfernt!");
    return 1;
    }



    Ich habs nicht getestet, poste bitte wenn du Probleme hast ;)
    Musst es dann noch in deinem Login/Register speichern lassen


    MfG

    Ganz oben im Script unter #include


    new Text3D:SpielerText[MAX_PLAYERS];//Variable "SpielerText" für jeden Spieler seperat erstellen
    new bool:TextShowed[MAX_PLAYERS];//Variable "TextShowed" für jeden Spieler seperat erstellen


    Unter OnPlayerCommandText


    if (strcmp("/s", cmdtext, true, 10) == 0)//Wenn /s in den Chat geschrieben wird
    {
    if(TextShowed[playerid] == false)//Abfragen ob der Text nochnicht angezeigt wird
    {
    SpielerText[playerid] = Create3DTextLabel("Gib hier deinen Text ein!", 0xFFFFFFFF, 0.0, 0.0, 0.0, 10, 0, 0);//Den Text erstellen
    Attach3DTextLabelToPlayer(SpielerText[playerid], playerid, 0,0,7);//Den Text über den Spieler setzen
    }
    else //Wenn er schon angezeigt wird
    {
    SendClientMessage(playerid, 0xFFFFFFFF, "Der Text wird bereits angezeigt!");//Fehlermeldung
    }
    }
    if (strcmp("/saus", cmdtext, true, 10) == 0)//Wenn /saus in den Chat geschrieben wird
    {
    if(TextShowed[playerid] == true)//Abfragen ob der Text angezeigt wird
    {
    Delete3DTextLabel(SpielerText[playerid]);//Den Text löschen
    }
    else//Wenn er nicht angezeigt wird
    {
    SendClientMessage(playerid, 0xFFFFFFFF, "Der Text wird nicht angezeigt!");//Fehlermeldung
    }
    }


    Ist ungetestet, hoffe konnte dir helfen.


    //Edit: Hab das mit dem einrücken endlich geschafft :D

    Hallo Breadfish,


    Ich habe einen Timer der 30 Sekunden nach Gamemodestart ausgeführt wird und dann will ich einen Spieler zufällig auswählen lassen und dann wird er zum Zombie (ZombieEscape).


    Ich weiß jetzt nicht wie soetwas geht, ich habe einen Bot drinnen.
    Also nur Spieler und keine Bots sollen ausgewählt werden.


    Hoffe mir kann jemand schnell was herscripten ^^
    Danke im Vorraus.


    MfG