Beiträge von SkaterDenis

    //EDIT
    Ja schon klar!
    Aber ich brauch ja nicht nur die string Abfrage wegen (waffen namen) sodern auch den Integer wegen (waffenids) ?!??
    Sind die 4 sscanf abfragen so wirklich nötig oder kann man das noch irgendwie kürzen???
    Sonst funktioniert eig alles bis auf das man nicht die Colt 45 Silenced per waffen namen spawnen kann.. man bekommt ne normale mit 45 munni..

    Warum soll ich kein integer verwenden?
    Also ich habe das jetzt so.. Funktioniert zwar wollte aber trotzdem nachfragen ob das so richtig ist?



    #define MIN_WEAPON_ID 0
    #define MAX_WEAPON_ID 47


    new WeaponNames[48][] = {
    {"Unarmed Fist"}, {"Brass Knuckles"}, {"Golf Club"}, {"Night Stick"}, {"Knife"}, {"Baseball Bat"},
    {"Shovel"}, {"Pool Cue"}, {"Katana"}, {"Chainsaw"}, {"Purple Dildo"}, {"Big White Vibrator"},
    {"Medium White Vibrator"}, {"Small White Vibrator"}, {"Flowers"}, {"Cane"}, {"Grenade"}, {"Teargas"},
    {"Molotov"}, {" "}, {" "}, {" "}, {"Colt 45"}, {"Colt 45 Silenced"}, {"Desert Eagle"}, {"Shotgun"},
    {"Sawnoff Shotgun"}, {"Combat Shotgun"}, {"Micro Uzi Mac 10"}, {"MP5"}, {"AK47"}, {"M4"}, {"Tec9"},
    {"Country Rifle"}, {"Sniper Rifle"}, {"Rocket Launcher"}, {"Heat Seeking Rocket Launcher"},
    {"Flamethrower"}, {"Minigun"}, {"Satchel Charge"}, {"Detonator"}, {"Spray Can"}, {"Fire Extinguisher"},
    {"Camera"}, {"Night Vision Goggles"}, {"Infrared Vision Goggles"}, {"Parachute"}, {"Fake Pistol"}
    };


    YCMD:weapon(playerid, params[], help)
    {
    if(help) return SendClientMessage(playerid, yellow, "[HELP]: Give you a weapon");
    if(isnull(params)) return SendClientMessage(playerid, cyanblue, "[USAGE]: /weapon [WEAPONID/NAME] [ammo]" );
    new wid, wname[128], ammo = 500, wstr[128];
    if(!sscanf(params, "ii", wid, ammo))
    {
    }
    else if(!sscanf(params, "s[128]i", wname, ammo))
    {
    wid = GetWeaponModelIDFromName(wname);
    }
    else
    {
    if(!sscanf(params, "i", wid))
    {
    }
    else if(!sscanf(params, "s[128]", wname))
    {
    wid = GetWeaponModelIDFromName(wname);
    }
    }
    if(wid == -1) return SendClientMessage(playerid, red, "[ERROR]: Invalid WEAPONNAME");
    if(wid < MIN_WEAPON_ID || wid > MAX_WEAPON_ID || wid == 19 || wid == 20 || wid == 21) return SendClientMessage(playerid, red, "[ERROR]: Invalid WEAPONID");
    GivePlayerWeapon(playerid, wid, ammo);
    format(wstr,sizeof(wstr),"[SUCCESS]: You were given a [%s] [WEAPONID: %d] [AMMO: %d]", WeaponNames[wid], wid, ammo);
    SendClientMessage(playerid, green, wstr);
    return 1;
    }

    Wie kann ich machen das der befehl auch mit den namen funktioniert?
    funktion GetWeaponModelIDFromName(params); und die waffennamen habe ich schon nur komme irgendwie net weiter..

    YCMD:weapon(playerid, params[], help)
    {
    if(help) return SendClientMessage(playerid, yellow, "[HELP]: Give you a weapon");
    if(isnull(params)) return SendClientMessage(playerid, cyanblue, "[USAGE]: /weapon [WEAPONID] [ammo]" );
    new wid, ammo, wstr[128];
    if(sscanf(params, "ii", wid, ammo)) return SendClientMessage(playerid, red, "Syntax Error: [WEAPONID/NAME] [ammo] ");
    GivePlayerWeapon(playerid, wid, ammo);
    format(wstr,sizeof(wstr),"[SUCCESS]: You were given [WEAPONID: %d] [AMMO: %d].",wid, ammo);
    SendClientMessage(playerid, green, wstr);
    return 1;
    }

    Ich habe da mal ne kleine frage bezüglich der Vergleichsoperatoren..
    < bedeutet ja = Links ist kleiner als Rechts
    <= und das = Links ist kleiner oder gleich Rechts
    richtig?


    Doch wenn ich in diesem Befehl hier <= benutze wird die SendClientMessage nicht gesendet..!`?!? Und wenn ich nur < benutze funktioniert alles!?! Und das letzte Fahrzeug wird auch gelöscht! also funktioniert < bei mir wie eigendlich <= funktionieren sollte?! und bei <= wird alles unter der zeile irwie nicht mehr gelesen... warum funktioniert das mit <= nicht? (Benutze UMP 0.3 e falls das wichtig sein sollte..)

    YCMD:delallv(playerid, params[], help)
    {
    if (help) return SendClientMessage(playerid, yellow, "Löscht alle deine Fahrzeuge.");
    for(new pv = 0; pv < MAX_PLAYER_VEHICLES; pv++) //Die Zeile meine ich!!!
    {
    DestroyVehicle(PlayerVehicle[playerid][pv]);
    PlayerVehicle[playerid][pv] = INVALID_VEHICLE_ID;
    }
    SendClientMessage(playerid, yellow, "Du hast alle deine Fahrzeuge gelöscht.");
    return 1;
    }

    Die einzige Möglichkeit bei Fahrzeug rotation x und rotation y aufzunehmen ist per npc und wenn das Script von 2009 ist kann ich mir nicht vorstellen das man von Stunts ein Replay machen kann... Das ist nicht unbedinngt das was ich suche... Naja dann muss ich wohl selbst Hand ins Feuer legen und mir eins bauen-.- Aber ich bin eig sicher das es sowas geben müsste da es absolut reicht aufgenommene npcs zu specen ist ja das selbe Prenzip. Ausserdem habe ich sowas schon auf paar servern gesehen echt schande das bis jetzt niemand eins online gestellt hat aber wiegesagt ich schätze mal so schwer kanns nicht sein würde mich aber trotzdem über ne Rückmeldung freuen!

    Gibt es zufällig schon irgendwo ein replay system basierend auf npcs...? wo man z.b. /replay eingibt und es zeigt dir die letzte minute was du alles gemacht hast... Wäre echt geil wenn es irgendwo sowas gibt! Natürlich dazu ne speicehrfunktion und ne load funktion...

    Ja ich finde auch deine idee war ganz gut nur habe ich auch ka wie ich das machen soll...
    Die Farben habe ich ja schon...



    new PlayerColors[200] = {
    0xFF8C13FF,0xC715FFFF,0x20B2AAFF,0xDC143CFF,0x6495EDFF,0xf0e68cFF,0x778899FF,0xFF1493FF,0xF4A460FF,
    0xEE82EEFF,0xFFD720FF,0x8b4513FF,0x4949A0FF,0x148b8bFF,0x14ff7fFF,0x556b2fFF,0x0FD9FAFF,0x10DC29FF,
    0x534081FF,0x0495CDFF,0xEF6CE8FF,0xBD34DAFF,0x247C1BFF,0x0C8E5DFF,0x635B03FF,0xCB7ED3FF,0x65ADEBFF,
    0x5C1ACCFF,0xF2F853FF,0x11F891FF,0x7B39AAFF,0x53EB10FF,0x54137DFF,0x275222FF,0xF09F5BFF,0x3D0A4FFF,
    0x22F767FF,0xD63034FF,0x9A6980FF,0xDFB935FF,0x3793FAFF,0x90239DFF,0xE9AB2FFF,0xAF2FF3FF,0x057F94FF,
    0xB98519FF,0x388EEAFF,0x028151FF,0xA55043FF,0x0DE018FF,0x93AB1CFF,0x95BAF0FF,0x369976FF,0x18F71FFF,
    0x4B8987FF,0x491B9EFF,0x829DC7FF,0xBCE635FF,0xCEA6DFFF,0x20D4ADFF,0x2D74FDFF,0x3C1C0DFF,0x12D6D4FF,
    0x48C000FF,0x2A51E2FF,0xE3AC12FF,0xFC42A8FF,0x2FC827FF,0x1A30BFFF,0xB740C2FF,0x42ACF5FF,0x2FD9DEFF,
    0xFAFB71FF,0x05D1CDFF,0xC471BDFF,0x94436EFF,0xC1F7ECFF,0xCE79EEFF,0xBD1EF2FF,0x93B7E4FF,0x3214AAFF,
    0x184D3BFF,0xAE4B99FF,0x7E49D7FF,0x4C436EFF,0xFA24CCFF,0xCE76BEFF,0xA04E0AFF,0x9F945CFF,0xDCDE3DFF,
    0x10C9C5FF,0x70524DFF,0x0BE472FF,0x8A2CD7FF,0x6152C2FF,0xCF72A9FF,0xE59338FF,0xEEDC2DFF,0xD8C762FF,
    0xD8C762FF,0xFF8C13FF,0xC715FFFF,0x20B2AAFF,0xDC143CFF,0x6495EDFF,0xf0e68cFF,0x778899FF,0xFF1493FF,
    0xF4A460FF,0xEE82EEFF,0xFFD720FF,0x8b4513FF,0x4949A0FF,0x148b8bFF,0x14ff7fFF,0x556b2fFF,0x0FD9FAFF,
    0x10DC29FF,0x534081FF,0x0495CDFF,0xEF6CE8FF,0xBD34DAFF,0x247C1BFF,0x0C8E5DFF,0x635B03FF,0xCB7ED3FF,
    0x65ADEBFF,0x5C1ACCFF,0xF2F853FF,0x11F891FF,0x7B39AAFF,0x53EB10FF,0x54137DFF,0x275222FF,0xF09F5BFF,
    0x3D0A4FFF,0x22F767FF,0xD63034FF,0x9A6980FF,0xDFB935FF,0x3793FAFF,0x90239DFF,0xE9AB2FFF,0xAF2FF3FF,
    0x057F94FF,0xB98519FF,0x388EEAFF,0x028151FF,0xA55043FF,0x0DE018FF,0x93AB1CFF,0x95BAF0FF,0x369976FF,
    0x18F71FFF,0x4B8987FF,0x491B9EFF,0x829DC7FF,0xBCE635FF,0xCEA6DFFF,0x20D4ADFF,0x2D74FDFF,0x3C1C0DFF,
    0x12D6D4FF,0x48C000FF,0x2A51E2FF,0xE3AC12FF,0xFC42A8FF,0x2FC827FF,0x1A30BFFF,0xB740C2FF,0x42ACF5FF,
    0x2FD9DEFF,0xFAFB71FF,0x05D1CDFF,0xC471BDFF,0x94436EFF,0xC1F7ECFF,0xCE79EEFF,0xBD1EF2FF,0x93B7E4FF,
    0x3214AAFF,0x184D3BFF,0xAE4B99FF,0x7E49D7FF,0x4C436EFF,0xFA24CCFF,0xCE76BEFF,0xA04E0AFF,0x9F945CFF,
    0xDCDE3DFF,0x10C9C5FF,0x70524DFF,0x0BE472FF,0x8A2CD7FF,0x6152C2FF,0xCF72A9FF,0xE59338FF,0xEEDC2DFF,
    0xD8C762FF,0xD8C762FF
    };


    Wenn man jetzt noch beim befehl macht IfGetPlayerColor == PlayerColors und dan in nen string die letzten zwei zeichen durch 00 ersetzt und dan Setplayercolor string... das müsste gehen nur wie?


    Aber klappt das wie oben vorgemacht mit forward aha(playerid); dan beim befehl aha(playerid); und dan die ganze scheise in public rein? damit ich das nicht in den behfehl reinschreiben muss ?


    //edit gut egal... dann prüfe ich eben 200mal...^^

    ach scheise^^


    Ich habe echt probleme mit strings...


    //Edit
    Kann ich das vileicht auch so machen?



    forward aha(playerid);


    //befehl
    aha(playerid);


    public aha(playerid)
    {
    if (GetPlayerColor(playerid) == 0xFF8C13FF) SetPlayerColor(playerid,0xFF8C1300);
    if (GetPlayerColor(playerid) == 0xC715FFFF) SetPlayerColor(playerid,0xC715FF00);
    ...
    return 1;
    }

    Man soll aber überhaupt keine Markers sehne...


    Ich habe schon weiter oben geschrieben wie es gehen würde...
    das dauert mir aber zu lange... 200 mal im befehl getplayercolor - serplayercolor... das würde klappen aber ich wollte eben nur bissel einfacher...


    Zurzeit ist es bei mir auch so in der art nur eben mit weiß aber mich nervt es eben nur das alles in chat in weiß geschrieben wird da hat man kaum durchblick wer grade was schreibt ich will das die spieler mit ihren normalen farben in dm schreiben aber trozdem die markers aus sind...


    naja wen jetzt niemanden was einfällt dan frage ich eben 200 mal nach beim befehl das dauert aber is bis jetzt das einzich möglige was mir einfällt...

    Das wenn ein Spieler das DM btritt dass dan die PlayerMarkers ausgehen aber er trotzdem seine chatfarbe behält...
    da kommt noch das dazu und so weiter SetPlayerMarkerForPlayer( i, playerid, PlayerDmColorss[playerid] );


    Das dauert einfach zu lange wen ich beim befehl alle 200 abprüfe...
    //befehl
    if (GetPlayerColor(playerid) == 0xFF8C13FF) SetPlayerColor(playerid,0xFF8C1300);
    if (GetPlayerColor(playerid) == 0xC715FFFF) SetPlayerColor(playerid,0xC715FF00);
    .......


    //Edit
    Es soll ganz einfach deine farbe rausfinden und wen du DM btritst wird die farbe duchsichtig und du wirst in playermarkers nicht angezeigt aber in chat behälste deine farbe...

    Da kommen paar errors...
    Wieso klappt das nicht?


    //GanzOben
    new PlayerColorss[200] = { //Die 200 ist schon richtig habe 200... Das ist jetzt nur abgkürtzt
    if (GetPlayerColor(playerid) == 0xFF8C13FF) 0xFF8C1300 , if (GetPlayerColor(playerid) == 0xC715FFFF) 0xC715FF00, ...
    };


    //Command...
    if(strcmp(cmdtext, "/wasweisich", true) == 0)
    {
    //SetPlayerColor(playerid,PlayerColorss[playerid]);
    return 1;
    }

    Hat jemand ne idee wie man sowas bauen kann?
    Man soll einfach ein befehl eingeben und playerid gegen wen man spielern will und dan kommt in chat z.b. SkaterDenis hat stein WerBinIch hat papiert
    wer bin ich hat gewonnen...

    Je em also viel hat sich da grade ja nicht verändert...^^ Das sind ehe nur Namen naja egal...


    //Edit
    Habe noch nen kleinen bug gefunden... Bei leave DM ist noch irwas falsch den wenn ein spieler dm verlässt kriegen alle spieler seinen score... Wen sie dan nochmal sterben oder jemand killen kriegen die wieder iren eigenen wieder... was ist falsch?