Beiträge von CaptainKevin

    Guten Tag allerseits!


    Ich wollte ein Dynamisches Navi System machen.
    D.h.: ich gebe an einem Punkt auf der Karte einen Befehl ein. Dann speichert er das ganze.
    Dannach lässt er es in einer Datei verewigen. Dann kann man mit z.b. /navi alle Punkte sehen, die erstellt wurden.
    Bloß jetzt spuckt er den Error aus:
    C:\Users\Smith Fmily\Desktop\New\gamemodes\NGSR.pwn(649) : error 047: array sizes do not match, or destination array is too small
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    1 Error.




    #define MAX_PUNKTE 50


    enum NaviInfo
    {
    Ort[64],
    Float:posx,
    Float:posy,
    Float:posz
    }
    new nInfo[MAX_PUNKTE][NaviInfo];


    ocmd:perstellen(playerid,params[])
    {
    if(!isPlayerAnAdmin(playerid,2))return SendClientMessage(playerid,Rot,"Du hast nicht die benötigten Rechte!");
    new Float:x, Float:y, Float:z,name[128];
    if(sscanf(params,"d",name))return SendClientMessage(playerid,Gelb,"Verwende: /perstellen [Ortsname]");
    GetPlayerPos(playerid,x,y,z);
    CreateNavi(x,y,z,name);//Error
    return 1;
    }


    stock LoadNavi(naviid)
    {
    new Ndatei[64];
    format(Ndatei,sizeof(Ndatei),"/Navi/%d.txt",naviid);
    if(!fexist(Ndatei))return 0;
    nInfo[naviid][posx] = dini_Float(Ndatei,"PosX");
    nInfo[naviid][posy] = dini_Float(Ndatei,"PosY");
    nInfo[naviid][posz] = dini_Float(Ndatei,"PosZ");
    format(nInfo[naviid][Ort],64,"%s",dini_Get(Ndatei,"Ort"));
    return 1;
    }


    stock CreateNavi(Float:x,Float:y,Float:z,name[64])
    {
    new Datei[64];
    for(new n=1; n<MAX_PUNKTE; n++)
    {
    format(Datei,sizeof(Datei),"/Navi/%d.txt",n);
    if(!fexist(Datei))
    {
    dini_Create(Datei);
    dini_FloatSet(Datei,"PosX",x);
    dini_FloatSet(Datei,"PosY",y);
    dini_FloatSet(Datei,"PosZ",z);
    dini_Set(Datei,"Ort",name);
    return LoadNavi(n);
    }
    }
    return 1;
    }


    Kann mir da wer helfen?

    LoL :)


    Kuni, ich kenne dich nichtmal.
    Ich weis nicht wer du bist, ich weis nicht, woher du kommst.
    Mike und Ryan:


    Warum sagt ihr, dass ihr es gescriptet habt, obwohl ihr mich als Scripter genutzt habt?
    Ja, das Script hatte Buggs, aber die habe ich da auch selber eingebaut. Ihr benutzt mich immer als Scripter
    und dann sagt ihr, ihr hättet es gescriptet :) Auch mal nice -.-


    ocmd:givemoney(playerid,params[])
    {
    new pID,money, string[128],string2[128];
    if(sscanf(params,"ui",pID,money))return SendClientMessage(playerid,ORANGE,"/givemoney [ID/Name] [Geld Menge]");
    format(string,sizeof(string),"Admin %s hat dir %i Euro gegeben.)",Spielername(playerid),money);
    SendClientMessage(pID,ROT,string);
    format(string2,sizeof(string2),"Du hast %s %i Euro gegeben.",Spielername(playerid),money);
    SendClientMessage(playerid,ROT,string2);
    GivePlayerMoney(pID,money);
    SpielerSpeichern(pID);
    return 1;
    }
    So muss es eigentlich komplett richtig sein. Sonst speichert er ja den Admin und nicht den Spieler :)
    Sorry wegen allem :S


    ocmd:setrank(playerid,params[])
    {
    if(!isPlayerAnLeader(playerid,5))return SendClientMessage(playerid,DUNKELROT,"Du bist kein Leader!.");
    new pID, rank;
    if(sscanf(params,"ui",pID,rank))return SendClientMessage(playerid,ROT,"/setrank [Name/ID] [Rank]");
    if(rank<1||rank>5)return SendClientMessage(playerid,ROT,"Bitte gültigen Fraktions Rang angeben.");
    SendClientMessage(playerid,ORANGE,"Erfolreich den Rank gegeben.");
    SetPVarInt(pID,"rank",rank);
    SpielerSpeichern(playerid);
    return 1;
    }

    So


    ocmd:enter(playerid,params[])
    {
    if(IsPlayerInRangeOfPoint(playerid,5.0,1368.8643,-1279.5035,13.5460)) //Zeile 345
    {
    SetPlayerInterior(playerid,1); //Zeile 347
    SetPlayerPos(playerid,285.7908,-40.8728,1001.5156); //Zeile 348
    }
    }


    Du hast bei OCMD das PlayerID vergessen :)
    @unter mir: Danke für die Info :P