[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


  • new Float:tankPreis=float(random(101)+110)/100.0;
    printf("Preis: %f",tankPreis);

    RTL - Das N steht für Niveau!
    MfG,
    StreetS


    Jegliche Freundesanfragen, die für mich keinen Sinn ergeben, werden professionell Ignoriert. (Gleiche mit Skype!)
    Wer es nicht kapiert wird in Breadfish & Skype blockiert.


    - Stolzer PAWN Scripter der Klasse Beherrscht

  • Hey, wie müsste ich vorgehen wenn ich allen registrierten Accounts etwas bestimmtes geben möchte, z.B. EXP?
    (System ist auf MySQL basiert)


    Wenn z.B. mein EXP Befehl so ausschaut:



    CMD:givexp(playerid, params[]){
    new pid, pEXP, cQuery[128];



    if(!CheckAccesName(playerid)) return
    SendClientMessage(playerid, COLOR_RED, ACCES_Fail);



    if(sscanf(params, "ui", pid, pEXP)) return
    SendClientMessage(playerid, COLOR_RED, "Use: /givexp <player> <amount>");



    if(!IsPlayerConnected(pid)) return
    SendClientMessage(playerid, COLOR_RED, ID_Fail);



    if(!(0 < pEXP < 1001)) return
    SendClientMessage(playerid, COLOR_RED, "Min: 1 EXP - Max: 1000 EXP.");





    format(cQuery, sizeof(cQuery), "You gave to {%06x}%s(%d) {FF0000}%d {FFFFFF}XP", GetPlayerColor(playerid) >>> 8, GetName(playerid), GetName(pid), pEXP);
    SendClientMessage(playerid, -1, cQuery);



    format(cQuery, sizeof(cQuery), "Admin %s gave %s %d XP", GetName(playerid), GetName(pid), pEXP);
    writeLog("Logs/GiveXP.txt", cQuery);



    GivePlayerExp(pid, pEXP);
    return 1;
    }


    Mit freundlichen Grüßen
    JustMe.77 8)

  • Wenn du allen accounts etwas "geben" willst musst du das so machen
    UPDATE table SET column = column+WERT


    Code
    new query[64];
    mysql_format(1,query,sizeof(query),"UPDATE table SET column = column+%d",pEXP);
    mysql_pquery(1,query);
  • Beitrag von Marschl ()

    Dieser Beitrag wurde von Trooper[Y] aus folgendem Grund gelöscht: Spam, für Suchen ist der Thread nicht gedacht ().
  • Hi, habe 3 Checkpoints auf einer selbst gemappten Map erstellt, nur habe ich eben folgendes lesen dürfen:



    "Known Bug: Checkpoints created on server-created objects (CreateObject/CreatePlayerObject) will appear down on the 'real' ground, but will still function correctly. There is no fix available for this issue. A pickup can be used instead."


    Kann man mit PickUps Checkpoints erstellen? Falls ja, welche ID denn?


    Mit freundlichen Grüßen
    JustMe.77 8)

  • Hallo,


    ich versteh nicht wieso der Spieler nicht gespawnt wird? Also ich habe vor diesen Spawnbotten sofort verschwinden zu lassen. Jedoch wird SpawnPlayer aufgerufen aber i-wie nicht ausgeführt also er springt nicht zu OnPlayerSpawn?

    Mit freundlichen Grüßen
    [KoSoVa] :klugs:

  • Hallo, wie benutze ich hier Random korrekt :D?



    if(pData[playerid][P_HaveExplosion] == 1)
    {

    new Float:x, Float:y, Float:z;
    new RandomExplosion = random(5);
    GetPlayerPos(playerid, x, y, z);
    RandomExplosion = CreateExplosion(x, y, z, 2, 5.0);



    }


    Erhalte immer warning 204: symbol is assigned a value that is never used: "RandomExplosion" :(


    Mit freundlichen Grüßen
    JustMe.77 8)

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Jemand eine Idee, weshalb sich mein Object nicht an die Animation attached ?
    Sonder an den Kopf

    Code
    SetPlayerAttachedObject(playerid, 1, 1221, 1,0.20,0.36,0.0,0.0,90.0, 0.0, 0.4, 0.3, 0.6);
    ApplyAnimation(playerid,"CARRY","crry_prtial",4.0,1,0,0,1,1,1);

  • if(pData[playerid][P_HaveExplosion] == 1)
    {
    new Float:x, Float:y, Float:z;
    new RandomExplosion = random(5);
    GetPlayerPos(playerid, x, y, z);
    switch(RandomExplosion)
    {
    case 0: {CreateExplosion(x, y, z, 2, 5.0);}
    case 2: {CreateExplosion(x, y, z, 2, 5.0);}
    case 4: {CreateExplosion(x, y, z, 2, 5.0);}
    }
    }

    so zum Beispiel würde es nur eine Explosion geben wenn RandomExplosion jeweils eine 0,2 oder 4 wäre.


    random(5) gibt der Variable RandomExplosion hier eine zufällige Zahl von *0 - 5.
    Danach fragst du einfach ab was für ein Wert die RandomExplosion hat und wenn der Wert wie in dem Beispiel oben 0,2 oder 4 hat gibt es eine Explosion.
    Ansonsten nicht.

    „Auge um Auge - und die ganze Welt wird blind sein.“
    - Mahatma Gandhi

  • random(5) gibt der Variable RandomExplosion hier eine zufällige Zahl von *0 - 5.

    Stimmt nicht ganz, bei random(5) ist es von 0 bis 4 (0,1,2,3,4 = 5 Werte).


    Etwas aufgeräumter kann man es so schreiben:
    if(pData[playerid][P_HaveExplosion] == 1)
    {
    switch(random(5))
    {
    case 0,2,4:
    {
    new Float:x, Float:y, Float:z;
    GetPlayerPos(playerid, x, y, z);
    CreateExplosion(x, y, z, 2, 5.0);
    }
    }
    }
    Dann gibt es eine Explosion, wenn 0, 2 oder 4 raus kommt, und keine Explosion, wenn 1 oder 3 raus kommt.

  • jo leute ich bins mal wieder mit einem etwas unspektakulären problem :D ich weiß nicht wieso der timer nicht runterzählt also die zahl ändert sich im spiel nicht

    ocmd:co(playerid,params[])
    {
    for(new i=0;i<5;i++)
    {
    SetTimerEx("timer", 1000, false, "i", playerid);
    }
    return 1;
    }





    forward timer();
    public timer()
    {
    for(new i=5;i>0;i--)
    {
    new zahl=5;
    new str[128];
    format(str, sizeof(str), "%i", zahl);
    GameTextForAll(str, 1000, 1);
    zahl--;
    }
    return 1;
    }

    Bin noch anfänger habt verständnis :D





  • Du hast vergessen beim Timer die playerid mit anzugeben

    Die braucht es gar nicht, da er es für alle anzeigt.


    Mache es so:
    ocmd:co(playerid,params[])
    {
    SetTimerEx("timer", 1000, false, "i", 5);
    return 1;
    }


    forward timer(zahl);
    public timer(zahl)
    {
    new str[16];
    format(str, sizeof(str), "%i", zahl);
    if(zahl > 0) SetTimerEx("timer", 1000, false, "i", zahl-1); //Startet den Timer erneut, solange zahl > 0 ist.
    else format(str, sizeof(str), "Looos!!");
    GameTextForAll(str, 1200, 1);
    return 1;
    }

  • Hallo,


    ich versteh nicht wieso der Spieler nicht gespawnt wird? Also ich habe vor diesen Spawnbotten sofort verschwinden zu lassen. Jedoch wird SpawnPlayer aufgerufen aber i-wie nicht ausgeführt also er springt nicht zu OnPlayerSpawn?


    Mein Code ist halt bei OnPlayerConnect direkt SpawnPlayer. Wie gesagt, das der Spieler sofort spawn soll.

    Mit freundlichen Grüßen
    [KoSoVa] :klugs: