[SAMMELTHREAD] Kleine Scripting Fragen

Dein Problem konnte durch einen User gelöst werden? Bedank dich bei ihm indem du seinen Beitrag als Hilfreich markierst sowie einen Daumen oben dalässt
Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link

  • if(strcmp(befehl, "get", true) == 0)
    {
    printf("strcmp -> befehl => 'get'");
    new Float:x, Float:y, Float:z;
    GetPlayerPos(playerid, x, y, z);
    printf("%.3f, %.3f, %.3f (Range of 3.0: %d)", x,y,z, IsPlayerInRangeOfPoint(playerid, 3.0, 597.0846,-1248.3699,18.2641));
    if(!IsPlayerInRangeOfPoint(playerid, 3.0, 597.0846,-1248.3699,18.2641)) return SendClientMessage(playerid, COLOR_GREY, "Du bist nicht am Materialpunkt.");
    if(menge<1||menge>15)return SendClientMessage(playerid, COLOR_GREY, "Wähle eine Menge zwischen 1 bis 15 aus!");
    if((pPacketsWD[playerid]+menge) > 15)return SendClientMessage(playerid, COLOR_GREY, "Soviele Pakete kannst du nicht mitnehmen.");
    new preis = (menge*200);
    if(GetMoney(playerid) < preis)return SendClientMessage(playerid, COLOR_GREY, ERROR_MONEY);
    pPacketsWD[playerid] += menge;
    GiveMoney(playerid, -preis);
    format(string, sizeof(string), "Du hast %d Materialien-Pakete für %d$ erworben. Du trägst nun %d Pakete bei dir.", menge, preis, menge);
    SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
    SendClientMessage(playerid, COLOR_LIGHTBLUE, "Bringe die Pakete nun zum markierten Haus in Doherty, San Fierro.");
    SendClientMessage(playerid, COLOR_LIGHTBLUE, "Gebe /materials deliver ein, sobald du dein Ziel erreicht hast.");
    SetPlayerCheckpointEx(playerid, -2109.5037,-0.4467,34.8972, 4.0, CP_GETPAKET_WD, INVALID_CHECKPOINT_TYPE);
    }



    Hey, hab mir gerade was ausgedacht das ich es per Skill mache.



    Skill 1 - 5 Materialienpakete
    Skill 2 - 10 Materialienpakete
    Skill 3 - 15 Materialienpakete
    Skill 4 - 20 Materialienpakete
    ab skill 4 ---> Zusätzlich: Farmen mit Burrito möglich (bis zu 50 Materialienpakete)
    Skill 5 - 25 Materialienpakete


    wie mache ich das wie lasse ich das abfragen?

  • Beitrag von TheOneBehindYou1 ()

    Dieser Beitrag wurde vom Autor aus folgendem Grund gelöscht: Oder auch nicht ().
  • Beitrag von TheOneBehindYou1 ()

    Dieser Beitrag wurde vom Autor aus folgendem Grund gelöscht: schon wieder nicht -.- ().
  • So jetzt aber -.-



    Füge in deinem CMD einfach ein:
    if(SpielerInfo[playerid][MatSkill] == 1 && if((pPacketsWD[playerid]+menge) > 5)) return SendClientMessage(playerid,Farbe,"Du darfst mit deinem Skill nicht mehr als 5 haben");
    usw.

  • Danke,




    if(SpielerInfo[playerid][pWaffenSkill] == 1 && if((pPacketsWD[playerid]+menge) > 5)) return SendClientMessage(playerid,COLOR_GRAY1,"Du darfst mit deinem Skill nicht mehr als 5 haben");
    if(SpielerInfo[playerid][pWaffenSkill] == 2 && if((pPacketsWD[playerid]+menge) > 10)) return SendClientMessage(playerid,COLOR_GRAY1,"Du darfst mit deinem Skill nicht mehr als 10 haben.");
    if(SpielerInfo[playerid][pWaffenSkill] == 3 && if((pPacketsWD[playerid]+menge) > 15)) return SendClientMessage(playerid,COLOR_GRAY1,"Du darfst mit deinem Skill nicht mehr als 15 haben.");
    if(SpielerInfo[playerid][pWaffenSkill] == 4 && if((pPacketsWD[playerid]+menge) > 20)) return SendClientMessage(playerid,COLOR_GRAY1,"Du darfst mit deinem Skill nicht mehr als 20 haben.");
    if(SpielerInfo[playerid][pWaffenSkill] == 5 && if((pPacketsWD[playerid]+menge) > 25)) return SendClientMessage(playerid,COLOR_GRAY1,"Du darfst mit deinem Skill nicht mehr als 25 haben.");



    So habe das so drinnen :).


    was mich noch reizt ist eben wie ich abfrage wen der Spieler skill 4 ist ya und wen er in ein Burrito ist das er 50 Pakete laden kann wie mach ich das?

  • Bin gerade dezent zu doof die SuFu zu nutzen xD Wenn ich mit OCMD ein Befehl schreibe und diesen mehrfach nutzen möchte, also z.B. mit /diesisteintest /diet /diiseite wie macht man das, ich finde nur das Jemand das so gemacht hatte

    ocmd@3:diesisteintest,diet,diieseite(playerid, params[])
    //Befehl



    Kann einer helfen?, Gracias


  • stock fVehicleTuning(fV)
    {
    if(IsValidVehicle(fVehicle[fV][vehID]))
    {
    GetVehicleParamsEx(fVehicle[fV][vehID], engine, lights, alarm, doors, bonnet, boot, objective);
    SetVehicleParamsEx(fVehicle[fV][vehID], VEHICLE_PARAMS_OFF, lights, alarm, doors, bonnet, boot, objective);
    if(Vehicle[fVehicle[fV][vehID]][vehMotor])KillTimer(Vehicle[fVehicle[fV][vehID]][VehicleTimer]);
    Vehicle[fVehicle[fV][vehID]][vehMotor] = false;
    Vehicle[fVehicle[fV][vehID]][vehLicht] = false;
    Vehicle[fVehicle[fV][vehID]][vehHaube] = false;
    Vehicle[fVehicle[fV][vehID]][vehKRaum] = false;
    new nPlate[32];
    new ran = random(999) + 1;
    format(nPlate, sizeof(nPlate), "%s %d", GetFraktionNumberPlate(fVehicle[fV][vehFraktion]), ran);
    SetVehicleNumberPlate(fVehicle[fV][vehID], nPlate);
    LinkVehicleToInterior(fVehicle[fV][vehID], fVehicle[fV][vehInterior]);
    SetVehicleVirtualWorld(fVehicle[fV][vehID], fVehicle[fV][vehWorld]);
    if(fVehicle[fV][vehPaintjob] >= 0)ChangeVehiclePaintjob(fVehicle[fV][vehID], fVehicle[fV][vehPaintjob]);
    if(fVehicle[fV][vehColor1] >= 0 || fVehicle[fV][vehColor2] >= 0)ChangeVehicleColor(fVehicle[fV][vehID], fVehicle[fV][vehColor1], fVehicle[fV][vehColor2]);
    if(fVehicle[fV][vehSpoiler] >= 1000)AddVehicleComponent(fVehicle[fV][vehID], fVehicle[fV][vehSpoiler]);
    if(fVehicle[fV][vehHood] >= 1000)AddVehicleComponent(fVehicle[fV][vehID], fVehicle[fV][vehHood]);
    if(fVehicle[fV][vehRoof] >= 1000)AddVehicleComponent(fVehicle[fV][vehID], fVehicle[fV][vehRoof]);
    if(fVehicle[fV][vehSideskirt] >= 1000)AddVehicleComponent(fVehicle[fV][vehID], fVehicle[fV][vehSideskirt]);
    if(fVehicle[fV][vehLamps] >= 1000)AddVehicleComponent(fVehicle[fV][vehID], fVehicle[fV][vehLamps]);
    if(fVehicle[fV][vehNitro] >= 1000)AddVehicleComponent(fVehicle[fV][vehID], fVehicle[fV][vehNitro]);
    if(fVehicle[fV][vehExhaust] >= 1000)AddVehicleComponent(fVehicle[fV][vehID], fVehicle[fV][vehExhaust]);
    if(fVehicle[fV][vehWheels] >= 1000)AddVehicleComponent(fVehicle[fV][vehID], fVehicle[fV][vehWheels]);
    if(fVehicle[fV][vehStereo] >= 1000)AddVehicleComponent(fVehicle[fV][vehID], fVehicle[fV][vehStereo]);
    if(fVehicle[fV][vehHydraulics] >= 1000)AddVehicleComponent(fVehicle[fV][vehID], fVehicle[fV][vehHydraulics]);
    if(fVehicle[fV][vehFrontBumper] >= 1000)AddVehicleComponent(fVehicle[fV][vehID], fVehicle[fV][vehFrontBumper]);
    if(fVehicle[fV][vehRearBumper] >= 1000)AddVehicleComponent(fVehicle[fV][vehID], fVehicle[fV][vehRearBumper]);
    if(fVehicle[fV][vehVentRight] >= 1000)AddVehicleComponent(fVehicle[fV][vehID], fVehicle[fV][vehVentRight]);
    if(fVehicle[fV][vehVentLeft] >= 1000)AddVehicleComponent(fVehicle[fV][vehID], fVehicle[fV][vehVentLeft]);
    switch(fVehicle[fV][vehNeonID])
    {
    case 1: // Blau
    {
    fVehicle[fV][vehNeon1] = CreateDynamicObject(18648, 0, 0, 0, 0, 0, 0, 0);
    fVehicle[fV][vehNeon2] = CreateDynamicObject(18648, 0, 0, 0, 0, 0, 0, 0);
    AttachDynamicObjectToVehicle(fVehicle[fV][vehNeon1], fVehicle[fV][vehID], -0.8, 0.0, -0.70, 0.0, 0.0, 0.0);
    AttachDynamicObjectToVehicle(fVehicle[fV][vehNeon2], fVehicle[fV][vehID], 0.8, 0.0, -0.70, 0.0, 0.0, 0.0);
    }
    case 2: // Grün
    {
    fVehicle[fV][vehNeon1] = CreateDynamicObject(18649, 0, 0, 0, 0, 0, 0, 0);
    fVehicle[fV][vehNeon2] = CreateDynamicObject(18649, 0, 0, 0, 0, 0, 0, 0);
    AttachDynamicObjectToVehicle(fVehicle[fV][vehNeon1], fVehicle[fV][vehID], -0.8, 0.0, -0.70, 0.0, 0.0, 0.0);
    AttachDynamicObjectToVehicle(fVehicle[fV][vehNeon2], fVehicle[fV][vehID], 0.8, 0.0, -0.70, 0.0, 0.0, 0.0);
    }
    case 3: // Weiß
    {
    fVehicle[fV][vehNeon1] = CreateDynamicObject(18652, 0, 0, 0, 0, 0, 0, 0);
    fVehicle[fV][vehNeon2] = CreateDynamicObject(18652, 0, 0, 0, 0, 0, 0, 0);
    AttachDynamicObjectToVehicle(fVehicle[fV][vehNeon1], fVehicle[fV][vehID], -0.8, 0.0, -0.70, 0.0, 0.0, 0.0);
    AttachDynamicObjectToVehicle(fVehicle[fV][vehNeon2], fVehicle[fV][vehID], 0.8, 0.0, -0.70, 0.0, 0.0, 0.0);
    }
    case 4: // Pink
    {
    fVehicle[fV][vehNeon1] = CreateDynamicObject(18651, 0, 0, 0, 0, 0, 0, 0);
    fVehicle[fV][vehNeon2] = CreateDynamicObject(18651, 0, 0, 0, 0, 0, 0, 0);
    AttachDynamicObjectToVehicle(fVehicle[fV][vehNeon1], fVehicle[fV][vehID], -0.8, 0.0, -0.70, 0.0, 0.0, 0.0);
    AttachDynamicObjectToVehicle(fVehicle[fV][vehNeon2], fVehicle[fV][vehID], 0.8, 0.0, -0.70, 0.0, 0.0, 0.0);
    }
    case 5: // Gelb
    {
    fVehicle[fV][vehNeon1] = CreateDynamicObject(18650, 0, 0, 0, 0, 0, 0, 0);
    fVehicle[fV][vehNeon2] = CreateDynamicObject(18650, 0, 0, 0, 0, 0, 0, 0);
    AttachDynamicObjectToVehicle(fVehicle[fV][vehNeon1], fVehicle[fV][vehID], -0.8, 0.0, -0.70, 0.0, 0.0, 0.0);
    AttachDynamicObjectToVehicle(fVehicle[fV][vehNeon2], fVehicle[fV][vehID], 0.8, 0.0, -0.70, 0.0, 0.0, 0.0);
    }
    case 6: // Rot
    {
    fVehicle[fV][vehNeon1] = CreateDynamicObject(18647, 0, 0, 0, 0, 0, 0, 0);
    fVehicle[fV][vehNeon2] = CreateDynamicObject(18647, 0, 0, 0, 0, 0, 0, 0);
    AttachDynamicObjectToVehicle(fVehicle[fV][vehNeon1], fVehicle[fV][vehID], -0.8, 0.0, -0.70, 0.0, 0.0, 0.0);
    AttachDynamicObjectToVehicle(fVehicle[fV][vehNeon2], fVehicle[fV][vehID], 0.8, 0.0, -0.70, 0.0, 0.0, 0.0);
    }
    }
    if(fVehicle[fV][vehFraktion] == 3)
    {
    if(GetVehicleModel(fVehicle[fV][vehID]) == 560){
    if(fVehicle[fV][vehFraktion] == 3){
    fVehicle[fV][vehSiren1] = CreateDynamicObject(19420, 0, 0, 0, 0, 0, 0, 0);
    AttachDynamicObjectToVehicle(fVehicle[fV][vehSiren1], fVehicle[fV][vehID], 0.000000, 0.000000, 0.829999, 0.000000, 0.000000, 0.000000);
    }
    }
    else if(fVehicle[fV][vehFraktion] == 6){ //Wird nicht drauf gemacht
    if(GetVehicleModel(fVehicle[fV][vehID]) == 560){
    fVehicle[fV][vehSiren1] = CreateDynamicObject(19420, 0, 0, 0, 0, 0, 0, 0);
    AttachDynamicObjectToVehicle(fVehicle[fV][vehSiren1], fVehicle[fV][vehID], 0.000000, 0.000000, 0.829999, 0.000000, 0.000000, 0.000000);
    }
    }
    else if(fVehicle[fV][vehFraktion] == 1){
    if(GetVehicleModel(fVehicle[fV][vehID]) == 560){
    fVehicle[fV][vehSiren1] = CreateDynamicObject(19620, 0, 0, 0, 0, 0, 0, 0);
    fVehicle[fV][vehSiren2] = CreateDynamicObject(19797, 0, 0, 0, 0, 0, 0, 0);
    fVehicle[fV][vehSiren3] = CreateDynamicObject(19797, 0, 0, 0, 0, 0, 0, 0);
    fVehicle[fV][vehSiren4] = CreateDynamicObject(19797, 0, 0, 0, 0, 0, 0, 0);
    fVehicle[fV][vehSiren5] = CreateDynamicObject(19797, 0, 0, 0, 0, 0, 0, 0);
    AttachDynamicObjectToVehicle(fVehicle[fV][vehSiren1], fVehicle[fV][vehID], -0.00160, 0.05440, 0.83080, 0.00000, 0.00000, 0.00000);
    AttachDynamicObjectToVehicle(fVehicle[fV][vehSiren2], fVehicle[fV][vehID], 0.73560, 2.59780, -0.13790, 0.00000, 0.00000, 178.00000);
    AttachDynamicObjectToVehicle(fVehicle[fV][vehSiren3], fVehicle[fV][vehID], 0.73560, 2.59780, -0.24890, 0.00000, 0.00000, 178.00000);
    AttachDynamicObjectToVehicle(fVehicle[fV][vehSiren4], fVehicle[fV][vehID], -0.72440, 2.59780, -0.13990, 4.00000, 0.00000, 185.00000);
    AttachDynamicObjectToVehicle(fVehicle[fV][vehSiren5], fVehicle[fV][vehID], -0.72440, 2.59780, -0.25090, 4.00000, 0.00000, 185.00000);
    }
    }
    }
    SetVehiclePos(fVehicle[fV][vehID], fVehicle[fV][vehPosX], fVehicle[fV][vehPosY], fVehicle[fV][vehPosZ]);
    SetTimerEx("SetVehicleZAngle", 5000, 0, "dd", fVehicle[fV][vehID], fVehicle[fV][vehPosA]);
    }
    return 1;
    }


    Hey,


    ich wollte für Fraktion ID 6 eine Sirene drauf machen wen man es erstellt.
    Wen man für Fraktion ID 3 ein AUto erstellt ist komischerweiße die Sirene drauf
    macht man jetzt für Fraktion ID 6 ein Auto ist es nicht drauf warum?

  • Hallo,
    Ich hoffe hier kann mir jemand einmal ganz kurz helfen..
    Ich hab euch einfach mal den Code von meinem Befehl unten reingepackt und dazu noch ein Screenshot um zu sehen was im Chat passiert wenn man diesen Befehl eingiebt.


    CMD:gov(playerid, params[])
    {
    if(!IsLoggedIn(playerid))return 1;
    new entry[96], string[128];
    if(!(Spieler[playerid][pFraktion] == 1 || Spieler[playerid][pFraktion] == 6))return SendClientMessage(playerid, COLOR_GREY, "Du bist kein Beamter!");
    if(Spieler[playerid][pRank] < RANG_COLEADER)return SendClientMessage(playerid, COLOR_GREY, "Für diesen Befehl musst du den Co-Leader Rang besitzen.");
    if(sscanf(params, "s[96]", entry))return SendClientMessage(playerid, COLOR_GREY, "Benutze /gov [Nachricht]");
    SendClientMessageToAll(COLOR_RED), "|___________ Durchsage: %s ___________| %s:", GetRankName(Spieler[playerid][pFraktion]);
    format(string, sizeof(string), " %s:", GetRankName(Spieler[playerid][pFraktion], Spieler[playerid][pRank]), GetName(playerid), entry);
    SendClientMessageToAll(COLOR_DARKBLUE, string);
    return 1;
    }


  • Hallo,
    Ich hoffe hier kann mir jemand einmal ganz kurz helfen..
    Ich hab euch einfach mal den Code von meinem Befehl unten reingepackt und dazu noch ein Screenshot um zu sehen was im Chat passiert wenn man diesen Befehl eingiebt.


    CMD:gov(playerid, params[]){ if(!IsLoggedIn(playerid))return 1; new entry[96], string[128]; if(!(Spieler[playerid][pFraktion] == 1 || Spieler[playerid][pFraktion] == 6))return SendClientMessage(playerid, COLOR_GREY, "Du bist kein Beamter!"); if(Spieler[playerid][pRank] < RANG_COLEADER)return SendClientMessage(playerid, COLOR_GREY, "Für diesen Befehl musst du den Co-Leader Rang besitzen."); if(sscanf(params, "s[96]", entry))return SendClientMessage(playerid, COLOR_GREY, "Benutze /gov [Nachricht]"); SendClientMessageToAll(COLOR_RED), "|___________ Durchsage: %s ___________| %s:", GetRankName(Spieler[playerid][pFraktion]); format(string, sizeof(string), " %s:", GetRankName(Spieler[playerid][pFraktion], Spieler[playerid][pRank]), GetName(playerid), entry); SendClientMessageToAll(COLOR_DARKBLUE, string); return 1;}




  • Hallöchen,


    Ich hab mal eine kleine frage Script bezüglich eines Verkehrssystems, es geht um diesen Timer hier an der Bushaltestelle (Siehe Screenshot) . Wie lasse ich bei Meinem Bus NPC die Distanz per Zeit Ingame berechnen?


    Wäre nice wenn es jemand wüsste :) Danke im vor raus!


    sa-mp-000.png

  • Wäre nice wenn es jemand wüsste

    Na..


    Geschwindigkeit = Weg / Zeit


    Zeit = Weg / Geschwindigkeit


    Also...weg Weg = https://wiki.sa-mp.com/wiki/GetVehicleDistanceFromPoint ...nimmst einfach den Punkt der Bushaltestelle
    und teilst diesen durch die aktuelle Geschwindigkeit vom Bus :)


    ...eventuell anpassen mit m/s und km/h ... ^^


    Ansonsten müsste das klappen :)

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Wollte mithilfe des MapAndreas Plugins Random-Spawns machen. Dieses ist aber sehr ungenau, da ich entweder zu hoch oder zu niedrig Spawne.
    Oder liegt es evtl. an meinem Code?

    Code
    new Float:Z;
    			    MapAndreas_FindZ_For2DCoord(float(random(floatround(dmZone[i][maxX], floatround_round) - floatround(dmZone[i][minX], floatround_round)) + floatround(dmZone[i][minX], floatround_round)), float(random(floatround(dmZone[i][maxY], floatround_round) - floatround(dmZone[i][minY], floatround_round)) + floatround(dmZone[i][minY], floatround_round)), Z);
    				SetPlayerPos(playerid, float(random(floatround(dmZone[i][maxX], floatround_round) - floatround(dmZone[i][minX], floatround_round)) + floatround(dmZone[i][minX], floatround_round)), float(random(floatround(dmZone[i][maxY], floatround_round) - floatround(dmZone[i][minY], floatround_round)) + floatround(dmZone[i][minY], floatround_round)), Z);
  • Wenn ich dies ausführe:
    if(IsPlayerInRangeOfPoint(playerid, 100, Funkmast[i][f_x], Funkmast[i][f_x], Funkmast[i][f_x])){ format(etext, sizeof(etext), "{FF0000}Schlecht/Kein{FFFFFF}"); }
    else if(IsPlayerInRangeOfPoint(playerid, 150, Funkmast[i][f_x], Funkmast[i][f_x], Funkmast[i][f_x])){ format(etext, sizeof(etext), "{FF4B13}Mittel{FFFFFF}"); }
    else if(IsPlayerInRangeOfPoint(playerid, 200, Funkmast[i][f_x], Funkmast[i][f_x], Funkmast[i][f_x])){ format(etext, sizeof(etext), "{66CC00}Gut{FFFFFF}"); }


    Einer eine Idee, weshalb mir der string dann leer ausgegeben wird ? Trotz ich in einer der Range stehe ?