Beiträge von sLy

    Die-Stämme,
    Grepolis,
    Farmerama


    Alle gespielt und ich mag eig. alle von den dreien , ausser Grepolis , aber Grepolis ist auch okay :D

    stock SpielerSpeichern(playerid)
    {
    new pname[MAX_PLAYERS],accFormat[128];
    GetPlayerName(playerid,pname,sizeof pname);
    format(accFormat,sizeof accFormat,"/Spieler/%s.txt",pname);
    if(fexist(accFormat) && Spieler[playerid][eingeloggt])
    {
    dini_IntSet(accFormat,"Skin",Spieler[playerid][Skin]);
    dini_IntSet(accFormat,"Adminlevel",Spieler[playerid][Adminlevel]);
    dini_IntSet(accFormat,"Geld",GetPlayerMoney(playerid));
    dini_IntSet(accFormat,"Score",GetPlayerScore(playerid));
    dini_IntSet(accFormat,"Premium",Spieler[playerid][Premium]);
    }
    }

    Ungetestet :P


    ocmd:pay(playerid,params[])
    {
    new pID,money;
    if(sscanf(params,"ui",pID,money))return SendClientMessage(playerid,ORANGE,"/pay [ID/Name] [Summe");
    if(!IsPlayerConnected(pID))return SendClientMessage(playerid,ROT,"Der Spieler ist nicht online.");
    {
    new Float:x,Float:y,Float:z;
    GetPlayerPos(pID,x,y,z);
    if(IsPlayerInRangeOfPoint(playerid,10,x,y,z))
    {
    new string[128],string2[128];
    if(money<1||money>10000)
    {
    if(GetPlayerMoney(playerid)>=money)
    {
    GivePlayerMoney(playerid,-money);
    format(string,sizeof(string),"Du Gibst %s %i Euro.",SpielerName(pID),money);
    SendClientMessage(playerid,WEIS,(string));
    GivePlayerMoney(pID,money);
    format(string2,sizeof(string2),"%s Gibt dir %i Euro.",SpielerName(playerid),money);
    SendClientMessage(pID,WEIS,(string2));
    }
    else
    {
    SendClientMessage(playerid,ROT,"Soviel Geld hast du garnicht!");
    }
    }
    else
    {
    SendClientMessage(playerid,ROT,"Du kannst höchstens 10000$ geben!");
    }
    }
    else
    {
    SendClientMessage(playerid,Rot,"Der Spieler ist nicht in deiner Nähe!");
    }
    return 1;
    }
    }

    ocmd:pay(playerid,params[])
    {
    new pID,money;
    if(sscanf(params,"ui",pID,money))return SendClientMessage(playerid,ORANGE,"/pay [ID/Name] [Summe");
    if(!IsPlayerConnected(pID))return SendClientMessage(playerid,ROT,"Der Spieler ist nicht online.");
    {
    new string[128],string2[128];
    if(money<1||money>10000)
    {
    if(GetPlayerMoney(playerid)>=money)
    {
    GivePlayerMoney(playerid,-money);
    format(string,sizeof(string),"Du Gibst %s %i Euro.",SpielerName(pID),money);
    SendClientMessage(playerid,WEIS,(string));
    GivePlayerMoney(pID,money);
    format(string2,sizeof(string2),"%s Gibt dir %i Euro.",SpielerName(playerid),money);
    SendClientMessage(pID,WEIS,(string2));
    }
    else
    {
    SendClientMessage(playerid,ROT,"Soviel Geld hast du garnicht!");
    }
    }
    else
    {
    SendClientMessage(playerid,ROT,"Du kannst höchstens 10000$ geben!");
    }
    return 1;
    }
    }


    Ungetestet


    forward AdminCarUnSpawn(vehicleid);


    new IsVehicleAdmin[MAX_VEHICLES];
    new AdminTimer[MAX_VEHICLES];


    public OnPlayerExitVehicle(playerid, vehicleid)
    {
    if(IsVehicleAdmin[vehicleid]==1)
    {
    AdminTimer[vehicleid]=SetTimerEx("AdminCarUnSpawn", 1000*60*1, false,"i", vehicleid);
    }
    return 1;
    }


    if(dialogid == Dialog_adminpanelveh)
    {
    new vehicleid=strval(inputtext);
    new vehcid;
    new Float:x,Float:y,Float:z;
    new string[256];
    GetPlayerPos(playerid,x,y,z);
    vehcid=CreateVehicle(vehicleid,x,y,z,1.00,1,1,300);
    PutPlayerInVehicle(playerid,vehcid,0);
    format(string,sizeof(string),"Du hast ein Vehicle mit der ID %i gespawnt!",vehicleid);
    SendClientMessage(playerid,Gruen,string);
    SendClientMessage(playerid,Grau,"Du darfst das Fahrzeug nicht für den Privaten Gebrauch benutzen !");
    SendClientMessage(playerid,Grau,"Der erste Verstoß bringt einen Admin-Warn , der zweite einen Kick!");
    printf("%s spawnt ein Vehicle mit der ID %i",PlayerName(playerid),vehicleid);
    IsVehicleAdmin[vehicleid]=1;
    }
    public AdminCarUnSpawn(vehicleid)
    {
    DestroyVehicle(IsVehicleAdmin[vehicleid]);
    IsVehicleAdmin[vehicleid]=0;
    }


    Geht nicht :\

    Hey ^^


    Wie kann ich machen , dass wenn man von einem gespawnten Fahrzeug (Admincar) absteigt , dass es nach 5 Minuten gelöscht wird ?
    Ich habs jetzt so:


    if(dialogid == Dialog_adminpanelveh)
    {
    new vehicleid=strval(inputtext);
    new vehcid;
    new Float:x,Float:y,Float:z;
    new string[256];
    GetPlayerPos(playerid,x,y,z);
    vehcid=CreateVehicle(vehicleid,x,y,z,1.00,1,1,300);
    PutPlayerInVehicle(playerid,vehcid,0);
    format(string,sizeof(string),"Du hast ein Vehicle mit der ID %i gespawnt!",vehicleid);
    SendClientMessage(playerid,Gruen,string);
    SendClientMessage(playerid,Grau,"Du darfst das Fahrzeug nicht für den Privaten Gebrauch benutzen !");
    SendClientMessage(playerid,Grau,"Der erste Verstoß bringt einen Admin-Warn , der zweite einen Kick!");
    printf("%s spawnt ein Vehicle mit der ID %i",PlayerName(playerid),vehicleid);
    }

    Okay , das mit dem Kicken hätte ich :)


    Wie kann ich das mit den Waffen machen ?


    Sprich erst ein Dialog mit der ID , dann einer mit der WaffenID und dann einer mit der Munition ?

    Hey ^^


    Bin grade an einem Ingame-Controllpanel für Admins.
    Undzwar möchte ich gerne wissen , wie ich ID's "übernehmen" kann.


    zB wenn ein Admin Kicken auswählt , soll ein neuer Dialog angezeigt werden , wo der Admin die ID/den Namen eingeben muss , danach wird noch ein neuer Dialog angezeigt , wo er den Grund angeben muss , dann wird der angegebene Spieler mit dem angegebenen Grund gekickt.


    Oder bei einem Teleport befehl , dass wenn man Teleportieren auswählt , ein neuer Dialog erscheint , wo man die ID/den Namen angeben muss , zu dem man dann teleportiert wird!
    Wie geht das ?

    hmm poste doch einfach das womit du Probleme hast


    keiner Springt jetzt direkt auf und macht direkt alles via TV


    daraus lernt man nicht


    Ist mir schon klar , aber ich möchte ungern mein ganzes Biz-System hier preisgeben.
    Wenns unbedingt sein muss , poste ich es hier :D
    Da sogut wie alles verbuggt ist ;)


    E: 1. Problem ist oben drin!

    Hey !


    Ich bräuchte Hilfe bei meinem Biz System!


    Ich kann nur 1 erstellen und die Commands sind verbuggt!


    TV / Hamachi Daten gibts per PN :)


    So nun zu meinen Problemen.
    Wenn ich ein Biz erstelle, wird der Pickup/3D Text nicht erstellt ,
    aber das printf wird in der Konsole ausgegeben und die Datei erstellt!



    stock CreateBizz(Float:x,Float:y,Float:z,namme[64],besitzer[64],preis) //Also X,Y,Z weiss jeder,Besitzer ist "Keiner",Preis, der preis, level das level, int(ganz wichtig DIE Nummer nicht das interior(Die Nummer)) und dann halt noch World
    {
    new Biz[64];
    for(new b = 1; b < BIZ_FILES; b++)
    {
    format(Biz,64,"/Biz/biz%d.txt",b);
    if(!dini_Exists(Biz)) //wenn die Datei nicht existiert
    {
    dini_Create(Biz);
    dini_FloatSet(Biz,"PosX",x); //Hier wird das alles nur noch gesetzt
    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;
    }


    ocmd:createbiz(playerid,params[])
    {
    new Float:x,Float:y,Float:z,preis;
    new namme[64];
    if(sscanf(params,"s[64]d",namme,preis))return SendClientMessage(playerid,Rot,"Fehler: /createbiz [Name] [Preis]");
    {
    GetPlayerPos(playerid,x,y,z);
    CreateBizz(x,y,z,namme,"Staat",preis); //Hier wird das Biz erstellt mithilfe des stock`s
    }


    return 1;
    }


    stock LoadBizz(bizid)
    {
    for(new b = 1; b <BIZ_FILES; b++)
    {
    new Biz[64];
    format(Biz,sizeof(Biz),"Biz/biz%d.txt",b);
    if(dini_Exists(Biz))
    {
    bInfo[bizid][PossX] = dini_Float(Biz,"PosX"); //Float X speichern
    bInfo[bizid][PossY] = dini_Float(Biz,"PosY"); //Float Y speichern
    bInfo[bizid][PossZ] = dini_Float(Biz,"PosZ"); //Float Z speichern
    bInfo[bizid][Bizkasse] = dini_Int(Biz,"Bizkasse");
    format(bInfo[bizid][Namme],64,"%s",dini_Get(Biz,"Name"));
    bInfo[bizid][Preis] = dini_Int(Biz,"Preis"); // Preis / kauf kosten speichern
    bInfo[bizid][Besetzt] = dini_Int(Biz,"Besetzt"); // Ob das Bizz besetzt ist
    format(bInfo[bizid][Besitzer],64,"%s",dini_Get(Biz,"Besitzer")); //Besitzername Speichern
    if(bInfo[bizid][Besetzt] == 0) //wenn das Bizz nicht Besetzt ist
    {
    bInfo[bizid][Pickup] = CreatePickup(1238 ,23,bInfo[bizid][PossX],bInfo[bizid][PossY],bInfo[bizid][PossZ],0); //Pickup erstellen


    new string[196];
    format(string,196,"*[BIZINFO]*\nName: %s\nBesitzer: Staat\nPreis: %i\n***",bInfo[bizid][Namme],bInfo[bizid][Preis]); //Hier wird der string für Den 3DTextLabel geschrieben was alles drin sein soll, wenn das Bizz frei ist
    bInfo[bizid][Label] = Create3DTextLabel(string,0xFFFF00FF,bInfo[bizid][PossX],bInfo[bizid][PossY],bInfo[bizid][PossZ],20,0,0); //Hier wird der 3DText erstellt
    return print("Das Biz wurde erfolgreich geladen"); //Das schreibt in die Konsole
    }
    if(bInfo[bizid][Besetzt] == 1) //wenn das Biz besetzt ist
    {
    bInfo[bizid][Pickup] = CreatePickup(1238 ,23,bInfo[bizid][PossX],bInfo[bizid][PossY],bInfo[bizid][PossZ],0); //Pickup erstellen
    new string[196];
    format(string,196,"*[BIZINFO]*\nName: %s\nBesitzer: %s\n***",bInfo[bizid][Namme],bInfo[bizid][Besitzer]); //Hier wird der string für Den 3DTextLabel geschrieben was alles drin sein soll, wenn das Bizz frei ist
    bInfo[bizid][Label] = Create3DTextLabel(string,0xFFFF00FF,bInfo[bizid][PossX],bInfo[bizid][PossY],bInfo[bizid][PossZ],20,0,0); //Hier wird der 3DText erstellt
    return print("Das Biz wurde erfolgreich geladen"); //Das schreibt in die Konsole
    }
    }//wenn die Datei existiert, sonst return 0;
    else
    {
    return 0;
    }
    }
    return 1;
    }

    Den Timer startest du , wenn er in ein Taxi-Auto einsteigt!


    public taxitimer(playerid)
    {
    for(new i=0;i<MAX_PLAYERS;i++)
    {
    if(GetPlayerVehicleID(i)==GetPlayerVehicleID(playerid))
    {
    if(GetPlayerVehicleSeat(i)==0)
    {
    GivePlayerMoney(i,50);
    GivePlayerMoney(playerid,-50);
    }
    }
    }
    }


    Wie gesagt , ich weiß nicht, ob es richtig ist!

    Zitat

    hää ich hatte keinen 2 Thread


    Taxi


    Meine Idee wäre(Weiß nicht ob es klappt!):


    eine neue for schleife im Timer , die alle Spieler durchgeht.
    Dann fragst du ab , ob ein SPieler im gleichen Fahrzeug ist wie Playerid , wenn ja , fragst du ab ob der Spieler auf dem Sitz 0 ist , wenn ja , gibst du ihm Geld , wenn nein , machst du garnichts.