Beiträge von [NeS]ThomasTailor93

    Guten Tag die Damen und Herren ^^


    Ich habe wiedermal Probleme mit meinem Script, diesmal mit dem Megaphone System. Wenn ich, nach dem ich Duty gegangen bin, /m eingebe und dazu einen Text, wird dieser angezeigt. Ich möchte das aber so haben, dass dieser Text nur angezeigt wird, wenn man in einem Fahrzeug ist. Ich habe schon einen versuch getan, dies so festzulegen, aber irgendwie ging das trotzdem nicht. Das ist das, was ich das letzte mal dort geändert habe:



    if(strcmp(cmd, "/megaphone", true) == 0 || strcmp(cmd, "/m", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    new length = strlen(cmdtext);
    while ((idx < length) && (cmdtext[idx] <= ' '))
    {
    idx++;
    }
    new offset = idx;
    new result[64];
    while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
    {
    result[idx - offset] = cmdtext[idx];
    idx++;
    }
    result[idx - offset] = EOS;
    if(OnDuty[playerid]==0)
    {
    SendClientMessage(playerid, COLOR_GREY, "Du bist kein Beamter!");
    return 1;
    }
    if(!strlen(result))
    {
    SendClientMessage(playerid, COLOR_GRAD2, "Benutze: (/m)egaphone [megaphone chat]");
    return 1;
    }
    if(gTeam[playerid] == 2 || IsACop(playerid) || PlayerInfo[playerid][pMember] == 24||PlayerInfo[playerid][pLeader] == 24 || PlayerInfo[playerid][pMember] == 4||PlayerInfo[playerid][pLeader] == 4 || PlayerInfo[playerid][pMember] == 22||PlayerInfo[playerid][pLeader] == 22)
    {
    new modelid;
    new vehicleid;
    modelid = GetVehicleModel(vehicleid);
    if((modelid == 548) || (modelid == 425) || (modelid == 417) || (modelid == 497) || (modelid == 563) || (modelid == 416) || (modelid == 433) || (modelid == 523) || (modelid == 427) || (modelid == 490) || (modelid == 528) || (modelid == 407) || (modelid == 544) || (modelid == 596) || (modelid == 597) || (modelid == 598) || (modelid == 599) || (modelid == 432) || (modelid == 601) || (modelid == 472) || (modelid == 595) || (modelid == 430) || (modelid == 525))
    {
    if(PlayerInfo[playerid][pMember] == 1||PlayerInfo[playerid][pLeader] == 1)
    {
    new currank[64];
    if(PlayerInfo[playerid][pRank] == 1) { currank = "Polizeianwärter"; }
    else { currank = "Polizeianwärter"; }
    format(string, sizeof(string), "[%s %s: %s]", currank, sendername, result);
    ProxDetector(60.0, playerid, string,COLOR_YELLOW,COLOR_YELLOW,COLOR_YELLOW,COLOR_YELLOW,COLOR_YELLOW);
    }
    else if(PlayerInfo[playerid][pMember] == 2||PlayerInfo[playerid][pLeader] == 2)
    {
    format(string, sizeof(string), "[Officer %s:o< %s]", sendername, result);
    ProxDetector(60.0, playerid, string,COLOR_YELLOW,COLOR_YELLOW,COLOR_YELLOW,COLOR_YELLOW,COLOR_YELLOW);
    }
    if(PlayerInfo[playerid][pMember] == 3||PlayerInfo[playerid][pLeader] == 3)
    {
    new currank[64];
    if(PlayerInfo[playerid][pRank] == 1) { currank = "Schütze"; }
    else { currank = "Schütze"; }
    format(string, sizeof(string), "[%s %s: %s]", currank, sendername, result);
    ProxDetector(60.0, playerid, string,COLOR_YELLOW,COLOR_YELLOW,COLOR_YELLOW,COLOR_YELLOW,COLOR_YELLOW);
    }
    if(PlayerInfo[playerid][pMember] == 4||PlayerInfo[playerid][pLeader] == 4)
    {
    new currank[64];
    if(PlayerInfo[playerid][pRank] == 1) { currank = "Sanitätshelfer"; }
    else { currank = "Sanitätshelfer"; }
    format(string, sizeof(string), "[%s %s: %s]", currank, sendername, result);
    ProxDetector(60.0, playerid, string,COLOR_YELLOW,COLOR_YELLOW,COLOR_YELLOW,COLOR_YELLOW,COLOR_YELLOW);
    }
    if(PlayerInfo[playerid][pMember] == 22||PlayerInfo[playerid][pLeader] == 22)
    {
    new currank[64];
    if(PlayerInfo[playerid][pRank] == 1) { currank = "Feuerwehrmann"; }
    else { currank = "Feuerwehrmann"; }
    format(string, sizeof(string), "[%s %s: %s]", currank, sendername, result);
    ProxDetector(60.0, playerid, string,COLOR_YELLOW,COLOR_YELLOW,COLOR_YELLOW,COLOR_YELLOW,COLOR_YELLOW);
    }
    else if(PlayerInfo[playerid][pMember] == 21||PlayerInfo[playerid][pLeader] == 21)
    {
    format(string, sizeof(string), "[FBI Agent %s:o< %s]", sendername, result);
    ProxDetector(60.0, playerid, string,COLOR_YELLOW,COLOR_YELLOW,COLOR_YELLOW,COLOR_YELLOW,COLOR_YELLOW);
    }
    else if(PlayerInfo[playerid][pMember] == 24||PlayerInfo[playerid][pLeader] == 24)
    {
    format(string, sizeof(string), "[O-Amt %s:o< %s]", sendername, result);
    ProxDetector(60.0, playerid, string,COLOR_YELLOW,COLOR_YELLOW,COLOR_YELLOW,COLOR_YELLOW,COLOR_YELLOW);
    }
    printf("%s", string);
    }
    else
    {
    SendClientMessage(playerid, COLOR_GRAD2, " Du musst bei der Polizei/FBI/Bundeswehr sein, um diesen Befehl benutzen zu können !");
    return 1;
    }
    }
    }
    return 1;
    }


    Ich hoffe ihr könnt mir helfen,


    Grüße, Tommi

    Guten Tag die Herren,
    ich suche ein /tban System, welches ich an ein Godfather Edit Script knüpfen kann. Dieses sollte einen Spieler in STUNDEN bannen können und diesen auch nicht auf den Server lassen (also nicht sowas wie auf Server joinen aber nicht spawnen und sowas). Das Script sollte diesen Spieler ggf. auch selbst wieder entbannen nach einer gewissen Zeit. Ich hoffe ihr könnt mir helfen.


    Grüße, Tommi

    Falls du auf KeyWeb stößt: KeyWeb bietet eine Setupgebühr von 99€ an - ist zwar etwas weniger als Hetzner, doch KeyWeb hat ihr eigenes Rechenzentrum nicht so wie Hetzner usw. wie meistens ihre Racks bei MyLoc u. Ä. mieten^^
    Empfehlen würde ich Server4You und KeyWeb, auch weil ich dort zufriedener Kunde bin und man dort die Leistung bekommt, die man haben will..


    //edit 1: etwas hinzugefügt
    //edit 2: Leertaste berichtigt

    Hm, verstehe ich nicht so recht...wenn ich /stats eingebe, dann Enter drücke, komme ich auf die zweite Seite. Wenn ich dann ebenfalls wieder Enter drücke, soll ich dann auf die dritte und letzte Seite kommen. Im Script habe ich das jetzt so gemacht, wenn ich das richtig verstanden habe:



    if(dialogid==3000)
    {
    if(response==1)
    {
    ......
    }
    if(response==0)
    {
    {

    Nice, funktioniert. Danke dir. Wenn ich Probleme habe, werde ich wieder schreiben :P


    Grüße


    //EDIT 1:


    So, habe jetzt fleißig dran gearbeitet. Da ich jetzt das zweite Dialogfenster auch vollgeklatscht habe, wollte ich nun ein drittes createn lassen. Dazu habe ich einfach das definiert:



    if(dialogid==3000)
    {
    if(response==1)
    {
    new coordsstring[1000];
    format(coordsstring, sizeof(coordsstring),"Telefon:.....",.....);
    ShowPlayerDialog(playerid,3001, DIALOG_STYLE_MSGBOX,"Deine Statistik",coordsstring,"Weiter","Schließen");
    }
    if(response==0)
    {
    new coordsstring[1000];
    format(coordsstring, sizeof(coordsstring),"Spielzeit:......",......);
    ShowPlayerDialog(playerid,3002, DIALOG_STYLE_MSGBOX,"Deine Statistik",coordsstring,"Ok","Schließen");
    }


    Aber leider funktioniert das nicht so, wie ich das möchte, denn es wird nur ein neues Fenster gecreatet. An was kann das liegen?


    Grüße


    //EDIT 2: Die Definitionen von den Stats bei format habe ich nur abgekürzt, da es sonst zu lang ist.

    Uhhh, habs kapiert...ist ja doch eigtl. ziemlich einfach. Mal gucken ob es so funktioniert, wie es sein sollte..


    //Edit: Also, ich habe das jetzt so eingefügt, aber wenn ich es compile, kommt ein Error, von wegen undefinied Symbol so und so (Informationen von den Stats). Soll ich diese Informationen nun auch unter OnDialogResponse definieren?

    Guten Tag mal wieder,
    ich habe das jetzt einigermaßen hinbekommen, nur bekomme ich eine ärgerliche Meldung, nämlich die, dass zu viele Zeichen in einer Zeile sind. Nun möchte das nun Scripten, sodass, wenn man /Stats eingibt, sich ein Fenster öffnet, dann man auf weiter klicken kann sodass man dann auf auf weiteres Fenster gelangt, in dem die weiteren Informationen enthalten sind. Ich hatte schonmal etwas rumgesucht, und sah da was mit dialogid, aber ich habe das leider nicht so recht verstanden. Was muss ich machen, damit dies funktioniert? Hier ist mein ShowPlayerDialog in gekürzter Fassung:



    new coordsstring[1000];
    format(coordsstring, sizeof(coordsstring),"Personalien: Name: %s....",name);
    ShowPlayerDialog(playerid,3000, DIALOG_STYLE_MSGBOX,"Deine Statistik",coordsstring,"Ok","Schließen");


    Grüße



    //Edit 1: PWN-Code untereinander formatiert

    Hi nochmals,
    nachdem ich jetzt einigermaßen alles hinbekommen habe, damit es so wird, wie es sein sollte, kam jetzt nun ein neues Problem. Ab einer bestimmten Zeile werden keine Daten mehr angezeigt aber ich weiß nicht warum. Wisst ihr vielleicht an was das liegen könnte?


    Grüße


    /edit 1: Rechtschreibung D:

    Hi,
    ich habe jetzt die Stats ein wenig gekürzt. Es sieht jetzt nun wie folgt aus im Script:

    new coordsstring[256];
    format(coordsstring, sizeof(coordsstring),"Übersicht des Accounts:\nPersonalien:\nName: %s Alter: %d\nGeschlecht: %s\nPartner: %s Leben: %.1f\nLevel: %d\nRespektpunkte: %d/%d",name,age,married,shealth+50,level,exp,expamount);
    ShowPlayerDialog(playerid,3000, DIALOG_STYLE_MSGBOX,"Deine Statistik",coordsstring,"Ok","Schließen");


    Aber wenn ich jetzt Ingame /Stats mache, dann sieht es wie folgt aus:


    Es sieht zwar jetzt schon besser aus als vorher, aber die Fenstergröße ist immernoch die gleiche wie die von gestern. An was kann das liegen?


    Grüße

    Hey,
    ich möchte die Stats in einem ShowPlayerDialog erstellen. Ich habe folgendes schon im Script:

    new coordsstring[10][256],string[256];
    format(coordsstring[0], sizeof(coordsstring),"Übersicht des Accounts:");
    format(coordsstring[1], sizeof(coordsstring),"Personalien: Name: %s Alter: %d" ,name,age);
    format(coordsstring[2], sizeof(coordsstring),"Geschlecht: %s",atext);
    format(coordsstring[3], sizeof(coordsstring),"Partner: %s Leben: %.1f",married,shealth+50);
    format(coordsstring[4], sizeof(coordsstring),"Level: %d",level);
    format(coordsstring[5], sizeof(coordsstring),"Respektpunkte: %d/%d",exp,expamount);
    format(string,sizeof(string),"%s\n%s\n%s\n%s\n%s\n%s", coordsstring[0],coordsstring[1],coordsstring[2],coordsstring[3],coordsstring[4],coordsstring[5]);
    ShowPlayerDialog(playerid,1251, DIALOG_STYLE_MSGBOX,"Deine Statisik",string,"Ok","Schließen");


    Nun, das Fenster wird erstellt, aber leider ist die Fenstergröße ziemlich klein (so wie ein Allgemeines Loginfenster). Ich weiß nicht an was da liegen könnte. Ich hoffe ihr könnt mir helfen.


    Grüße

    Hallo liebe Brotfische!


    Ich Scripte zurzeit aus Langeweile an einem RealLife Server rum und will nun einen Fraktionspayday erstellen. Ich habe die anfänglichen Schritte gemacht, sodass der Spieler einer Fraktion einen bestimmten Geldwert bekommt. Nun, das Problem ist, der Geldwert wird auf die Hand ausgezahlt und wenn man dann einen Relog gemacht, so ist das Geld fort. Nun möchte ich das so Scripten, dass das Geld auf die Bank überwiesen wird und somit das Geld gespeichert wird. Vllt kann man mir die anfänglichen Schritte zeigen oder einen Scriptteil zeigen, den ich nur einfügen muss. Hier ist mein aktueller Payday:


    public PayDay()
    {
    new string[128];
    new interest;
    new rent = 0;
    new playerid;
    for(new i = 0; i <MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    if(PlayerInfo[i][pLevel] > 0)
    {
    if(MoneyMessage[i]==1)
    {
    SendClientMessage(i, COLOR_RED, "Du hast deine Schulden nicht bezahlt und sitzt dafür nun im Knast!");
    GameTextForPlayer(i, "~r~Busted!", 2000, 1);
    SetPlayerInterior(i, 6);
    PlayerInfo[i][pInt] = 6;
    SetPlayerPos(i, 264.6288,77.5742,1001.0391);
    PlayerInfo[i][pJailed] = 1;
    SetPlayerSkin(i, 62);
    ResetPlayerWeapons(i);
    ResetPlayerMoney(i);
    WantedPoints[i] = 0;
    PlayerInfo[i][pJailTime] = 200;
    format(string, sizeof(string), "Du bist für %d Sekunden Verhaftet! Kaution: Keine", PlayerInfo[i][pJailTime]);
    SendClientMessage(i, COLOR_WHITE, string);
    }
    new playername2[MAX_PLAYER_NAME];
    GetPlayerName(i, playername2, sizeof(playername2));
    new key = PlayerInfo[i][pPhousekey];
    if(key != 255)
    {
    rent = HouseInfo[key][hRent];
    if(strcmp(playername2, HouseInfo[key][hOwner], true) == 0)
    {
    rent = 0;
    }
    else if(rent > GetPlayerMoney(i))
    {
    PlayerInfo[i][pPhousekey] = 255;
    SendClientMessage(i, COLOR_WHITE, "Du hast deine Miete nicht bezahlt und wurdest rausgeschmissen!");
    rent = 0;
    }
    HouseInfo[key][hTakings] = HouseInfo[key][hTakings]+rent;
    }
    new tmpintrate;
    if (key != 255 && strcmp(playername2, HouseInfo[key][hOwner], true) == 0)
    {
    if(PlayerInfo[i][pDonateRank] > 0) { tmpintrate = intrate+4; }
    else { tmpintrate = intrate+2; }
    }
    else
    {
    if(PlayerInfo[i][pDonateRank] > 0) { tmpintrate = 3; }
    else { tmpintrate = 1; }
    }
    if(PlayerInfo[i][pPayDay] >= 5)
    {
    Tax += TaxValue;
    PlayerInfo[i][pAccount] -= TaxValue;
    new checks = PlayerInfo[i][pPayCheck] / 5;
    if(PlayerInfo[i][pDonateRank] > 0)
    {
    new bonus = PlayerInfo[i][pPayCheck] / 10;
    checks += bonus;
    }
    new ebill = (PlayerInfo[i][pAccount]/10000)*(PlayerInfo[i][pLevel]);
    ConsumingMoney[i] = 1;
    GivePlayerMoney(i, checks);
    if(PlayerInfo[i][pAccount] > 0)
    {
    PlayerInfo[i][pAccount] -= ebill;
    SBizzInfo[4][sbTill] += ebill;
    }
    else
    {
    ebill = 0;
    }
    interest = (PlayerInfo[i][pAccount]/1000)*(tmpintrate);
    PlayerInfo[i][pExp]++;
    PlayerPlayMusic(i);


    SendClientMessage(i, COLOR_LIGHTBLUE, "|~~~~~~~~~| Zahltag |~~~~~~~~~|");
    format(string, sizeof(string), " Gehalt: $%d Steuern: -$%d", checks, TaxValue);
    SendClientMessage(i, COLOR_WHITE, string);
    if(PlayerInfo[i][pPhousekey] != 255 || PlayerInfo[i][pPbiskey] != 255)
    {
    format(string, sizeof(string), " Nebenkosten: -$%d", ebill);
    SendClientMessage(i, COLOR_GRAD1, string);
    }
    if(PlayerInfo[i][pHandyVer] == 1)
    {
    SendClientMessage(i,COLOR_GRAD2," Handyvertrag: -$100");
    GivePlayerMoney(i, -100);
    }
    format(string, sizeof(string), " Zinssatz: 0.%d Prozent",tmpintrate);
    SendClientMessage(i, COLOR_GRAD2, string);
    format(string, sizeof(string), " Zinsen : $%d", interest);
    SendClientMessage(i, COLOR_GRAD2, string);
    SendClientMessage(i, COLOR_LIGHTBLUE, "|~~~~~~~~~~~~~~~~~~~~~~~~~~~|");
    format(string, sizeof(string), " Neuer Kontostand: $%d", PlayerInfo[i][pAccount]);
    SendClientMessage(i, COLOR_GRAD2, string);
    format(string, sizeof(string), " Miete: -$%d", rent);
    SendClientMessage(i, COLOR_GRAD2, string);
    if(PlayerInfo[i][pHotel] == 2 || PlayerInfo[i][pHotel] == 1 )
    {
    GivePlayerMoney(i,-200);
    format(string, sizeof(string), " Hotelkosten: -$200");
    SendClientMessage(i, COLOR_GRAD2, string);
    }
    format(string, sizeof(string), "~y~ Zahltag!~w~ Gehalt~n~~g~ $%d",checks);
    GameTextForPlayer(i, string, 5000, 1);
    //FRAKTIONSPAYDAY MTBNEU
    if (PlayerInfo[playerid][pMember] == 3 || PlayerInfo[playerid][pLeader] == 3)
    {
    if(PlayerInfo[i][pRank] == 1)
    {
    SendClientMessage(i,COLOR_YELLOW,"Du hast Lohn bekommen!");
    GivePlayerMoney(i,650);
    }
    if(PlayerInfo[i][pRank] == 2)
    {
    SendClientMessage(i,COLOR_YELLOW,"Du hast Lohn bekommen!");
    GivePlayerMoney(i,850);
    }
    if(PlayerInfo[i][pRank] == 3)
    {
    SendClientMessage(i,COLOR_YELLOW,"Du hast Lohn bekommen!");
    GivePlayerMoney(i,1080);
    }
    if(PlayerInfo[i][pRank] == 4)
    {
    SendClientMessage(i,COLOR_YELLOW,"Du hast Lohn bekommen!");
    GivePlayerMoney(i,1550);
    }
    if(PlayerInfo[i][pRank] == 5)
    {
    SendClientMessage(i,COLOR_YELLOW,"Du hast Lohn bekommen!");
    GivePlayerMoney(i,1800);
    }
    if(PlayerInfo[i][pRank] == 6)
    {
    SendClientMessage(i,COLOR_YELLOW,"Du hast Lohn bekommen!");
    GivePlayerMoney(i,50000);
    }
    }
    //FRAKTIONSPAYDAY MTBNEU
    rent = 0;
    PlayerInfo[i][pPayDay] = 0;
    PlayerInfo[i][pPayCheck] = 0;
    PlayerInfo[i][pConnectTime] += 1;
    if(PlayerInfo[i][pLevel] >= 0)
    {
    new nxtlevel = PlayerInfo[i][pLevel]+1;
    new expamount = nxtlevel*levelexp;
    new infostring[256];
    if (PlayerInfo[i][pExp] < expamount)
    {
    format(infostring, 256, " Du besitzt nun %d Respektpunkte!",PlayerInfo[i][pExp]);
    SendClientMessage(i, COLOR_GRAD1, infostring);
    }
    else
    {
    format(string, sizeof(string), "~g~LEVEL UP~n~~w~Du bist jetzt Level %d", nxtlevel);
    PlayerPlaySound(i, 1052, 0.0, 0.0, 0.0);
    PlayerPlayMusic(i);
    PlayerInfo[i][pLevel]++;
    if(PlayerInfo[i][pDonateRank] > 0)
    {
    PlayerInfo[i][pExp] -= expamount;
    new total = PlayerInfo[i][pExp];
    if(total > 0)
    {
    PlayerInfo[i][pExp] = total;
    }
    else
    {
    PlayerInfo[i][pExp] = 0;
    }
    }
    else
    {
    PlayerInfo[i][pExp] = 0;
    }
    }
    }
    if(PlayerInfo[i][pDonateRank] > 0)
    {
    PlayerInfo[i][pPayDayHad] += 1;
    if(PlayerInfo[i][pPayDayHad] >= 5)
    {
    PlayerInfo[i][pExp]++;
    PlayerInfo[i][pPayDayHad] = 0;
    }
    }
    }
    else
    {
    SendClientMessage(i, COLOR_WHITE, "* Du hast nicht lang genug gespielt um den Payday zu erhalten.");
    }
    }
    }
    }
    Checkprop();
    return 1;
    }



    Ich hoffe mir kann jemand helfen.


    Gruß, Tommi