Beiträge von malE

    Erstes Problem:
    Füg die Zeilen mal ganz Oben im Script ein, falls du nämlich GUI-Elemente benutzt kann es daran liegen.


    Zweites Problem:

    C
    killspruch := "test 123"
    1::
    if(IsInChat() || IsDialogOpen())
    {
    	Send, {%A_ThisHotkey%}
    } else {
    	SendChat(killspruch)
    }
    return

    Leider bringt die Variante den Compiler zum crashen.


    Kann eigentlich nicht sein, bei mir funktioniert es problemlos. Genauso wie folgender Code problemlos bei mir läuft.



    #define TEAM_NAME_1 "Cops"


    new const Float:MoneySpawns[][7]={
    {-2335.7568,-2340.2905,-2023.9417,-2027.9861,270.0450,269.2450},//Violet
    {-2279.4812,-2283.4812,-1286.3794,-1294.3794,258.9622,258.3622},//Yellow
    {-2810.7144,-2819.3496,-1493.0504,-1495.6464,139.3078,138.9078},//Brown
    {-2303.8931,-2337.4104,-1607.2054,-1644.9517,483.7031,482.9031}//Main
    };


    main()
    {
    print(TEAM_NAME_1);
    printf("%s", TEAM_NAME_1);

    for(new i=0; i < sizeof(MoneySpawns); i++) printf("[X: %0.2f, Y: %0.2f, Z: %0.2f] [X: %0.2f, Y: %0.2f, Z: %0.2f]", MoneySpawns[i][0], MoneySpawns[i][1], MoneySpawns[i][2], MoneySpawns[i][3], MoneySpawns[i][4], MoneySpawns[i][5]);
    }

    Das Mindestalter für das Kaufen und Verkaufen von Ware ist doch sowieso erst ab 18 erlaubt bei Ebay, oder nicht?

    keine sorge ich bzw. wir sind schon volljährig. wollte nur fragen ob jemand weiß wie man artikel mit fsk 18 verkauft

    jemand nh ahnung wie man bei ebay artikel mit fsk 18 verkaufen kann? meine schwester meint ihr angebot wird automatisch immer gelöscht mit einem hinweis dass das artikel fsk 18 ist.

    Der Code ist auf jeden Fall noch verbesserungswürdig!


    Wenn du sscanf benutzt solltest du immer string Parameter als letzten Parameter vorgeben, da ansonsten nach einem Leerzeichen, ungewollt der nächste Parameter aufgerufen wird.
    Außerdem habe ich noch drei Abfragen hinzugefügt und die Länge deines strings auf 144 Zeichen erweitert, da SendClientMessage() max. 144 Zeichen ausgeben kann.
    Bei einer Abfrage (ist markiert) musst du die Variable auf die Variable umändern, welche den Admin Rang des Spieler speichert.



    ocmd:tban(playerid,params[])
    {
    if(!IsPlayerGM(playerid,2))return 1;
    new pID,string[144],Grund[64],Dauer;
    if(sscanf(params, "uis", pID,Dauer,Grund))return SendClientMessage(playerid, FARBE_ROT, "INFO: /tban [PlayerId] [Dauer (in Minuten)] [Grund]");
    if(pID == INVALID_PLAYER_ID)return SendClientMessage(playerid,FARBE_ROT,"Diese Spieler (ID) existiert nicht.");
    if(pID == playerid)return SendClientMessage(playerid,FARBE_ROT,"Du kannst dich nicht selber Bannen!");
    if(admin(playerid) <= admin(pID))return SendClientMessage(playerid, FARBE_ROT, "Du kannst keinen ranghöheren oder gleichrangigen Admin bannen!"); // variablen unbedingt ändern
    if(Dauer <= 0)return SendClientMessage(playerid, FARBE_ROT, "Ungültige Dauer!");
    if(!strlen(Grund) || strlen(Grund) > sizeof(Grund))return SendClientMessage(playerid, FARBE_ROT, "Ungültiger Grund!");
    format(string,sizeof(string),"INFO: %s wurde von %s %s für %d Minuten gebannt.Grund: %s",getPlayerName(pID),GetGMRang(playerid),getPlayerName(playerid),Dauer,Grund);
    SendClientMessageToAll(FARBE_ROT,string);
    TBan(pID,Grund,Dauer,playerid);
    return 1;
    }

    Du kannst nicht überall die geschweiften Klammern ("{}") benutzen.

    ocmd:aduty(playerid,params[])
    {
    if(!IsPlayerGM(playerid,1)) return 1;
    if(!AdmOnDuty[playerid])
    {
    new string[128];
    format(string,sizeof(string),"* %s ist nun als %s im Dienst! *",getPlayerName(playerid),GetGMRang(playerid));
    SendClientMessageToAll(FARBE_BLAU,string);
    SetPlayerColor(playerid, FARBE_ROT);
    AdmOnDuty[playerid]=true;
    CMDLog(string);
    }
    return 1;
    }

    Ich kann dir nicht sagen, ob es funktioniert, da ich es logischerweise nicht testen kann.



    Du musst allerdings die Variable gPlayerTeamSelection[] umdeklarieren.

    format(nPlate, sizeof(nPlate), "%s%s %d", toupper(playerName[0]), toupper(playerName[1]), PrivateVehicle[playerid][slot][vehID]);
    zu
    format(nPlate, sizeof(nPlate), "%c%c %d", toupper(playerName[0]), toupper(playerName[1]), PrivateVehicle[playerid][slot][vehID]);


    Es macht mehr Sinn eine Funktion dafür zu erstellen, zumal dadurch auch viele unnötige Zeilen gespart werden.
    Außerdem hatte dein Code eins zwei Fehler, die ich zusätzlich behoben habe.



    ocmd:motor(playerid,params[])
    {
    SetTimerEx("Motorstarten",1000,false,"i",playerid);
    return 1;
    }


    public Motorstarten(playerid)
    {
    if(GetPlayerState(playerid)!=PLAYER_STATE_DRIVER)return 1;
    new vID=GetPlayerVehicleID(playerid);
    if(!HatVehEinMotor(GetVehicleModel(vID)))return 1;

    new tmp_motor,tmp_licht,tmp_alarm,tmp_tuer,tmp_mhaube,tmp_kraum,tmp_objective;
    GetVehicleParamsEx(vID,tmp_motor,tmp_licht,tmp_alarm,tmp_tuer,tmp_mhaube,tmp_kraum,tmp_objective);
    if(tmp_motor==1)
    {
    tmp_motor =0;
    format(string,sizeof(string), "((%s: stoppt den Motor und zieht die Handbremse an.))", getPlayerName(playerid));
    SendClientMessageInRangeOfPoint(playerid, FARBE_FUNK, string, 15.0);
    }
    else
    {
    tmp_motor=1;
    format(string,sizeof(string), "((%s: dreht den Zündschlüssel um und startet den Motor.))", getPlayerName(playerid));
    SendClientMessageInRangeOfPoint(playerid, FARBE_FUNK, string, 15.0);
    }
    SetVehicleParamsEx(vID,tmp_motor,tmp_licht,tmp_alarm,tmp_tuer,tmp_mhaube,tmp_kraum,tmp_objective);
    return 1;
    }


    stock SendClientMessageInRangeOfPoint(playerid, color, msg[], Float:range)
    {
    new Float:X, Float:Y, Float:Z;
    GetPlayerPos(playerid, X, Y, Z);

    for(new i = 0, j = GetPlayerPoolSize(); i <= j; i++) {
    if(!IsPlayerConnected(i)) continue;
    if(!IsPlayerInRangeOfPoint(i, range, X, Y, Z)) continue;
    SendClientMessage(i, color, msg);
    }
    return 1;
    }

    So? :S

    if(strcmp(cmd, "/fill", true) == 0)
    {
    new veh = GetPlayerVehicleID(playerid);
    tmp = strtok(cmdtext, idx);

    if(IsAtGasStation(playerid))
    {
    if(!strlen(tmp)) {
    if(!IsPlayerInAnyVehicle(playerid))return SendClientMessage(playerid,COLOR_YELLOW, "Du bist in Keinem Fahrzeug:");
    if(IsANoTachoVehicle(veh))return SendClientMessage(playerid,COLOR_YELLOW," Ein Fahrrad hat doch keinen Tank.");


    for(new i = 0; i < sizeof(TankstellenInfo); i ++)
    {
    if(IsPlayerInRangeOfPoint(playerid,10.0, TankstellenInfo[i][tsEntranceX], TankstellenInfo[i][tsEntranceY], TankstellenInfo[i][tsEntranceZ]))
    {
    if(GetPlayerMoney(playerid) < TankstellenInfo[i][tsEntranceCost])return GameTextForPlayer(playerid, "~r~Du hast nicht genug Geld", 5000, 1);
    {
    if(PlayerInfo[playerid][pPtankkey] != 0)
    {
    if(TankstellenInfo[i][tsLocked] == 1)return SendClientMessage(playerid,COLOR_RED, "Die Tanke hat geschlossen");
    if(TankstellenInfo[i][tsProducts] == 5000)return SendClientMessage(playerid,COLOR_RED, "Die Tankstelle hat kein Benzin mehr");
    if(Refueling[playerid] == 1)return SendClientMessage(playerid, COLOR_RED, "Du bist gerade am tanken...");


    Refueling[playerid] = 1;
    FreezePlayer(playerid);
    SetTimerEx("Fillup",RefuelWait,0, "ii", playerid, i);
    SendClientMessage(playerid,COLOR_WHITE," Dein Fahrzeug wird betankt, Bitte warten....");
    }
    }
    }
    }
    }
    }
    else if(IsPlayerInRangeOfPoint(playerid,90.0, 78.8584, -291.3175, 1.5781))
    {
    new tmpcar = GetPlayerVehicleID(playerid);
    new compcost2 = 50;

    if(PlayerInfo[playerid][pJob] != 22)return SendClientMessage(playerid, COLOR_WHITE, "Du bist kein Trucker");
    if(!strlen(tmp))return SendClientMessage(playerid, COLOR_GRAD1, "FEHLER: /fill [Menge]");


    new vehicleid = GetPlayerVehicleID(playerid);
    if(!IsATruck2(tmpcar))return SendClientMessage(playerid, TEAM_GROVE_COLOR, "Dieses Fahrzeug kann keine Benzin ausliefern.");
    if(!IsTrailerAttachedToVehicle(vehicleid))return SendClientMessage(playerid, COLOR_RED, "Du hast keinen Anhänger dran");


    new typ=GetPlayerHaul(tmpcar);
    if(PlayerHaul2[typ][pLoad2] < PlayerHaul2[typ][pCapasity2])
    {
    new amount;
    amount = strval(tmp);
    if(amount < 1 || amount > 1500)return SendClientMessage(playerid, COLOR_GREY, " Die Menge muss zwischen 1 und 1500 sein !");


    new check= PlayerHaul2[typ][pLoad2] + amount;
    if(check > PlayerHaul2[typ][pCapasity2])
    {
    format(string, sizeof(string), " Du hast das Limit mit %d Benzin erreicht, Benzin: %d.",PlayerHaul2[typ][pCapasity2],PlayerHaul2[typ][pLoad2]);
    return SendClientMessage(playerid, COLOR_GREY, string);
    }

    new cost = amount*compcost2;
    if(GetPlayerMoney(playerid) >= cost)
    {
    PlayerHaul2[typ][pLoad2] += amount;
    format(string, sizeof(string), "Benzin: %d/%d.", PlayerHaul2[typ][pLoad2],PlayerHaul2[typ][pCapasity2]);
    SendClientMessage(playerid, TEAM_GROVE_COLOR, string);
    format(string, sizeof(string), "Du hast %d Benzin für $%d gekauft.", amount,cost);
    SendClientMessage(playerid, TEAM_GROVE_COLOR, string);
    GivePlayerMoney(playerid,-cost);
    PlayerPlaySound(playerid, 1052, 0.0, 0.0, 0.0);
    return 1;
    }
    else
    {
    format(string, sizeof(string), "Du kannst nicht %d Benzin für $%d anfordern!", amount,cost);
    return 1SendClientMessage(playerid, TEAM_GROVE_COLOR, string);
    }
    }
    else
    {
    format(string, sizeof(string), "Benzin: %d/%d.", PlayerHaul2[typ][pLoad2],PlayerHaul2[typ][pCapasity2]);
    return SendClientMessage(playerid, TEAM_GROVE_COLOR, string);
    }
    }
    else
    {
    return SendClientMessage(playerid, COLOR_YELLOW,"Du bist an keiner Tankstelle!");
    }
    return 1;
    }