Beiträge von MnX

    Wie mache ich es das der Besitzer des Fahrzeuges eine Nachricht bekommt wenn das Fahrzeug kaputt geht?

    wenn der Zustand des Autos auf 0 sinkt setzt du eine Variable z.B carInfo[vehicleID][c_kaputt] = 1;


    dann fragste ab ob dies auf 1 ist wenn ja sendest du dem besitzer ---> carInfo[vehicleID][c_besitzer] fallst du nur den Namen abspeicherst dann glaub ich so
    for(new i = 0; i < MAX_PLAYERS; i++;)
    {
    if(carInfo[vehicleID][c_besitzer] != SpielerName(i))continue;
    SendClientMessage(i,ORANGE,"Dein Auto ist Kaputt.");
    }


    das sind jetzt nur Variablen von mit und das SpielerName ist ein Stock was du durch das Googeln finden kannst.


    ich hoffe ich konnte dir die logik geben :)

    In dem du auto incrwment weg lässt und die nächst freie id deiner datenbank abfragst

    Formatier das mal bitte vernünftig

    Kann mir jemand sagen wie ich das mache das wenn ein Fraktionsmitglied on kommt ? :)

    bei OnPlayerConnect eine Schleife laufen lassen der überprüft ob der Spieler der connectet ist in der Orginaldatei (Datensatz) in einer Fraktion ist und wenn ja soll den Mitgliedern der Fraktion (noch eine Schleife) eine Naricht erhalten.
    Dieses mal muss du es mal selber machen

    Ich habs versucht ich kanns nicht sorry wenn ihr mir nicht helfen könnt ist es nicht schlimm.


    if(strcmp("/dice", cmd, true) == 0) { if(IsPlayerConnected(playerid)) { new dice = random(6)+1; if (gDice[playerid] == 1) { GetPlayerName(playerid, sendername, sizeof(sendername)); format(string, sizeof(string), "* %s wirft seinen Würfel und würfelt eine %d.", sendername, dice); ProxDetector(20.0, playerid, string, COLOR_WHITE,COLOR_WHITE,COLOR_WHITE,COLOR_WHITE,COLOR_WHITE); printf(string); } else { SendClientMessage(playerid, COLOR_ERRORTEXT, " Du hast keinen Würfel"); return 1; } } return 1; }


    Des hab ich geschafft aber /invite geht bei mir nicht


    ocmd:diceinvite(playerid,params[])
    {
    new pID,string[128];
    if(sscanf(params,"u",pID))return SendClientMessage(playerid,FARBE,"INFO: /diceinvite [Playerid]");
    if(pID == playerid)return Sendclientmessage(playerid,farbe,"Du kannst nicht mit dir selber spielen");
    if(pID == INVALID_PLAYERID)return Sendclientmessage(playerid,farbe,"Der Spieler ist nicht online");
    SetPVarInt(pID,"InviteDice",playerid);
    SetPVarInt(playerid,"InvitedDice",pID);
    format(string,sizeof(string),"Der Spieler %s hat dich zu einer Würfelrunde eingeladen.");
    Sendclinetmessage(pID,farbe,string);
    return 1;
    }


    ocmd:acceptdice(playerid,params[])
    {
    if(GetPVarInt(playerid,"InviteDice")==0)return SendClientMessage(playerid,FARBE,"Du wurdest zu keiner Würfel runde eingeladen");
    if(GetPVarInt(playerid,"InviteDice")== playerid)return Sendclientmessage(playerid,farbe,"Du kannst nicht mit dir selber spielen");
    if(GetPVarInt(playerid,"InviteDice") == INVALID_PLAYERID)return Sendclientmessage(playerid,farbe,"Der Spieler ist nicht online");
    new diceID = GetPVarInt(playerid,"InviteDice");
    SetPVarInt(playerid,"Dice",diceID);
    SetPVarInt(diceID,"Dice",playerid);
    SetPVarInt(playerid,"InviteDice",0);
    SetPVarInt(diceID,"InvitedDice",0);
    format(string,sizeof(string),"Der Spieler %s hat die Einaldung angenommen");
    Sendclinetmessage(playerid,farbe,string);


    return 1;
    }



    Den rest muss du aber auch selber können ...

    Ich kriegs irgendwie nicht hin -.-
    Wäre nice wenn mir jemand eins machen würde, wäre sehr dankbar.


    MfG


    LoRiX

    Du musst einfach nur sowas hier machen


    if(sscanf(params,"ii"pID,betrag))return SendClientMessage(playerid,FARBE,"INFO: /dice [Playerid] [Betrag]");
    if(betrag > GetPlayerMoney(playerid))return SendClientMessage(playerid,FARBE,"Du hast nicht genug geld");
    new gGeld = (pData[playerid][geld] + pData[playerid][bankgeld]) / 2;
    if(betrag > gGeld)return Sendlcientmessage(playerid,farbe,"Dein betrag ist höher als die hälfte deines gesamt vermögens");


    das kommt vorm befehl rein und du muss die Variablen anpassen

    Ich meine das bissel anderster falls du German Roleplay oder RGN kennst die haben so ein System drinnen das man um Geld dicet von 1$-50.000.000$ sollte das gehen und nur die hälfte vom Gesamtvermögen. Man sollte aber das Geld um was man dicet auf der Hand haben.

    Ich bin nur mit dem Handy on aber du kannst es einfach losen sind 2 abfragen erstes eine abfrage ob das eingegebene er überhaupt hat, das zweite halt bankkonto + das bar geld zsm zählen in einer variable und die durch 2 teilen und fragen ob das angegebene höher als das was bei der variable raus kommt ist

    Benutzt den neusten RPG-Maker Handhabung ist recht einfach ich benutze es seid XP und nun gibt es MV


    - Neueste Version unterstützt kein Ruby mehr sondern Java
    - Viele Scripts / Plugins ist in der Community schon vorhanden
    - Leicht anpassbar nach eigenen Wünschen
    - Leichter Map Editor


    ich kann es nur Empfehlen und habe einige Spiele damit gemacht

    Habe das Problem, dass meine ATMs einfach keinen 3DTextLabel haben wollen. Das passiert aber nur beim Serverstart (also haben sie quasi trotzdem keinen), weil sobald ich einen ATM create (Befehl) ist das Label da.


    // UpdateATMupdateATM(id){ Delete3DTextLabel(atmInfo[id][a_text]); new string[128]; format(string,sizeof(string),"ATM\nATM verbleidendes Geld: %i$\nATM momentaner Inhalt: %i$",atmInfo[id][a_inventory],atmInfo[id][a_savedmoney]); atmInfo[id][a_text]=Create3DTextLabel(string,CLR_YELLOW,atmInfo[id][ax],atmInfo[id][ay],atmInfo[id][az],20.0,0,1); return 1;}// ATMs LadensqlLoadATMs(){ new query[256],num_fields,num_rows,count; mysql_format(dbhandle,query,sizeof(query),"SELECT * FROM atms"); mysql_query(dbhandle,query); cache_get_data(num_rows,num_fields,dbhandle); if(!num_rows)return 1; for(new i=0;i<num_rows;i++) { count++; atmInfo[i][a_dbid]=cache_get_field_content_int(i,"id"); atmInfo[i][ax]=cache_get_field_content_float(i,"x"); atmInfo[i][ay]=cache_get_field_content_float(i,"y"); atmInfo[i][az]=cache_get_field_content_float(i,"z"); atmInfo[i][arx]=cache_get_field_content_float(i,"rx"); atmInfo[i][ary]=cache_get_field_content_float(i,"ry"); atmInfo[i][arz]=cache_get_field_content_float(i,"rz"); atmInfo[i][a_inventory]=cache_get_field_content_int(i,"inventory"); atmInfo[i][a_savedmoney]=cache_get_field_content_int(i,"savedmoney"); atmInfo[i][a_id]=CreateDynamicObject(2942,atmInfo[i][ax],atmInfo[i][ay],atmInfo[i][az],atmInfo[i][arx],atmInfo[i][ary],atmInfo[i][arz]); updateATM(i); } printf("Es wurde(n) %i ATM(s) geladen.",count); return 1;}


    Habe mir mal die Coords printen lassen, sind absolut korrekt. Habe auch nochmal Syntax angeschaut, scheint aber richtig zu sein.

    Vllt Variable falsch ?`sicher mit Text3D: a_text ? und mir fällt auf lasst den TextLabel doch im Lade Bereich wo alles andere geladen wird auch mit Laden