Beiträge von aytef

    Hallöchen Leute,
    ich habe versucht 3 Textdraws anklickbar zu machen, aber es funktioniert nicht wirklich.
    Erst habe ich versucht die Textdraws ohne TextDrawTextSize anzupassen, was aber dazu geführt hat, dass der anklickbare Bereich viel zu groß war und sich damit die anderen Textdraws überschneideten.
    Dann habe ich mit TDEditor versucht den anklickbaren Bereich festzulegen, in dem ich Textboxen erstellt habe und die Koordinaten, die dabei rauskamen dort einzusetzen. Jetzt kann ich aber keine der Textdraws mehr benutzen.


    Hier ist einmal der Textdraw-Code:

    BINCOdraw[0] = TextDrawCreate(254.098800, 370.740905, "<");
    TextDrawLetterSize(BINCOdraw[0], 0.400000, 1.600000);
    TextDrawTextSize(BINCOdraw[0], 266.098846, 0.000000);
    TextDrawAlignment(BINCOdraw[0], 1);
    TextDrawColor(BINCOdraw[0], -1);
    TextDrawSetShadow(BINCOdraw[0], 0);
    TextDrawSetOutline(BINCOdraw[0], -1);
    TextDrawBackgroundColor(BINCOdraw[0], 255);
    TextDrawFont(BINCOdraw[0], 2);
    TextDrawSetProportional(BINCOdraw[0], 1);
    TextDrawSetShadow(BINCOdraw[0], 0);
    TextDrawSetSelectable(BINCOdraw[0], true);


    BINCOdraw[1] = TextDrawCreate(376.738494, 370.185455, ">");
    TextDrawLetterSize(BINCOdraw[1], 0.400000, 1.600000);
    TextDrawTextSize(BINCOdraw[1], 387.405181, 0.000000);
    TextDrawAlignment(BINCOdraw[1], 1);
    TextDrawColor(BINCOdraw[1], -1);
    TextDrawSetShadow(BINCOdraw[1], 0);
    TextDrawSetOutline(BINCOdraw[1], -1);
    TextDrawBackgroundColor(BINCOdraw[1], 255);
    TextDrawFont(BINCOdraw[1], 2);
    TextDrawSetProportional(BINCOdraw[1], 1);
    TextDrawSetShadow(BINCOdraw[1], 0);
    TextDrawSetSelectable(BINCOdraw[1], true);

    BINCOdraw[2] = TextDrawCreate(288.832702, 368.067016, "NEHMEN");
    TextDrawLetterSize(BINCOdraw[2], 0.391666, 2.002370);
    TextDrawTextSize(BINCOdraw[2], 354.499389, 0.000000);
    TextDrawAlignment(BINCOdraw[2], 1);
    TextDrawColor(BINCOdraw[2], -1);
    TextDrawSetShadow(BINCOdraw[2], 0);
    TextDrawSetOutline(BINCOdraw[2], 1);
    TextDrawBackgroundColor(BINCOdraw[2], 255);
    TextDrawFont(BINCOdraw[2], 2);
    TextDrawSetProportional(BINCOdraw[2], 1);
    TextDrawSetShadow(BINCOdraw[2], 0);
    TextDrawSetSelectable(BINCOdraw[2], true);


    Ich hoffe, mir könnte gerade jemand helfen. ?(

    Yes, das funktioniert wunderbar. :D
    Gerade schnell ausprobiert, boah ist das geil. :D Dann muss ich ja nicht mehr die ganzen Befehle, die über den Chat gehen nicht so aufwendig in Dialoge konvertieren. :D


    EDIT:
    Jeffry:
    Kleine Frage: Ich versuche ein Befehl, der ziemlich lang von der Benutzung ist, auch so zu konvertieren. Nur kriege ich dabei ein Warning..
    Der Befehl: /hausgun [Get/Dump][Waffenname][Munition]
    Meine Theorie: cmd_hausgun(playerid,"get", inputtext);
    Warning: warning 202: number of arguments does not match definition

    Passt, danke! :D
    Jeffry: Hab da noch zwei Fragen:
    Ich versuche mit zcmd einen bereits erstellten Befehl nochmal im Script aufzurufen. Ist das so richtig? Denn ich kriege immer Warnungen beim Compilen..


    cmd_allerauswerfen(playerid);
    cmd_rauswerfen(playerid);
    cmd_mieter(playerid);
    warning 202: number of arguments does not match definition
    -


    Das gleiche gilt nochmal bei einem anderen Befehl, wo ich den inputtext benutzen möchte.
    Befehl für den Dialog:

    Spoiler anzeigen

    COMMAND:rauswerfen(playerid,params[])
    {
    if(ImTutorial[playerid] != 0)return SendClientMessage(playerid,GRAU,"Du kannst keine Befehle nutzen,da du im Tutorial bist.");
    if(GetPVarInt(playerid,"Eingeloggt") == 0)return SendClientMessage(playerid,GRAU,"Du bist nicht eingeloggt!");
    if(Spieler[playerid][pAWAYFROMKEYBOARD] == 1)return SendClientMessage(playerid,WRONGCMD,"Du bist im AFK-Modus und kannst somit keine Befehle nutzen."),SendClientMessage(playerid,WRONGCMD,"BENUTZE: /back");
    if(Spieler[playerid][pInPrison] == 1)return SendClientMessage(playerid,GRAU,"Du bist im Prison.");
    if(Spieler[playerid][pDeath] == 1)return SendClientMessage(playerid,GRAU,"Du bist verletzt.");
    if(Spieler[playerid][pJailed] != 0)return SendClientMessage(playerid,GRAU,"Du bist im Gefängnis.");
    if(Spieler[playerid][pTazerd] == 1)return SendClientMessage(playerid,GRAU,"Du bist K.O/getazert.");
    if(Spieler[playerid][pCuffed] == 1)return SendClientMessage(playerid,GRAU,"Du bist gefesselt.");
    ShowPlayerDialog(playerid,DIALOG_MIETERRAUSWERFEN,DIALOG_STYLE_INPUT,"Hausverwaltung - Mieter kündigen","Welchen Mieter möchtest du kündigen?\nBitte gebe die ID oder den Spielernamen ein!","Auswählen","Abbrechen");
    return 1;
    }

    Spoiler anzeigen

    Befehl für die Funktion:
    COMMAND:rauswerfenplayer(playerid,params[])
    {
    if(ImTutorial[playerid] != 0)return SendClientMessage(playerid,GRAU,"Du kannst keine Befehle nutzen,da du im Tutorial bist.");
    if(GetPVarInt(playerid,"Eingeloggt") == 0)return SendClientMessage(playerid,GRAU,"Du bist nicht eingeloggt!");
    if(Spieler[playerid][pAWAYFROMKEYBOARD] == 1)return SendClientMessage(playerid,WRONGCMD,"Du bist im AFK-Modus und kannst somit keine Befehle nutzen."),SendClientMessage(playerid,WRONGCMD,"BENUTZE: /back");
    if(Spieler[playerid][pInPrison] == 1)return SendClientMessage(playerid,GRAU,"Du bist im Prison.");
    if(Spieler[playerid][pDeath] == 1)return SendClientMessage(playerid,GRAU,"Du bist verletzt.");
    if(Spieler[playerid][pJailed] != 0)return SendClientMessage(playerid,GRAU,"Du bist im Gefängnis.");
    if(Spieler[playerid][pTazerd] == 1)return SendClientMessage(playerid,GRAU,"Du bist K.O/getazert.");
    if(Spieler[playerid][pCuffed] == 1)return SendClientMessage(playerid,GRAU,"Du bist gefesselt.");
    ReturnPropertyData(playerid);
    new namestring[24],query[128],string[128],haus = Spieler[playerid][pReturnPropertyDataHaus],count = Spieler[playerid][pReturnPropertyDataHausCount];
    if(count == 0)return SendClientMessage(playerid,GRAU,"Du besitzt kein Haus.");
    if(haus == 0)return SendClientMessage(playerid,GRAU,"Du bist nicht in/an deinem Haus.");
    if(sscanf(params,"s[24]",namestring))return SendClientMessage(playerid,WRONGCMD,"BENUTZE: /rauswerfen [Mieter]");
    new pID = GetPlayerID(namestring);
    if(pID == -1)
    {
    format(query,sizeof(query),"SELECT * FROM "#SQL_TAG"_account_main WHERE HausMieter='%d'",haus);
    mysql_function_query(MySqlConnection,query,true,"OnQueryFinish2","ssiiii",query,namestring,_SQL_MIETER_KICK,haus,playerid,MySqlConnection);
    return 1;
    }
    if(Spieler[pID][pRentHome] == haus)return SendClientMessage(playerid,GRAU,"Spieler ist nicht bei dir eingemietet.");
    Spieler[pID][pSpawn] = 0;
    HausInfo[haus][haus_eingemitetenzaehler]--;
    format(string,sizeof(string),"Du hast %s aus deinem Haus geworfen! Mieterslots %i/%i",namestring,HausInfo[haus][haus_eingemitetenzaehler],HausInfo[haus][haus_slots]);
    SendClientMessage(playerid,GELB,string);
    UpdateHausLabel(haus,2);//funktion 1 wenn das haus ohne besitzer ist,funktion 2 wenn das biz mit besitzer ist
    return 1;
    }

    Spoiler anzeigen
    Bei OnDialogResponse

    case DIALOG_MIETERRAUSWERFEN:
    {
    if(response == 0)return 1;
    else
    {
    cmd_rauswerfenplayer(playerid, inputtext);
    }
    return 1;
    }

    Schnelle Frage:
    Ich benutze zcmd als Befehlprozessor und wollte ein Befehl, den ich bereits erstellt habe nochmal aufrufen per OnPlayerCommandText.
    Aber da ja zcmd das nicht mehr benutzt, weiß ich nicht was der nun benutzt. Habt ihr ne Idee?
    Weil, wenn ich das versuche, geht der Command Ingame nicht.


    Beispiel:
    OnPlayerCommandText(playerid,"/housecontrol sell");

    Guten Moin,
    ich habe eine If-Abfrage aus einem Code entfernt und habe folgenden Fehler bekommen: error 029: invalid expression, assumed zero
    Die Sache ist aber, ich finde den Fehler in dem Code nicht.


    Die Zeile, die als fehlerhaft gilt.

    else (das else sollte angeblich falsch sein)
    {
    if(Spieler[i][pSnow] == 1)
    {
    Spieler[i][pSnow] = 0;
    StopPlayerObject(i,Spieler[i][pHaveSnow]);
    DestroyPlayerObject(i,Spieler[i][pHaveSnow]);
    }
    SetPlayerTime(i,23,59);
    SetPlayerWeather(i,16);
    }


    Für die ganze Funktion, habe ich das ganze nochmal hochgeladen.
    http://pastebin.com/La3jKhnR


    Jeffry: