Beiträge von sLy


    Er muss ja auch abfragen , ob die Variable auf 1 ist , sonst kann er den Befehl jedes mal ausführen ^^

    Eine Variable in dem Befehl auf 1 setzen , zB. Test[playerid]=1;


    Dann fragst du aber vorher ab , ob die Variable auf 0 ist , wenn ja , soll dass passieren was du hast , wenn nein , zB. eine Nachricht , dass es nicht geht :D


    Dann mit einem TimerEx der 10 Minuten geht die Variable auf 0 setzen.

    Hey ^^


    Da ein Fahrzeug ja bei ~250.0 kaputt geht , und nicht bei 0.0 , passt die Zustands-anzeige meines Tachos nicht.
    Könnte mir jemand eine Rechnung , bzw eine scripttechnische Möglichkeit zeigen , wie ich machen kann , dass wenn das Auto volles Leben hat , dort 100% steht , und wenn es halt brennt bei ~250 0%!


    Bisjetzt ist es so , aber es brennt schon bei 25% ^^



    new Float:hp;
    GetVehicleHealth(GetPlayerVehicleID(i),hp);
    new Lebensstring[256];
    format(Lebensstring,sizeof(Lebensstring),"Zustand: %d%",floatround(hp)/10);
    TextDrawSetString(TachoLeben[i], Lebensstring);

    enum BizzInformationen
    {
    Float:PossX,
    Float:PossY,
    Float:PossZ,
    Besitzer[64],
    Besetzt,
    Namme[64],
    Preis,
    Text3D:Label,
    Pickup,
    Bizkasse
    };


    new bInfo[MAX_BIZ][BizzInformationen];

    Hey ^^


    Hab nen kleinen Bug , undzwar wenn man stirbt , soll man ins Krankenhaus kommen - klappt soweit.
    Jedoch wird man manchmal ~3-4 Sekunden nach dem "Einliefern" ins Krankenhaus entlassen , kann auch rumlaufen etc , und nach der Wartezeit kommt der Dialog!



    OnPlayerDeath
    {
    new Spieler[64];
    format(Spieler,sizeof(Spieler),"Spieler/%s.txt",PlayerName(playerid));
    new Float:x,Float:y,Float:z;
    GetPlayerPos(playerid,x,y,z);
    dini_FloatSet(Spieler,"TotX",x);
    dini_FloatSet(Spieler,"TotY",y);
    dini_FloatSet(Spieler,"TotZ",z);
    TogglePlayerControllable(playerid, 0);
    SetPlayerPos(playerid,1162.871704, -1339.109619, 14.297291);
    SetPlayerCameraPos(playerid, 1223.379028, -1333.354126, 33.809105);
    SetPlayerCameraLookAt(playerid, 1178.824829, -1325.804077, 13.284119);
    SetPlayerInterior(playerid, 0);
    SendClientMessage(playerid,Weiss,"|____ Krankenhaus ____|");
    SendClientMessage(playerid,Weiss,"Du bist nun im Krankenhaus. Du wirst gerade behandelt und darfst das Krankenhaus");
    SendClientMessage(playerid,Weiss,"nicht verlassen bis die Ärtze mit der Untersuchung fertig sind. Im Durchschnitt");
    SendClientMessage(playerid,Weiss,"dauert die Untersuchung 30 Sekunden.");
    SendClientMessage(playerid,Weiss,"|_____________________|");
    SetTimerEx("tot",30000,0,"i",playerid);
    }


    public tot(playerid)
    {
    ShowPlayerDialog(playerid,Dialog_todesfrage,DIALOG_STYLE_MSGBOX,"Entlassen","Du wirst in kürze aus dem Krankenhaus entlassen\nund die Sanitäter fragen dich , ob sie dich \nzu deiner Unfallstelle bringen sollen.\n Dies kostet allerdings 1500$ mehr als sonst!\nWähle 'Unfall' , um zu deinem Unfallsort gebracht zu werden\nOder wähle 'Hier' , um vor dem Krankenhaus entlassen zu werden.","Unfall","Hier");
    }


    if(dialogid==Dialog_todesfrage)
    {
    new Spieler[64];
    format(Spieler,sizeof(Spieler),"Spieler/%s.txt",PlayerName(playerid));
    if(response==1)
    {
    SetPlayerPos(playerid, dini_Float(Spieler,"TotX"),dini_Float(Spieler,"TotY"),dini_Float(Spieler,"TotZ")); // Hier eintragen wo mann nachdem man aus den krankenhaus entlassen wurde spawn soll
    SetPlayerHealth(playerid,100); // Hier könnt ihr einsellen wie viel leben mann haben soll nachdem mann entlassen wurde
    aGivePlayerMoney(playerid, -2000); // Ganz hinten kannst du einstellen wie viel geld mann verlieren soll das - heißt abziehen das + dazu "Kann auch ganz weggemacht werden"
    SendClientMessage(playerid,Weiss,"|____ Krankenhaus ____|");
    SendClientMessage(playerid,Weiss,"Du wurdest von den Sanitätern zu deinem Unfalls-");
    SendClientMessage(playerid,Weiss,"ort gebracht.");
    SendClientMessage(playerid,Weiss,"Kosten der Behandlung: 500$");
    SendClientMessage(playerid,Weiss,"Kosten des Transports: 1500$");
    SendClientMessage(playerid,Weiss,"|_____________________|"); // Ihr Müsst nicht unbedingt diesen text nehmen ihr könnt ihn beliebig editieren oder einfach nur eine zeile behalten
    }
    if(response==0)
    {
    SetPlayerPos(playerid,1182.5331,-1324.3885,13.5793); // Hier eintragen wo mann nachdem man aus den krankenhaus entlassen wurde spawn soll
    SetPlayerFacingAngle(playerid,270.8170);
    SetCameraBehindPlayer(playerid);
    SetPlayerHealth(playerid,100); // Hier könnt ihr einsellen wie viel leben mann haben soll nachdem mann entlassen wurde
    aGivePlayerMoney(playerid, -500); // Ganz hinten kannst du einstellen wie viel geld mann verlieren soll das - heißt abziehen das + dazu "Kann auch ganz weggemacht werden"
    SendClientMessage(playerid,Weiss,"|____ Krankenhaus ____|");
    SendClientMessage(playerid,Weiss,"Du wurdest entlassen.");
    SendClientMessage(playerid,Weiss,"Kosten der Behandlung 500$");
    SendClientMessage(playerid,Weiss,"|_____________________|"); // Ihr Müsst nicht unbedingt diesen text nehmen ihr könnt ihn beliebig editieren oder einfach nur eine zeile behalten
    }
    }

    Hey.


    Ich habe folgendes Problem:
    Ich stehe in einem Bizpickup und mache /bizkaufen , aber es kommt die Meldung , dass ich in keinem Bizpickup bin!



    ocmd:bizkaufen(playerid,params[])
    {
    new bool:NotAtPoint[MAX_PLAYERS]=false;
    new bool:bizbesetzt[MAX_PLAYERS]=false;
    new bool:hatbiz[MAX_PLAYERS]=false;
    new Spieler[50];
    format(Spieler,50,"/Spieler/%s.txt",PlayerName(playerid));
    new string[256];
    for(new b = 1; b < MAX_BIZ; b++)
    {
    format(string, sizeof(string), "/Biz/biz%d.txt", b);
    if(IsPlayerInRangeOfPoint(playerid,5,bInfo[b][PossX],bInfo[b][PossY],bInfo[b][PossZ]))
    {
    if(dini_Int(Spieler,"Biz")==1)
    {
    if(bInfo[b][Besetzt] == 0)
    {
    if(strcmp(bInfo[b][Besitzer],PlayerName(playerid),false) == 0)return SendClientMessage(playerid,0xFFFF00FF,"Dieses Biz gehört dir bereits!");
    if(GetPlayerMoney(playerid) >= bInfo[b][Preis]) //Bizz Preis
    GivePlayerMoney(playerid,-bInfo[b][Preis]);
    dini_IntSet(Spieler,"Biz",1);
    format(string,64,"/Biz/biz%d.txt",b); //öffnet die Datei
    dini_IntSet(string,"Besetzt",1); //setzt Besetzt auf 1
    bInfo[b][Besetzt] = 1;
    dini_Set(string,"Besitzer",PlayerName(playerid)); //Hier wird der Besitzer name gesetzt
    SendClientMessage(playerid,0xFFFF00FF,"Du hast erfolgreich das Bizz gekauft!");
    KillBizz(b); //stock wird aufgerufen
    LoadBizz(b); //Stock wird aufgerufen
    return true;
    }
    else
    {
    bizbesetzt[playerid]=true;
    }
    }
    else
    {
    hatbiz[playerid]=true;
    }
    }
    else
    {
    NotAtPoint[playerid]=true;
    }
    }
    if(NotAtPoint[playerid]) return SendClientMessage(playerid,Rot,"Du bist in keinem Bizpickup!");
    if(hatbiz[playerid])return SendClientMessage(playerid,Rot,"Du hast bereits ein Biz!");
    if(bizbesetzt[playerid])return SendClientMessage(playerid,Rot,"Das Biz steht nicht zum Verkauf!");
    return 1;
    }


    stock LoadBizz(bizid)
    {
    new Biz[64];
    format(Biz,sizeof(Biz),"Biz/biz%d.txt",bizid);
    if(!fexist(Biz))return 0;
    {
    bInfo[bizid][PossX] = dini_Float(Biz,"PosX");
    bInfo[bizid][PossY] = dini_Float(Biz,"PosY");
    bInfo[bizid][PossZ] = dini_Float(Biz,"PosZ");
    bInfo[bizid][Bizkasse] = dini_Int(Biz,"Bizkasse");
    format(bInfo[bizid][Namme],64,"%s",dini_Get(Biz,"Name"));
    bInfo[bizid][Preis] = dini_Int(Biz,"Preis");
    bInfo[bizid][Besetzt] = dini_Int(Biz,"Besetzt");
    format(bInfo[bizid][Besitzer],64,"%s",dini_Get(Biz,"Besitzer"));
    if(bInfo[bizid][Besetzt] == 0)
    {
    bInfo[bizid][Pickup] = CreatePickup(1272 ,23,bInfo[bizid][PossX],bInfo[bizid][PossY],bInfo[bizid][PossZ],0);
    new string[196];
    format(string,196,"*[BIZINFO]*\nName: %s\nBesitzer: Staat\nPreis: %i\n***",bInfo[bizid][Namme],bInfo[bizid][Preis]);
    bInfo[bizid][Label] = Create3DTextLabel(string,0xFFFF00FF,bInfo[bizid][PossX],bInfo[bizid][PossY],bInfo[bizid][PossZ],20,0,0);
    }
    if(bInfo[bizid][Besetzt] == 1)
    {
    bInfo[bizid][Pickup] = CreatePickup(1239 ,23,bInfo[bizid][PossX],bInfo[bizid][PossY],bInfo[bizid][PossZ],0);
    new string[196];
    format(string,196,"*[BIZINFO]*\nName: %s\nBesitzer: %s\n***",bInfo[bizid][Namme],bInfo[bizid][Besitzer]);
    bInfo[bizid][Label] = Create3DTextLabel(string,0xFFFF00FF,bInfo[bizid][PossX],bInfo[bizid][PossY],bInfo[bizid][PossZ],20,0,0);
    }
    return print("Das Biz wurde erfolgreich geladen");
    }
    }


    stock CreateBizz(Float:x,Float:y,Float:z,namme[64],besitzer[64],preis)
    {
    new Biz[64];
    for(new b = 1; b < MAX_BIZ; b++)
    {
    format(Biz,64,"/Biz/biz%d.txt",b);
    if(!fexist(Biz))
    {
    dini_Create(Biz);
    dini_FloatSet(Biz,"PosX",x);
    dini_FloatSet(Biz,"PosY",y);
    dini_FloatSet(Biz,"PosZ",z);
    dini_Set(Biz,"Name",namme);
    dini_IntSet(Biz,"Preis",preis);
    dini_IntSet(Biz,"Besetzt",0);
    dini_Set(Biz,"Besitzer",besitzer);
    dini_IntSet(Biz,"Bizkasse",0);
    return LoadBizz(b);
    }
    }
    return 1;
    }


    #push

    Eine Variable für jede Fraktion erstellen , diese Speichern/Laden lassen , und beim /invite abfragen , ob in der Fraktion <10 sind, wenn ja , die Variable um 1 erhöhen.

    Neu compiled?
    Ja


    Plugins/Scriptfiles alles vorhanden?
    Sofern ich die nicht updaten brauch von 0.3e RC8 auf 0.3e , Ja


    Andere Bemerkungen in der Log?

    Hey


    Ich hab grade mal versucht den 0.3e Server von Sa-mp.com draufzuhauen , ich hatte vorher 0.3e RC7 , und da ging es ohne Probleme , jedoch bekomme ich jetzt beim Serverstart

    Code
    [01:25:52] Script[gamemodes/ScriptV0.1.amx]: Run time error 19: "File or function is not found"

    Sry es soll ein keine Gangzone sein sondern eine NO-DM Zone


    Wie Mr.DubStep schon sagte , diese farbigen Zonen auf der Karte sind sogenannte "Gang-Zonen" , sprich einfach eine Zone. Dies kannst du als Gangzone benutzen , als No-DM Zone oder was auch immer ;) Es wird in Pawn nur GangZone genannt :>


    Zitat von TakeItEasy

    :oooooo


    Wie Ressourcendfressend wäre das denn? :o


    Frag doch einfach ab, ob er ne schießt in der No DM Zone, oder ob er die Zone betritt..
    Ich glaube das hieß OnPlayerEnterZone oder so ähnlich


    Gibt es eine solche Funktion ? Ich hatte diesen Stock in meinem alten Script , weshalb ich ihn nur kopiert habe ^^
    Man kann natürlich auch per



    public OnPlayerTakeDamage(playerid, issuerid, Float:amount, weaponid)
    {
    return 1;
    }


    abfragen , ob sich der getroffene Spieler in einer No-DM Zone befindet , und dann sein Leben um amount erhöhen :D

    Versuch mal



    [pwn]if(newstate==PLAYER_STATE_DRIVER) //Wenn er der Fahrer ist..
    {
    for(new i=0; i<sizeof(Yaku); i++)
    {
    if(GetPlayerVehicleID(playerid)==Yaku[i]) //Sollte er in einen der Fahrzeugen sein
    {
    if(SpielerInfo[playerid][pTeam] !=5 || SpielerInfo[playerid][pAdmin] <= 1) //Du hattest >=1 , sprich wenn er ein Admin ist wird er entfernt.
    {
    SendClientMessage(playerid,COLOR_Farbe1,"Du bist kein Yakuza!");
    RemovePlayerFromVehicle(playerid); //Schmeißt den Spieler wirder raus.
    }
    }
    }
    }
    [/pwn]


    forward nodmtimer(playerid);


    //Folgendes muss in einen Timer! zB. einem 1 Sekunden Timer , der jeden Spieler durchläuft , und sich immer wiederholt , um einfach abzufragen , ob der Spieler in einer Zone ist.


    if(IsPlayerInArea(playerid,minx,maxx,miny,maxy)//Koordinaten von der Gangzone anpassen!
    {
    if(GetPlayerWeapon(playerid)!=0)
    {
    TogglePlayerControllable(playerid,0);
    SetPlayerArmedWeapon(playerid,0);
    SetTimerEx("nodmtimer",5000,0,"i",playerid);
    }
    }


    public nodmtimer(playerid)
    {
    TogglePlayerControllable(playerid,1);
    return 1;
    }


    //Folgendes irgendwo unten ins Script , ausserhalb eines Callbacks


    stock IsPlayerInArea(playerid, Float:minx, Float:maxx, Float:miny, Float:maxy)
    {
    new Float:x, Float:y, Float:z;
    GetPlayerPos(playerid, x, y, z);
    if (x > minx && x < maxx && y > miny && y < maxy) return 1;
    return 0;
    }


    Ich schätze , unter OnVehicleSpawn wäre das besser aufgehoben als bei OnGameModeInit :)