Beiträge von Kaliber


    Nein, das funktioniert nicht, da du in deinem Befehl kein sscanf benutzt ;)


    Könnt ihr das Script oben so bearbeiten das es funktioniert?


    ersetze doch einfach deinen Befehl mit meinem ;)


    mfg. :thumbup:

    Schreibe es mal so:


    if(dialogid == DIALOG_INFO_FLARES)
    {
    if(response == 0) return CraftDialog;
    else if(response == 1)
    {
    if(Spieler[playerid][Aluminium] >= 2 && Spieler[playerid][Phosphor] >= 1 && Spieler[playerid][Magnesium] >= 1)
    {
    Spieler[playerid][Aluminium] -= 2;
    Spieler[playerid][Phosphor] -= 1;
    Spieler[playerid][Magnesium] -= 1;
    Spieler[playerid][Flare] += 1;
    SendClientMessage(playerid,WEISS,"Flare hergestellt!");
    Spieler[playerid][Exp] += 25;
    GameTextForPlayer(playerid,"~b~+25 EXP", 3000,4);
    }
    else
    {
    new string[256];
    format(string, sizeof(string), "Du hast nicht genügend Materialen um eine Flare zu bauen! Aluminium: %d, Phosphor: %d, Magnesium: %d",Spieler[playerid][Aluminium],Spieler[playerid][Phosphor],Spieler[playerid][Magnesium]);
    SendClientMessage(playerid,GELB,string);
    }
    }
    return 1;
    }


    mfg. :thumbup:


    //Edit: Wenn es jetzt immer noch nicht gehen sollte, hast du einen Fehler in der if - Abfrage !

    //hab versucht was ich kann , bestimmit sind da viele fehler drin dir man bearbeiten muss aber naja


    1. Ja da sind ein paar Fehler drinnen
    2. Das ist eigentlich blösdsinn, da man nur als MoneyHacker enttarnt wird, wenn man mehr als 1.000.000$ hat und ich meine die könnte man sich auch verdient haben, also ist das blödsinn !


    mfg. :thumbup:

    Klar geht das ;)


    Hier mal ein Beispiel (aus dem Kopf geschrieben, Erfolg nicht garantiert !):


    //oben im Script
    new mon[MAX_PLAYERS];


    //Bei OnPlayerConnect
    SetTimerEx("Cheat", 10000, 1, "i", playerid);


    //Der Callback
    forward Cheat(playerid);
    public Cheat(playerid)
    {
    mon[playerid] = GetPlayerMoney(playerid);
    SetTimerEx("Cheat1", 5000, 0, "i", playerid);
    return 1;
    }


    forward Cheat1(playerid);
    public Cheat1(playerid)
    {
    new test = mon[playerid]+50000;
    if(mon[playerid] > test)
    {
    //Hier hat der Spieler in 5sek mehr als 50k dazubekommen
    Ban(playerid);
    }
    return 1;
    }


    mfg. :thumbup:


    //Edit: Hatte da einen Denkfehler, verbessert


    WTF 8|
    Das ist totaler Blödsinn !!! :wacko:


    So schaut der Befehl aus:


    if(strcmp(cmd, "/heal", true) == 0)
    {
    if(GetVehicleModel(GetPlayerVehicleID(playerid)) != 416) return 1;
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp)) return SendClientMessage(playerid, rot, "Verwendung: /heal [spielerid]");
    new pID = ReturnUser(tmp);
    if(IsPlayerConnected(pID) && pID != playerid && GetPlayerMoney(pID) >= 200)
    {
    GivePlayerMoney(pID, -200);
    SetPlayerHealth(pID, 100);
    new name[24], str[64];
    GetPlayerName(playerid, name, 24);
    format(str, 64, "Du wurdest von %s geheilt !",name);
    SendClientMessage(pID, rot, str);
    GetPlayerName(pID, name, 24);
    format(str, 64, "Du hast %s geheilt !",name);
    SendClientMessage(playerid, rot, str);
    }
    return 1;
    }


    mfg. :thumbup:

    Hier mal so paar Codeschnipsel ;)



    enum pInfo{
    pLeader,
    pMember,
    pRank
    };
    new Stats[MAX_PLAYERS][pInfo];


    if(strcmp(cmd, "/gründen", true) == 0)
    {
    if(Stats[playerid][pRank] == 0)
    {
    ShowPlayerDialog(playerid, 1, DIALOG_STYLE_INPUT,"Gang gründen","Gib den Namen deiner Gang ein:","Bestätigen","Abbrechen");
    }
    return 1;
    }
    //In dem entsprechendem Callback
    if(dialogid == 1)
    {
    if(strlen(inputtext) > 0 && response == 1)
    {
    new string[128], name[24];
    GetPlayerName(playerid, name, sizeof name);
    format(string, sizeof string,"Spieler %s hat die Gang %s gegründet !",name,inputtext);
    SendClientMessageToAll(0xFFFFFF, string);
    Stats[playerid][pLeader] = 1;
    Stats[playerid][pRank] = 6;
    //Dann einfach noch den Gangnamen speichern mit Dini und vorher abfragen ob es diese Gang schon gibt
    }
    }


    So ein paar Schnipsel, der Rest ist wie bei einem Standart Fraktionssystem ;)


    mfg. :thumbup:

    Naja, also hier ein paar Verbesserungsvorschläge:


    • Könnte man das nicht alles in ein TextDraw Schreiben ?
    • Lösche alle überflüssigen Callbacks !
    • Bei deinen Befehlen geht es Ressourcensparender, schau:
      if (strcmp("/gmx", cmdtext, true, 10) == 0)
      //schreibe es lieber so:
      if (strcmp("/gmx", cmdtext, true, 4) == 0) //Also immer die string Größe Anpassen !


    Aber ansonsten, sieht es okay aus ;)


    8/10 ;)


    mfg. :thumbup:

    Okay, dazu will ich auch mal was sagen, also folgendes:


    • Man verliert 100$ wenn man stirbt, auch wenn man das nicht bei OnPlayerDeath eingetragen hat !
    • Man müsste, wenn man der playerid Geld geben will es so machen: GivePlayerMoney(playerid, 200);
    • Wenn man der playerid Geld abziehen will, GivePlayerMoney(playerid, -100); dann würde der Spieler 200$ verlieren !


    mfg. :thumbup:

    //Oben im Script
    new ppID[MAX_PLAYERS];


    //in deinem cmd
    ppID[playerid] = giveplayerid; //giveplayerid = anderer Spieler


    if(dialogid==DIALOG_POLIZEI)
    {
    if(response==0) return 1;
    if(response==1)
    {
    if(!IsPlayerConnected(ppID[playerid])) return 1;
    new listitem,string[128],Float:x,Float:y,Float:z;
    GetPlayerPos(ppID[playerid],x,y,z);
    SetPlayerCheckpoint(playerid,x,y,z,3);
    format(string,sizeof(string),"%s hat deine Anfrage entgegengenommen! Er wird gleich bei dir eintreffen!",SpielerName(playerid));
    SendClientMessage(ppID[playerid],BLAU,string);
    format(string,sizeof(string),"Du hast die Anfrage von %s angenommen! Er wurde auf der Karte makiert!",SpielerName(ppID[playerid]));
    SendClientMessage(playerid,BLAU,string);
    Polizei[ppID[playerid]]= 0;
    Anfrage[ppID[playerid]]= 0;
    return 1;
    }
    }


    So musst du das machen ;)


    mfg. :thumbup:

    Leute hab ich mich erschrocken als ich mir diese Schei*e angeschaut habe, also echt, wenn hier um diese Zeit 13 Jährige oder jüngere unterwegs sind, die können doch nicht schlafen 8|


    Gebt doch bitte ausführlichere Warnhinweise bevor ihr sowas: Das willst du nicht klicken


    oder das mit der Hypnose Postet, finde ich nicht okay ^^


    Trotzdem geil :D


    mfg. :thumbup:

    Mach das mal so:


    public BenzinVerlust()
    {
    for(new i=0; i<MAX_VEHICLES; i++)
    {
    if (Motor[i] == true)
    {
    Tank[i] = Tank[i]-1;
    if (Tank[i]<1)
    {
    Tank[i] = 0;
    GetVehicleParamsEx(i,engine,lights,alarm,doors,bonnet,boot,objective);
    SetVehicleParamsEx(i,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
    Motor[i] = false; // Setzt den Bool wieder auf falsch zurück.
    print("TANK LEER!");
    }
    }
    }
    return 1;
    }


    mfg. :thumbup: