[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
  • wenn ich zu einem biz in LV gehe und /buybiz mach gibts nen Gamode restarting was daran falsch?:
    //----------------------------------[BIZZ]-----------------------------------------------
    if(strcmp(cmd, "/buybiz", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    new Float:oldposx, Float:oldposy, Float:oldposz;
    GetPlayerName(playerid, playername, sizeof(playername));
    GetPlayerPos(playerid, oldposx, oldposy, oldposz);
    if(PlayerInfo[playerid][pPbiskey] != 255)
    {
    SendClientMessage(playerid, COLOR_WHITE, " You already own a business, type /sellbiz if you want to buy this one.");
    return 1;
    }
    for(new b = 0; b < sizeof(SBizzInfo); b++)
    {
    if(PlayerToPoint(2.0, playerid, SBizzInfo[b][sbEntranceX], SBizzInfo[b][sbEntranceY], SBizzInfo[b][sbEntranceZ]) && SBizzInfo[b][sbOwned] == 0)
    {
    if(PlayerInfo[playerid][pLevel] < SBizzInfo[b][sbLevelNeeded])
    {
    format(string, sizeof(string), "You Must Be Level %d To Purchase This",SBizzInfo[b][sbLevelNeeded]);
    SendClientMessage(playerid, COLOR_GRAD5, string);
    return 1;
    }
    if(GetPlayerMoney(playerid) > SBizzInfo[b][sbBuyPrice])
    {
    PlayerInfo[playerid][pPbiskey] = b+100;
    SBizzInfo[b][sbOwned] = 1;
    GetPlayerName(playerid, sendername, sizeof(sendername));
    strmid(SBizzInfo[b][sbOwner], sendername, 0, strlen(sendername), 255);
    GivePlayerMoney(playerid,-SBizzInfo[b][sbBuyPrice]);
    PlayerPlayMusic(playerid);
    SendClientMessage(playerid, COLOR_WHITE, "Congratulations, On Your New Purchase.");
    SendClientMessage(playerid, COLOR_WHITE, "Type /help to review the new business help section.");
    DateProp(playerid);
    OnPropUpdate();
    OnPlayerUpdate(playerid);
    return 1;
    }
    else
    {
    SendClientMessage(playerid, COLOR_WHITE, "You don't have the cash for that");
    return 1;
    }
    }
    }

  • Hi,


    Ich habe ein Waffenmenü für meinen bald eröffneten Team Deathmatch Server erstellt.


    Alles ist richtig, jedoch kommt wenn ich die .pwn compile diese Fehlermeldung:


    E:\XXXXX\XXXXXX\XXXXXXXX\Scripting 2\gamemodes\TDM.pwn(618) : error 021: symbol already defined: "OnPlayerSelectedMenuRow"


    Hier nochmal ein kurzer Ausschnitt aus dem entsprechendem Abschnitt:
    public OnPlayerSelectedMenuRow(playerid, row)
    {
    new Menu:Now;
    Now=Menu:GetPlayerMenu(playerid);

    Help dcmd & sscanf to their way to Pawn domination. Read the tutorial below, and use it.
    dcmd & sscanf

  • So... dann hab ich auch mal wieder ein kleines Problem... :D
    also...
    Hab nen cmd erstellt... /admins...
    for-player-schleife bla bla...
    if(pi[i][admin]>=1) {
    new name[MAX_PLAYER_NAME], s[100];
    GetPlayerName(i,name,sizeof(name));
    format(s,sizeof(s),"%s ID: %d",name,i);
    SendClientMessage(playerid,blau,s);
    ...
    So... jetzt bekommt man aber nur den Namen des Admins mit der höchsten ID, d.h.: ID3 ist ein Admin, jemand macht /admins und er sieht den Namen der ID 3... jetzt joint ID 50, ist ebenfalls Admin... man macht jetzt wieder /admins und sieht den Namen von ID 50, aber den von ID 3 nicht... da wollt ich dann mal fragen, wie man den Namen ( new name[...]; ) öfters verwenden kann, also so, dass dann beide Namen angezeigt werden

  • if (strcmp("/admins", cmdtext, true, 10) == 0)
    {
    SendClientMessage(playerid,0xFFFFFFAA,"Admins:");
    for(new i = 0; i <= MAX_PLAYERS; i++)
    {
    if(IsPlayerAdmin(i))
    {
    new strings[256];
    new NameIs[256];
    GetPlayerName(i,NameIs,sizeof(NameIs));
    format(strings,sizeof(strings),"%s",NameIs);
    SendClientMessage(playerid,0xFFFFFFAA,strings);
    }
    }
    return 1;
    }


    Ahja nochwas ^^ Größer als 0 muss es heissen nicht Größer als 1 ^^

    Mfg. BlackFoX_UD_ alias [BFX]Explosion


    Einmal editiert, zuletzt von BlackFoX ()

  • Mal so als kleine Frage... was hat scih da jetzt im wesentlichen verändert?^^
    PS:

    Ahja nochwas ^^ Größer als 0 muss es heissen nicht Größer als 1 ^^


    Was versuchst du mir damit zu sagen?^^
    //EDIT: Asooooo, hab verstanden ds mit der 0 und 1...
    Man kann machen pi[i][admin]>=1) {, aber auch pi[i][admin]>0) {
    Das beides kommt aufs selbe hinaus

    Einmal editiert, zuletzt von KeksOfDeath ()

  • so es geht bei mir^^

    if(strcmp(cmd,"/admins",true) == 0)
    {
    new AdminsConnecteds = 0;
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    if(PlayerInfo[i][Level] > 1)
    {
    new name[MAX_PLAYER_NAME];


    GetPlayerName(i,name,sizeof(name));


    SendClientMessage(playerid,GRÜN,"Admins Online:");
    format(string,sizeof(string),"%s (%d)\n\r",name,PlayerInfo[i][Level]);
    SendClientMessage(playerid,ROT,string);
    AdminsConnecteds++;
    }
    }
    }
    if(AdminsConnecteds == 0)
    {
    ClientText(playerid,ROT,"Es sind keine Admins Online.","There are no Admins.");
    }
    return 1;
    }

    ________________________________________________________________________________
    Meine Scriptdingenserzeugnisse und hilfen xD:


    [TUT]Variablen [INC]YodasInc

    Einmal editiert, zuletzt von Goldkiller ()

  • Hey, es gibt ja z.B. im GodFather
    pInfo, habe jetzt ne kleine Frage kann man auch AInfo oder einfach BLABLA machen: also so z.B.



    enum AInfo
    {
    ALeader,
    AMember
    };



    enum BLABLA
    {
    Leader,
    Member
    };



    Standartmäßig sieht es ja so aus:


    enum pInfo
    {
    pKey[128],
    pLevel,
    pAdmin,
    pDonateRank,
    gPupgrade,
    pConnectTime,
    pReg,
    pSex,
    pAge,
    pOrigin,
    pCK,
    pMuted,
    pExp,
    pCash,
    pAccount,
    pCrimes,
    pKills,
    pDeaths,
    pArrested,
    pWantedDeaths,
    pPhoneBook,
    pLottoNr,
    pFishes,
    pBiggestFish,
    pJob,
    pPayCheck,
    pHeadValue,
    pJailed,
    pJailTime,
    pMats,
    pDrugs,
    pLeader,
    pMember,
    pFMember,
    pRank,
    pChar,
    pContractTime,
    pDetSkill,
    pSexSkill,
    pBoxSkill,
    pLawSkill,
    pMechSkill,
    pJackSkill,
    pCarSkill,
    pNewsSkill,
    pDrugsSkill,
    pCookSkill,
    pFishSkill,
    Float:pHealth,
    Float:pSHealth,
    pInt,
    pLocal,
    pTeam,
    pModel,
    pPnumber,
    pPhousekey,
    pPbiskey,
    Float:pPos_x,
    Float:pPos_y,
    Float:pPos_z,
    pCarLic,
    pFlyLic,
    pBoatLic,
    pFishLic,
    pGunLic,
    pGun1,
    pGun2,
    pGun3,
    pGun4,
    pAmmo1,
    pAmmo2,
    pAmmo3,
    pAmmo4,
    pCarTime,
    pPayDay,
    pPayDayHad,
    pCDPlayer,
    pWins,
    pLoses,
    pAlcoholPerk,
    pDrugPerk,
    pMiserPerk,
    pPainPerk,
    pTraderPerk,
    pTut,
    pMissionNr,
    pWarns,
    pAdjustable,
    pFuel,
    pMarried,
    pMarriedTo[128],
    };

    ...

  • Ja, ich glaube schon.



    Aber irgentwo weiter unten muss dann noch


    new PlayerInfo[MAX_PLAYERS][pInfo];


    oder so ähnlich zumindest stehen.


    Da musst du das dann auch ändern.


    Bitte keine Scriptanfragen via ICQ!


    _________________________________________________________________


  • enum inf
    {
    Kills,
    Deaths,
    ETC
    }
    new INFO[MAX_PLAYERS][inf];

    Dann kannst du sowas wie INFO[playerid][Kills] benutzen.


    Ich scripte NICHT mehr, ich möchte mit NIEMANDEM einen Server aufmachen habe auch NICHTS mehr mit LoH zu tun, also lasst es mit den PNs!

  • new pname[MAX_PLAYER_NAME];
    new string[100];
    new plrIP[16];
    GetPlayerName(playerid, pname, sizeof(pname));
    GetPlayerIp(playerid, plrIP, sizeof(plrIP));
    if (AccountInfo[playerid][AdminLevel] >= 1 || IsPlayerAdmin(playerid))
    {
    format(string, sizeof(string), "*** %s has joined the server (ID:%d) [%d]", pname, playerid, plrIP);
    }
    else
    {
    format(string, sizeof(string), "*** %s has joined the server (ID:%d)", pname, playerid);
    }
    SendClientMessageToAll(0xAAAAAAAA, string);


    wieso zeigt er mr nicht die Ip des Spielers an der grad connected?