Beiträge von Hagi

    Musst die Sequenz verändern:



    if(sscanf(params,"ui",pID,frakid))return SendClientMessage(playerid,DUNKELGRAU,"BENUTZE: /makeleader [playerid] [Fraktions - ID]");
    {
    switch(frakid)
    {
    case 0:{frakname="Keine";}
    case 1:{frakname=frakname1;}
    case 2:{frakname=frakname2;}
    case 3:{frakname=frakname3;}
    case 4:{frakname=frakname4;}
    case 5:{frakname=frakname5;}
    case 6:{frakname=frakname6;}
    case 7:{frakname=frakname7;}
    case 8:{frakname=frakname8;}
    case 9:{frakname=frakname9;}
    case 10:{frakname=frakname10;}
    case 11:{frakname=frakname11;}
    default:{return 0;}/*Wenn die Fraktions ID keine der oben genannten ist.*/
    }
    format(string,sizeof(string)," %s hat dich zum Leader der Fraktion %s ernannt",SpielerName(playerid),frakname);
    format(string2,sizeof(string2)," Du hast %s zum Leader der Fraktion %s ernannt",SpielerName(pID),frakname);
    SendClientMessage(pID,BLAU,string);
    SendClientMessage(playerid,BLAU,string2);
    SetPVarInt(pID,"Fraktion",frakid);
    SpielerSpeichern(pID);
    SpielerSpeichern(playerid);
    }

    mit einer Variable





    if(GetPVarInt(playerid,"aduty") == 0)
    {
    SetpVarInt(playerid,"aduty",1); // man geht onduty
    }
    else
    {
    SetpVarInt(playerid,"aduty",0); // man geht offduty
    }

    24 ig Stunden sind 6 Zeitstunden.
    Ergo eine ig Stunde ist 1/4 zeitstunde. Lass also nen Timer mit diesem Interval laufen und dann haste eine Ig stunde.


    edit: Ich bin ein Idiot :D Ein Tag hat 24 nicht 14 Stunden :D

    isPlayerNearMuell(playerid)
    {
    for(new i = 0;i<sizeof(Muell);i++)
    {
    if(!IsValidObject(muellobject[i]) continue;
    if(IsPlayerInRangeOfPoint(i,5.0,Muell[i][XPoss],Muell[i][YPoss],Muell[i][ZPoss]))
    {
    return 1;
    }
    }
    return 0;
    }


    if(newkeys == KEY_ANALOG_DOWN) //NUM 2
    {
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    new carid = GetPlayerVehicleID(i);
    if(!IsASweeper(carid)) continue;
    if(isPlayerNearMuell(i) == 0) continue;


    PS: Eigentlich brauchst du hier die for für alle Spieler nicht, da ja nur ein Spieler für sich die Taste drücken kann.

    Moin Leute, ich arbeite grad an nem kleinen Antiwaffencheat:


    stock GivePlayerAnticheatWeapon(playerid,weaponid,ammo)
    {
    new weapon,lastammo;
    new slot = weaponslot[weaponid][0];
    GetPlayerWeaponData(playerid,slot,weapon,lastammo);
    pweapondata[playerid][slot][0] = weaponid;


    GivePlayerWeapon(playerid,weaponid,ammo);
    new newammo;
    GetPlayerWeaponData(playerid,slot,weapon,newammo);
    pweapondata[playerid][slot][1] = newammo;
    new string[64];
    format(string,sizeof(string),"Slot: %d | Weaponid: %d | Ammo :%d",slot,pweapondata[playerid][slot][0],pweapondata[playerid][slot][1]);
    deBug(string,playerid);
    }


    Wenn ich mir mit der Funktion eine Waffe gebe, wird die Munition in pweapondata[playerid][slot][1] nicht auf die aktuelle Munition gesetzt, die Waffe in [0] hingegen schon. Kann es sein, dass GetPlayerWeaponData kürzlich (siehe Sequenz davor) gegebene Waffen nicht erkennt? Oder liegt der Fehler wo anders?

    Das ist meines wissen nach ein SAMP Bug, dass wenn ein Spieler aus dem Auto geworfen wird und dann irgendwo anders einsteigt o.Ä, dass dann das vorherige Auto ruckartig gebremst wird.

    Moin Brotfischer,


    Ich habe ein kleines Problem:
    Ich kann nur einmal ein TextDraw anklicken. Sobald ich erneut versuche SelectTextDraw aufzurufen, blitzt der Blidschirm einmal kurz und es passiert nichts weiter. Es erscheint kein Cursor um die TextDraws auszuwählen.


    Mit diesem Befehl beginne ich die Auswahl


    if(strcmp("/select",cmdtext,true,10) == 0)
    {
    SelectTextDraw(playerid, 0x00FF00FF);
    }


    Im CallBack, der auf jeden Fall aufgerufen wird, steht folgendes:


    public OnPlayerClickTextDraw(playerid, Text:clickedid)
    {
    if(clickedid == Version)
    {
    CallLocalFunction("OnPlayerCommandText","ds",playerid,"/update");
    }
    else if(clickedid == statsdraw[playerid])
    {
    CallLocalFunction("OnPlayerCommandText","ds",playerid,"/stats");
    }
    CancelSelectTextDraw(playerid);
    return 1;
    }


    Ihr seht, CancelSelectTextDraw wird aufgerufen und zwar nur hier und nirgendwo anders.


    Hat jemand eine Idee woran das beschriebene Problem liegen könnte und wie man es löst?


    edit: Im Grund ist es wie hier beschrieben, nur will ich kein PlayerTextDraw raus machen.
    edit: 26.04.13 - 13:17 push nach Forenregeln III.2