Beiträge von Marksman

    if(strcmp(cmd, "/kopfgeld", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, COLOR_GRAD1, "Benutze: /kopfgeld [playerid] [Betrag]");
    return 1;
    }
    giveplayerid = ReturnUser(tmp);
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, COLOR_GRAD1, "Benutze: /kopfgeld [playerid] [Betrag]");
    return 1;
    }
    moneys = strval(tmp);
    if(moneys < 10000 || moneys > 100000) { SendClientMessage(playerid, COLOR_GREY, " Die Vertragssumme muß mindestens $10000-, aber nicht mehr als $100000 betragen!"); return 1; }
    if(PlayerInfo[playerid][pLevel] < 3)
    {
    SendClientMessage(playerid, COLOR_GRAD1, "Du mußt 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] == 9||PlayerInfo[giveplayerid][pLeader] == 9)
    {
    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;
    }



    was ist dieses " tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))" ?


    kann mir jemand diesen Befehl auf OCMD und sccanf umschreiben?

    Hier mein CMD


    ocmd:taze(playerid,params[])
    {
    if(!isPlayerInFrakt(playerid,5))return 0;
    new dieb;
    new string[128];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    if(sscanf(params,"u",playerid,dieb))return SendClientMessage(playerid,hellblau,"/taze [Spieler]");
    format(string, sizeof(string),"%s schießt mit dem Tazer auf dich!",name);
    TogglePlayerControllable(playerid,0);
    SendClientMessage(playerid,hellblau,string);
    SetTimer("frei",1000*60*2,false);
    return 1;
    }




    Ich möchte das er nur in einer reichweite von 3 metern tazern kann.
    ich weis das es mit IsPlayerInRangeOfPoint geht aber bei mir funktoniert es nie richtig. -.-



    danke im voraus :)


    // satz hinzugefügt

    ja wir der Topic schon sagt, bei dert Ticketvergabe kommt beim Grund ein Y mit doppelpunkt.


    Hier mein CMD:


    ocmd:giveticket(playerid,params[])
    {
    new pID,grund,betrag,pname[MAX_PLAYERS],string[200],string2[200];
    if(!isPlayerInFrakt(playerid,5))return SendClientMessage(playerid,Rot,"Du bist kein Behördler!");
    {
    if(sscanf(params,"uui",pID,grund,betrag)) return SendClientMessage(playerid,hellblau,"/giveticket [ID] [Grund] [Betrag]");
    {
    if(!IsPlayerConnected(pID)) return SendClientMessage(playerid,Rot,"Der Spieler ist nicht online!");
    {
    GetPlayerName(playerid,pname,sizeof pname);
    format(string,sizeof string," %s hat dir ein Ticket in Höhe von %i$ gegeben.Grund: %s",pname,betrag,grund);
    format(string2,sizeof string2,"tippe /acceptticket um das Ticket zu bezahlen.");
    SendClientMessage(pID,hellblau,string);
    SendClientMessage(pID,hellblau,string2);
    ticket[playerid] = 1;
    }
    }
    }
    return 0;
    }

    /edit:


    ocmd:u(playerid,params[])
    {
    new text[128],pID;
    if(sscanf(params,"s",text))return SendClientMessage(playerid,hellblau," /u [text]");
    format(text,sizeof(text),"%s sagt: %s",SpielerName(playerid),text);
    for(new i=0; i<GetMaxPlayers(); i++)
    {
    if(IsPlayerConnected(i))
    {
    new Float:x, Float:y, Float:z;
    GetPlayerPos(pID, x, y, z);
    if(IsPlayerConnected(i) && IsPlayerInRangeOfPoint(pID,7.5,x,y,z))
    {
    SendClientMessage(pID,grau,text);
    SetPlayerChatBubble(playerid,text,grau,7.5,3000);
    }
    }
    }
    return 1;
    }

    ich habs jetzt so, aber es funktioniert noch nicht so richtig^^


    ocmd:u (playerid,params[])
    {
    new pID,text,string[200];
    if(sscanf(params,"ui",pID,text))return SendClientMessage(playerid,hellblau,"/u [Text]");
    new Float:x, Float:y, Float:z;
    GetPlayerPos(playerid, x, y, z);
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i) && IsPlayerInRangeOfPoint(pID,20,x,y,z))
    SendClientMessage(playerid,grau,string);
    }
    return 1;
    }

    Moin Leute ich wollte mal fragen ob jemand weis wie man einen Umgebungschat erstellt.


    z.B so das der Spieler dann /u [Seinen Text] eingibt und dann erscheint das nur in seiner Gegend und über der Person dann noch das geschriebene.
    Ich denke das geht mit SetPlayerChatBubble und LimitGlobalChatRadius aber ich hab keine Ahnung wie ich das hinbekommen soll.


    Selfmade mit OCMD's



    Danke im Vorraus :)

    Mein Problem ist, dass er den geldbetrag den man bei dem cmd "repaircar" eingibt, nicht bei /acceptrepair abzieht.


    Hier der repaircommand:


    ocmd:repaircar(playerid,params[])
    {
    new GeldBetrag,pID,string[128],string2[128],pname[MAX_PLAYER_NAME];


    if(sscanf(params,"ui",pID,GeldBetrag))return SendClientMessage(playerid,Rot, "/repair [Username/ID] [Betrag]");
    if(!IsPlayerConnected(pID))return SendClientMessage(playerid,Rot, " Der Spieler ist nicht online !");

    SendClientMessage(pID,hellblau,string);
    GetPlayerName(playerid,pname,sizeof pname);
    format(string,sizeof string,"Mechaniker %s bietet dir an dein Fahrzeug für %i$ zu reparieren.", pname,GeldBetrag);
    format(string2,sizeof string2,"tippe /accept repair um das Angebot anzunehmen.");
    SendClientMessage(pID,hellblau,string);
    SendClientMessage(pID,hellblau,string2);
    acceptrepair[playerid] = 1;


    return 1;
    }



    Und hier der Accept repair cmd:


    ocmd:acceptrepair(playerid,params[])
    {
    new GeldBetrag,pID,MSG[125],MSG1[125];
    new veh;
    veh = GetPlayerVehicleID(playerid);


    if(acceptrepair[playerid]==0)return SendClientMessage(playerid,Rot,"Dir hat keiner eine Reperatur angeboten.");


    if(acceptrepair[playerid]==1)


    GivePlayerMoney(pID,-GeldBetrag);
    RepairVehicle(GetPlayerVehicleID(pID));
    SetVehicleHealth(veh,1000);
    format(MSG,sizeof(MSG), "%s hat dein Fahrzeug für %i$ repariert !", SpielerName(playerid),GeldBetrag);
    SendClientMessage(pID,hellblau, MSG);
    GivePlayerMoney(playerid,GeldBetrag);
    format(MSG1,sizeof(MSG1), "Du hast das Fahrzeug von %s für %i$ repariert !", SpielerName(pID), GeldBetrag);
    SendClientMessage(playerid,hellblau, MSG1);
    acceptrepair[playerid] = 0;


    return 1;
    }

    Wie der Topic schon sagt, bei dem /Repaircar befehl soll dem Spieler der sein Auto reparieren lässt, Geld abgezogen werden und der Spieler der das Auto repariert soll das Geld bekommen.


    Hier mein Befehl


    ocmd:repaircar(playerid,params[])
    {
    new pID,betrag,string[128],pname[MAX_PLAYER_NAME];
    if(sscanf(params,"u",pID,betrag)) return SendClientMessage(playerid,hellblau,"/repaircar [ID] [Betrag]");
    new Float:health;
    new veh;
    veh = GetPlayerVehicleID(playerid);
    GetVehicleHealth(veh, health);
    if(health==1000) return SendClientMessage(playerid,Rot,"Das Fahrzeug braucht keine Reperatur!");
    SetVehicleHealth(veh,1000);
    RepairVehicle(GetPlayerVehicleID(pID));
    GetPlayerName(playerid,pname,sizeof pname);
    format(string,sizeof string,"Mechaniker %s hat dein Fahrzeug für %i repariert.",pname,betrag);
    SendClientMessage(pID,hellblau,string);
    GivePlayerMoney(pID,-betrag);
    return 1;
    }


    Hoffe Ihr könnt mir weiterhelfen. :)

    Moin Leute,


    Folgendes Problem:


    Ich möchte, dass wenn man jemand in eine Frak invitet, der seinen skin der jeweiligen fraktion auswählen kann.
    Genauso wie wenn er auf den Server connected.


    Hier mein /Invite Befehl:


    ocmd:invite(playerid,params[])
    {
    if(!hasplayerafraklevel(playerid,5))return SendClientMessage(playerid,Rot,"Du bist kein Leader einer Fraktion!");
    new pID,fraklevel,string[50],fID;
    if(sscanf(params,"ui",pID,fraklevel)) return SendClientMessage(playerid,hellblau,"/invite [playerid] [fraktionsrang]");
    SetPVarInt(pID,"Fraklevel",fraklevel);
    SetPVarInt(fID,"Fraktion",GetPVarInt(playerid,"Fraktion"));
    SetPlayerPos(pID,-1647.6929,1123.2332,75.7813); // position
    SetPlayerFacingAngle(pID,43.5754);
    SetPlayerCameraPos(pID,-1651.4027,1127.2888,75.7813);
    SetPlayerCameraLookAt(pID,-1647.6929,1123.2332,75.7813);
    SpielerSpeichern(pID);
    format(string,sizeof(string),"%s ist jetzt in deiner Fraktion",SpielerName(pID));
    SendClientMessage(pID,dunkelgruen,string);
    return 1;
    }



    Ich hoffe ich hab mich verständlich ausgedrückt :D



    //edit: Topicüberschrift geändert

    ocmd:invite(playerid,params[])
    {
    if(!hasplayerafraklevel(playerid,5))return SendClientMessage(playerid,Rot,"Du bist kein Leader einer Fraktion!");
    new pID,fraklevel,string[50],fID;
    if(sscanf(params,"ui",pID,fraklevel)) return SendClientMessage(playerid,hellblau,"/invite [playerid] [fraktionsrang]");
    SetPVarInt(pID,"Fraklevel",fraklevel);
    SetPVarInt(fID,"Fraktion",GetPVarInt(playerid,"Fraktion"));
    SpielerSpeichern(pID);
    format(string,sizeof string,"%s ist jetzt in deiner Fraktion!",playerid);
    return 1;
    }



    meinst du so?




    //Edit:


    funktioniert, danke :)

    Ich hab mir jetzt schon einen /invite cmd zusammen gebastelt der einigermaßen funktioniert.


    Wenn man als leader aber einen spieler in die fraktion einladen will, setzt er noch nicht die richtige FraktionsID.
    Er soll ja die gleiche FraktionsID bekommen wie der Leader.


    Hier mein CMD:


    ocmd:invite(playerid,params[])
    {
    if(!hasplayerafraklevel(playerid,5))return SendClientMessage(playerid,Rot,"Du bist kein Leader einer Fraktion!");
    new pID,fraklevel,string[50],fID;
    if(sscanf(params,"ui",pID,fraklevel,fID)) return SendClientMessage(playerid,hellblau,"/invite [playerid] [fraktionsrang]");
    SetPVarInt(pID,"Fraklevel",fraklevel);
    SetPVarInt(pID,"Fraktion",fID);
    SpielerSpeichern(pID);
    format(string,sizeof string,"%s ist jetzt in deiner Fraktion!",playerid);
    return 1;
    }


    Wisst Ihr weiter? :huh:


    Auch nicht richtig.. Ich habs aber jetzt^^


    die Zeile lautet so:


    if(GetPVarInt(playerid,"Fraklevel")<4)