Beiträge von Quetai

    Die werden mit DOF2 gespeichert...Hier z.B. ist der Befehl um die Freunde zu adden.
    CMD:friend(playerid, params[])
    {
    new giveplayerid;
    if(sscanf(params, "u", giveplayerid)) return SendClientMessage(playerid, 0x33AA33AA, "(*) /friend [playerid]");
    if(playerid == giveplayerid) return SendClientMessage(playerid, 0x33AA33AA, "(*) You cannot be friend of yourself.");
    new USER_FILE[64];
    format(USER_FILE, sizeof(USER_FILE), "SFSUsers/%s.ini", GetPlayerNameEx(playerid));
    if(DOF2_GetInt(USER_FILE, GetPlayerNameEx(giveplayerid)) == 1) return SendClientMessage(playerid, 0x33AA33AA, "(*) You already are friend of this player.");
    new iStr[70];
    format(iStr, sizeof(iStr), "(*) You sent an invitation to %s for a friendship.", GetPlayerNameEx(giveplayerid));
    SendClientMessage(playerid, 0x33AA33AA, iStr);
    format(iStr, sizeof(iStr), "%s wants to become your friend.\nDo you accept?", GetPlayerNameEx(playerid));
    ShowPlayerDialog(giveplayerid, AMIGODIALOG, DIALOG_STYLE_MSGBOX, "Want to be my friend?", iStr, "Yes", "No");
    SetPVarInt(giveplayerid, "AmigoRequest", playerid);
    return 1;
    }


    Und dann:
    if(!response)
    {
    SendClientMessage(GetPVarInt(playerid, "AmigoRequest"), 0x33AA33AA, "(*) The invitation has been declined.");
    DeletePVar(playerid, "AmigoRequest");
    SendClientMessage(playerid, 0x33AA33AA, "(*) You declined the invitation.");
    return 1;
    }
    new USER_FILE[64], FRIEND_FILE[64];
    new giveplayerid = GetPVarInt(playerid, "AmigoRequest");
    format(USER_FILE, sizeof(USER_FILE), "SFSUsers/%s.ini", GetPlayerNameEx(playerid));
    DOF2_SetInt(USER_FILE, GetPlayerNameEx(giveplayerid), 1);
    format(FRIEND_FILE, sizeof(FRIEND_FILE), "SFSUsers/%s.ini", GetPlayerNameEx(giveplayerid));
    DOF2_SetInt(FRIEND_FILE, GetPlayerNameEx(playerid), 1);
    DOF2_SaveFile();
    SendClientMessage(giveplayerid, 0x33AA33AA, "(*) The invitation has been accepted.");
    SendClientMessage(playerid, 0x33AA33AA, "(*) You've accepted the invitation.");
    DeletePVar(playerid, "AmigoRequest");
    }

    Hey Leute.


    Ich hab' ein Waffensystem gemacht, bei den man beim Level up Waffen-Upgradepunkte bekommt und per Befehl seinen Waffenskill verbessern kann etc...Schaut mal:


    //----------------------------Waffenskill---------------------------------------
    if(strcmp(cmd, "/upgradeweapon", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    new waffenid[32];
    new infostring[256];
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    format(string, sizeof(string), "Benutzung: /upgradeweapon [Waffe] (Du hast %d Waffen-Upgradepunkt(e))",PlayerInfo[playerid][gWupgrade]);
    SendClientMessage(playerid, COLOR_WHITE,"=== Upgrades ===");
    SendClientMessage(playerid, COLOR_GREY,string);
    SendClientMessage(playerid, COLOR_WHITE, "Waffen: Deagle, Mp5, M4");


    return 1;
    }
    strmid(waffenid, tmp, 0, strlen(cmdtext), 255);
    if(PlayerInfo[playerid][gWupgrade] > 1)
    {
    if (PlayerInfo[playerid][pLevel] >= 1 && (strcmp(waffenid, "deagle", true, strlen(waffenid)) == 0))
    {
    if(PlayerInfo[playerid][pDeagleskill] < 999)
    {
    PlayerInfo[playerid][pDeagleskill] += 166;
    SetPlayerSkillLevel(playerid, WEAPONSKILL_DESERT_EAGLE, PlayerInfo[playerid][pDeagleskill]);
    format(infostring, 256, "Dein Deagle Skill ist nun %d.",PlayerInfo[playerid][pDeagleskill]);
    PlayerInfo[playerid][gWupgrade]--;
    }
    else
    {
    SendClientMessage(playerid, COLOR_YELLOW, "Dein Deagle Skill hat das Maximum erreicht.");
    return 1;
    }
    }
    else if (PlayerInfo[playerid][pLevel] >= 1 && (strcmp(waffenid, "mp5", true, strlen(waffenid)) == 0))
    {
    if(PlayerInfo[playerid][pMp5skill] < 999)
    {
    PlayerInfo[playerid][pMp5skill] += 166;
    SetPlayerSkillLevel(playerid, WEAPONSKILL_MP5, PlayerInfo[playerid][pMp5skill]);
    format(infostring, 256, "Dein Mp5 Skill ist %d.",PlayerInfo[playerid][pMp5skill]);
    PlayerInfo[playerid][gWupgrade]--;
    }
    else
    {
    SendClientMessage(playerid, COLOR_YELLOW, "Dein Mp5 Skill hat das Maximum erreicht.");
    return 1;
    }
    }
    else if (PlayerInfo[playerid][pLevel] >= 1 && (strcmp(waffenid, "m4", true, strlen(waffenid)) == 0))
    {
    if(PlayerInfo[playerid][pM4Skill] < 999)
    {
    PlayerInfo[playerid][pM4Skill] += 166;
    SetPlayerSkillLevel(playerid, WEAPONSKILL_M4, PlayerInfo[playerid][pM4Skill]);
    format(infostring, 256, "Dein M4 Skill ist nun %d.",PlayerInfo[playerid][pM4Skill]);
    PlayerInfo[playerid][gWupgrade]--;
    }
    else
    {
    SendClientMessage(playerid, COLOR_YELLOW, "Dein M4 Skill hat das Maximum erreicht.");
    return 1;
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, "Unbekanntes Upgrade!");
    return 1;
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, "Du hast 0 Waffen-Upgradepunkte!");
    return 1;
    }
    SendClientMessage(playerid, COLOR_GRAD6, infostring);
    PlayerInfo[playerid][gWupgrade]--;
    }
    return 1;
    }


    Meine Frage:
    Wie schaff ich das, dass ich die Skills in als Textdraw angezeigt bekomme. Ungefähr so vom Aussehen her...
    http://www.neilvandyke.org/weblog/gta-san-andreas-stats.jpg
    Und wenn ich dann /upgradeweapon deagle z.B. mache, soll die Anzeige bei der Deagle um eins weiter...Bis 6 Striche soll das gehen.
    Den Textdraw sollte man dann halt wenn man ein Befehl macht sehen können.^^

    if(dialogid == DIALOG_REGSTEP_3)
    {
    if(response == 1)
    {
    switch (listitem)
    {
    case 0://Deutschland
    {
    PlayerInfo[playerid][pOrigin] = 1;
    SendClientMessage(playerid, COLOR_WHITE, "Du kommst aus Deutschland.");
    SendClientMessage(playerid, COLOR_GREEN, "Dein Account wurde erfolgreich erstellt!");
    SendClientMessage(playerid, COLOR_YELLOW, "Vielen Dank für die Informationen, es folgt das Tutorial.");
    RegistrationStep[playerid] = 0;
    TutTime[playerid] = 1;
    }
    case 1://österreich
    {
    PlayerInfo[playerid][pOrigin] = 2;
    SendClientMessage(playerid, COLOR_WHITE, "Du kommst aus Österreich.");
    SendClientMessage(playerid, COLOR_GREEN, "Dein Account wurde erfolgreich erstellt!");
    SendClientMessage(playerid, COLOR_YELLOW, "Vielen Dank für die Informationen, es folgt das Tutorial.");
    RegistrationStep[playerid] = 0;
    TutTime[playerid] = 1;
    }
    case 2://Schweiz
    {
    PlayerInfo[playerid][pOrigin] = 3;
    SendClientMessage(playerid, COLOR_WHITE, "Du kommst aus der Schweiz.");
    SendClientMessage(playerid, COLOR_GREEN, "Dein Account wurde erfolgreich erstellt!");
    SendClientMessage(playerid, COLOR_YELLOW, "Vielen Dank für die Informationen, es folgt das Tutorial.");
    RegistrationStep[playerid] = 0;
    TutTime[playerid] = 1;
    }
    }
    }
    if(response == 0)
    {
    ShowPlayerDialog(playerid,DIALOG_REGSTEP_3,DIALOG_STYLE_LIST,"Woher kommst du?","Deutschland\nÖsterreich\nSchweiz","Weiter"," ");
    }
    }


    So, danach will ich das so machen können, dass man sich per Pfeiltasten oder andere Tasten, je nach Geschlecht, seinen gewünschten Skin wählen kann...

    Ich hab' da mehrere Fragen zu einem Waffensystem.


    • Wie schaff ich das, dass jede Person Waffenskills besitzt. Jeder Skill der Waffen sollte auf 0 sein.

    • Wenn diese auf 0 sind, können die dann laufen beim schießen? Oder bleiben die stehen?


    • Wie kann man das dann so machen, dass wenn ein Spieler in der Ammunation ist und einen Befehl eingibt dieser dann in eine Schießübung kommt.
    • Nach dieser Schießübung soll der Spieler "Skillpunkte" kriegen. Mit diesen soll er dann auswählen können, welche Waffe bzw. welchen Waffenskill er verbessern möchte. Und ab einer bestimmten Anzahl an Skillpunkten, die einer Waffe gegeben wurde, soll man dann mit der Waffe laufen können beim schießen oder die Waffe zweihändig oder so..


    Ideen & Vorschläge wären nett. :)


    Mit freundlichen Grüßen
    Quetai


    Push: Ich hab' ein Waffensystem gemacht, bei den man beim Level up nun Waffenupgrades bekommt und mit diesen dann seine Skills verbessern kann. Ich hab' das vor so zu machen, dass man ins Ammunation muss und dann ein Befehl eingibt. Dann muss der Spieler 30 Sekunden lang auf Zielscheiben schießen, die immer wieder kommen...Wie schaff ich das?

    public Serverrestart3()
    {
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    SetTimer("Serverrestart4",10000,0);
    SendClientMessageToAll(COLOR_YELLOW,"Der Server wird in 10 Sekunden neu gestartet!");
    FreezePlayer(i);
    SetPlayerPos(i,1466.8364,-1680.0723,20.0469);
    SetPlayerCameraPos(i, 1466.8364,-1680.0723,14.0469);
    SetPlayerCameraLookAt(i,1474.5834,-1697.8983,14.0469);
    }
    }
    Wenn ich /gmx tippe, läuft ein Timer von 60 runter. Bei Sekunde 50 bzw. wenn noch 10 Sekunden bis zum neustart sind, kommt dieser Text: "Der Server wird in 10 Sekunden neu gestartet!" mehr als 1x.
    Woran liegt das?

    Erstmal nice.
    Wie schaff ich das, dass bestimmte Leute, sprich Leute die in Fraktionen sind, nur bestimmte Skins und anders herum, wenn Leute in keiner Fraktion sind nur bestimmte Skins wählen können?

    CMD:myfriends(playerid, params[])
    {
    new count = 0;
    new string[1024];
    new iStr[1024] = "Freunde Online:\n";
    foreach(Player, i)
    {
    new USER_FILE[64];
    format(USER_FILE, sizeof(USER_FILE), "SFSUsers/%s.ini", GetPlayerNameEx(playerid));
    if(DOF2_GetInt(USER_FILE, GetPlayerNameEx(i)) == 1)
    {
    strins(iStr, GetPlayerNameIns(i), strlen(iStr));
    count++;
    }


    }
    if(count == 0)
    {
    format(string,1024,"Name: %s Status: {FF0000}Offline\n",iStr);
    }
    else
    {
    format(string,1024,"Name: %s Status: {00FF28}Online\n",iStr);
    }
    ShowPlayerDialog(playerid,FRIENDS,DIALOG_STYLE_LIST,"Freunde",string,"Ok","");
    return 1;
    }
    Wenn ich /myfriends mache, steht da im Dialog:
    Name: Freunde online
    Status: Online/Offline...


    Ich weiß auch woran das liegt. Das "iStr" ist dieses "Freunde online", aber wie schaff ich das, dass die Freunde da dann angezeigt werden?

    Hey Leute.
    Bevor ihr jetzt meint: "SuFu"...etc. will ich dazu sagen, dass ich schon mehr als genug dazu gesucht, aber leider nichts passendes gefunden habe.


    Undzwar hab' ich das vor so zu machen, dass man nachdem man seine Daten angegeben hat (Männlich, Alter, Woher...), eine Skinauswahl kommt. Sprich, dass je nach Geschlecht man dann (wenn's geht per Pfeiltasten oder so) einen Skin wählen kann. Nachdem man seinen Skin gewählt hat soll das dann direkt "gespeichert" werden.
    Und nachdem Tutorial etc. spawnt man dann mit dem Skin...


    Wie schaff ich das?

    Mach das doch so:
    Man geht zur Tankstelle und mit einem Befehl tankt der dann. Vorher muss der Motor aus sein.
    Nachdem tanken muss man ins Interior/Laden rein und dann bezahlen. Erst nachdem bezahlen, sollte der Tank wieder voll sein...


    Halt vom prinzip her.

    Wäre das so richtig?
    if(wochentag != "Samstag") //Es ist NICHT Sonntag
    {
    if(IsPlayerInRangeOfPoint(playerid,3.0,1791.7289,-1163.3762,23.8281))//Waffenladen
    {
    SetPlayerPos(playerid,833.7824,7.3484,1004.1797);
    SetPlayerInterior(playerid,3);
    SetPlayerVirtualWorld(playerid,3);
    }//ende
    }
    if(wochentag == "Samstag") //Es ist Sonntag
    {
    if(IsPlayerInRangeOfPoint(playerid,3.0,1791.7289,-1163.3762,23.8281))//Waffenladen
    {
    SendClientMessage(playerid, COLOR_GREY, "Sonntags ist das Ammunation geschlossen!");
    }//ende
    }


    if(strcmp(cmd, "/enter", true) == 0)
    {
    if(IsPlayerInRangeOfPoint(playerid,3.0,1791.7289,-1163.3762,23.8281))//Waffenladen
    {
    SetPlayerPos(playerid,833.7824,7.3484,1004.1797);
    SetPlayerInterior(playerid,3);
    SetPlayerVirtualWorld(playerid,3);
    }
    return 1;
    }
    Das ist jetzt mein Befehl um in die Ammunation zu kommen..^^


    Müsste das dann so aussehen? :
    new Year;
    getdate(Year);
    new Days_ZZ = 1, Days_ZD = 5;


    for(new i=0; i<60; i++)
    {
    if(Year == 2012)
    {
    Days_ZZ += 7;
    if(getdate() == Days_ZZ)
    {
    if(strcmp(cmd, "/enter", true) == 0)
    {
    SendClientMessage(playerid, COLOR_GREY, "Sonntags ist der Ammunation geschlossen");
    }
    return 1;
    }
    }
    }