Automatisch Contract vergabe vom Sever frage

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Guten Tag, ich habe eine Frage wie füge ich ein dass jede 30 Minuten ein Automatischer Contract vom Sever kommt?


    Das ist mein /contract System



    if(strcmp(cmd, "/contract", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, COLOR_GRAD1, "Benutze: /contract [playerid] [Betrag]");
    return 1;
    }
    giveplayerid = ReturnUser(tmp);
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, COLOR_GRAD1, "Benutze: /contract [playerid] [Betrag]");
    return 1;
    }
    moneys = strval(tmp);
    if(moneys < 3000 || moneys > 1000000) { SendClientMessage(playerid, COLOR_GREY, " Die Vertragssumme muss mindestens $3000-, aber nicht mehr als $1.000.000 betragen!"); return 1; }
    if(PlayerInfo[playerid][pLevel] < 1)
    {
    SendClientMessage(playerid, COLOR_GRAD1, "Du musst mindestens Level 3 haben um einen Vertrag zu erstellen.");
    return 1;
    }
    if (IsPlayerConnected(giveplayerid))
    {
    if(giveplayerid != INVALID_PLAYER_ID)
    {
    if(PlayerInfo[giveplayerid][pMember] == 8 && PlayerInfo[playerid][pLeader] == 8)
    {
    SendClientMessage(playerid, COLOR_GREY, " Du kannst keine Verträge mit deiner eigenen Agentur abschließen!");
    return 1;
    }
    else if(PlayerInfo[giveplayerid][pLeader] == 8 && PlayerInfo[playerid][pMember] == 8)
    {
    SendClientMessage(playerid, COLOR_GREY, " Du kannst keine Verträge mit deiner eigenen Agentur abschließen!");
    return 1;
    }
    else if(PlayerInfo[giveplayerid][pMember] == 8||PlayerInfo[giveplayerid][pLeader] == 8)
    {
    SendClientMessage(playerid, COLOR_GREY, " Du kannst keinen Hitman unter Vertrag nehmen !");
    return 1;
    }
    if(giveplayerid == playerid) { SendClientMessage(playerid, COLOR_GREY, "Du kannst dich nicht selber unter Vertrag nehmen!"); return 1; }
    GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
    GetPlayerName(playerid, sendername, sizeof(sendername));
    playermoney = GetPlayerMoney(playerid);
    if (moneys > 0 && playermoney >= moneys)
    {
    GivePlayerMoney(playerid, (0 - moneys));
    PlayerInfo[giveplayerid][pHeadValue]+=moneys;
    format(string, sizeof(string), "%s möchte das ein Hitman die Zielperson: %s für $%d tötet.",sendername, giveplayer, moneys);
    SendFamilyMessage(8, COLOR_YELLOW, string);
    format(string, sizeof(string), "* Du hast einem Hitman den Auftrag zur Beseitigung von %s für $%d erteilt.",giveplayer, moneys);
    SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
    PlayerPlaySound(playerid, 1052, 0.0, 0.0, 0.0);
    }
    else
    {
    SendClientMessage(playerid, COLOR_GRAD1, " Falsche Angaben!");
    }
    }
    }
    else
    {
    format(string, sizeof(string), " %d ist kein Aktiver Spieler.", giveplayerid);
    SendClientMessage(playerid, COLOR_GRAD1, string);
    }
    }
    return 1;
    }

  • Hallo,
    das machst du ganz einfach.
    Du erstellst eine Funktion (Public) die alle 30 min aufgerufen wird.
    Dies machst du mit einem Timer.
    Mit dieser Funktion kannste 2 Spieler Random Ziehen.


    //Nutzung:
    new a,b;
    GetRandomPlayer(a,b);
    //in a und b steht dann die playerid von einem random Spieler!
    //Wenn 2 Leute online sind, gibt es nur ein Ergebnis und das steht in a
    //Sobald du aber 2 Ergebnisse haben willst, steht es in a und b
    //Wenn nur 1 Ergebnis da ist, ist b = 0
    stock GetRandomPlayer(&first, &sec) {
    for(new i,list[MAX_PLAYERS],idx; i<MAX_PLAYERS; i++) {
    if(IsPlayerConnected(i)) list[idx] = i,idx++;
    if(i == MAX_PLAYERS-1) {
    if(idx < 2) break;
    else if(idx == 2) return first = list[random(idx)],0;
    else {
    first = list[random(idx)];
    for(;;) {
    sec = list[random(idx)];
    if(first != sec) return 0;
    }
    }
    }
    }
    return 0;
    }


    Dann kannst die Headvalue des Spielers hochmachen. (Kannste ja selber anpassen wie du willst.
    Falls du nicht ganz weißt wie du starten sollst schreib es hier ich erläutere es dir dann genauer.


    Gruß

  • Es würde auch sowas reichen:


    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Es würde auch sowas reichen:



    Jetzt bekomme ich immer Pawno funktioniert nicht mehr :(