Beiträge von Salpoe

    Leider habe ich nicht das bekommen, was ich eigentlich erwartet habe.


    Schon nach den ersten Sekunden auf dem Server, entdeckte ich mehrere Bugs, mit denen das Spielen ehrlich gesagt kein Spaß macht.
    Somit entschied ich mich nach dem Beenden der Fahrschule den Server zu verlassen, da nichtmal diese richtig funktionierte. Von den Ideen her finde ich den Server eigentlich anspruchsvoll, jedoch sind diese Ideen nicht ganz bzw schlecht umgesetzt worden.


    Ich finde es war etwas zu früh die Open Beta zu starten, wo grade solche auffälligen Bugs immernoch stark zu sehen sind. Trotzdem erhoffe ich mir, dass die Fehler so schnellst wie möglich beheben werden, da ich immernoch etwas Interesse habe bei euch mal zu joinen. Allein wegen der wunderbaren Werbung, die ihr durch das Forum verbreitet habt. ;)

    if(strcmp(cmdtext, "/heal", true) == 0)
    {
    {
    new str[122];
    new name[MAX_PLAYER_NAME];
    if(AccInfo[playerid][pVip] >= 1 || AccInfo[playerid][Level] >= 1)
    if (!AccInfo[playerid][pVip]) return SendClientMessage(playerid, red, "** You are not a VIP Member to perform this command (/viphelp).");
    SetPlayerHealth(playerid, 100);
    PlayerPlaySound(playerid,1137,0.0,0.0,0.0);
    SendClientMessage(playerid, COLOR_VIP,"* You typed (/heal) to set your health to 100.");
    GetPlayerName(playerid, name, sizeof(name));
    format(str,sizeof(str),"** %s VIP %s has used the (/heal) command.",Status, name);
    MessageToAdmins(COLOR_MAUVE,str);
    }
    return 1;


    Normale Spieler und VIP's können den Befehl nutzen. Admins jedoch nicht? :s


    Nur Admins und VIP's sollten es benutzen können..

    Server crasht beim ausführen dieses commands:


    if(!strcmp(cmdtext, "/coordinates", true) || !strcmp(cmdtext, "/myposition", true))
    {
    new str[128], Float: xPos[3], xInterior = GetPlayerInterior(playerid), xVirtualWorld = GetPlayerVirtualWorld(playerid);
    GetPlayerPos(playerid, xPos[0], xPos[1], xPos[2]);
    format(str, sizeof(str), "X: %.3f, Y: %.3f, Z: %.3f Interior: %d, Virtual World: %d", xPos[0], xPos[1], xPos[2], xInterior, xVirtualWorld);
    SendClientMessage(playerid,COLOR_MAUVE,str);
    return 1;
    }

    Ist es erlaubt den Text hier zu verändern?


    public OnPlayerConnect(playerid)
    {
    for(new i;i!=MAX_CHAT_LINES;i++) strdel(Chat[playerid][i][inhalt],0,128),Chat[playerid][i][color]=-1;
    SetPlayerColor(playerid,-1);
    sended{playerid}=false;
    new str[50],port;
    GetPlayerVersion(playerid,str,16);
    format(str,50,"SA-MP {B9B9BF}%s {FFFFFF}Started",str);
    strpack(Chat[playerid][MAX_CHAT_LINES-4][inhalt],str, _:ch - _:inhalt );
    Chat[playerid][MAX_CHAT_LINES-4][color]=-1;
    format(str,50,"Connecting to %s:%d...",SERVERIP,((port=GetServerVarAsInt("port")))?port:8192);
    strpack(Chat[playerid][MAX_CHAT_LINES-3][inhalt],str, _:ch - _:inhalt );
    Chat[playerid][MAX_CHAT_LINES-3][color]=0xA9C4E4FF;
    format(str,50,"Connected. Joining the game...");
    strpack(Chat[playerid][MAX_CHAT_LINES-2][inhalt],str, _:ch - _:inhalt );
    Chat[playerid][MAX_CHAT_LINES-2][color]=0xA9C4E4FF;
    return true;
    }


    mfg

    if(strcmp(cmdtext, "/destroyvehicle", true) == 0)
    {
    new vehicleid;
    new id;
    vehicleid= GetPlayerVehicleID(playerid);
    DestroyVehicle(vehicleid);
    PlayerPlaySound(playerid,1137,0.0,0.0,0.0);
    SendClientMessage(playerid, yellow,"* You have destroyed your vehicle.");
    if (!IsPlayerInAnyVehicle(id))SendClientMessage(playerid, 0xFF0000AA, "** You are not in a vehicle.");
    return 1;
    }


    Erhalte beide messages^^

    Guten Abend Community,


    Ich habe mich in den letzten Wochen durch Pawno gekämpft und denke mal viel neues gelernt, was mich ziemlich erfreut. Da ich trotzdem noch ausreichende Fähigkeiten habe, habe ich mir als Hilfe zum Verständnis das JunkBuster FS heruntergeladen, um es mir anzugucken und die ganzen Funktionen besser zu verstehen etc.
    Neben dem Filterscript habe ich versucht mein eigenes Adminsystem zu erstellen, was teilweise verbuggt ist. Ist aber nicht so wichtig. Was mir nun ein großes Problem bereitet ist die Verbindung von JunkBuster und meinem Adminsystem. Alle Admins sind dagegen immun:


    public IsPlayerAdminCall(playerid)
    {
    if(AccInfo[playerid][Level] >= 1)
    return 1;
    else
    return 0;
    }


    Dennoch sind die Spieler, denen ich als Admin Godmode, Health, Waffen etc gebe nicht gegen Junkbuster geschützt.
    Sobald ich einen Admin Command an einem Spieler nutze, wird dieser wegen Angeblichen Cheatings gebannt. Ich würde gerne wissen wie ich die beiden verbinden kann und ob es mir jemand anhand eines Beispieles zeigen könnte.

    public OnPlayerSpawn(playerid)
    {
    SetCameraBehindPlayer(playerid);
    StopAudioStreamForPlayer(playerid);
    new Random = random(sizeof(RandomSpawns));
    SetPlayerPos(playerid, RandomSpawns[Random][0], RandomSpawns[Random][1], RandomSpawns[Random][2]);
    SetPlayerFacingAngle(playerid, RandomSpawns[Random][3]);


    if(IsPlayerNPC(playerid))
    {
    new npcname[64];
    GetPlayerName(playerid,npcname,64);
    if(!strcmp(npcname,"CrazyMoron",true))
    {
    //SetSpawnInfo(playerid, team, skin, Float:x, Float:y, Float:z, Float:rotation, weapon1, weapon1_ammo, weapon2, weapon2_ammo, weapon3, weapon3_ammo);
    SetSpawnInfo(playerid, 0, 60, 2492.5146, -1703.2296, 1015.5703, 328.5485, 0, 0, 0, 0, 0, 0);
    new Text3D:NameEintragen = Create3DTextLabel("CrazyMoron",0xFFFFFFFF,10.0,40.0,50.0,40.0,0);
    Attach3DTextLabelToPlayer(NameEintragen, playerid, 0.0, 0.0, 0.2);
    SetPlayerColor(playerid,0xFFFFFFFF);


    }
    }
    return 1;


    //==============================================================================
    // Registering
    //==============================================================================


    if(AccInfo[playerid][Registered] == 0 && ServerInfo[MustRegister] == 1) // (1030) : warning 225: unreachable code
    {
    #if USE_DIALOGS == true
    new rstring[256];
    format(rstring,256,"Welcome to %s\n\nThe Account '%s' is not registred yet.\n\n\nEnter a password to register your account:",GetServerHostName(),pName(playerid));
    ShowPlayerDialog(playerid,DIALOGID+66,DIALOG_STYLE_INPUT,"Register Account",rstring,"Register","Quit");
    #endif
    return 1;
    }


    Wieso bekomme ich den unreachable code warning? Muss ich das return 1; löschen in Zeile 23?

    dcmd_admins(playerid,params[])
    {
    #pragma unused params
    new count = 0;
    new string[128];
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if (IsPlayerConnected(i))
    {
    if(AccInfo[i][Level] >= 1 && AccInfo[i][Hide] == 0)
    {

    switch(AccInfo[i][OnDuty])
    {
    case 0: AdmDuty = "Busy";
    case 1: AdmDuty = "Available";
    }
    format(string, 128, "Admin %s (ID: %i)- Level %d - %s\n",PlayerName2(i),i, AccInfo[i][Level],AdmDuty);
    count++;
    ShowPlayerDialog(playerid,DIALOG_ADMINS,DIALOG_STYLE_MSGBOX,"Online Admins",string,"Close","");
    }
    }
    }
    if (count == 0)
    ShowPlayerDialog(playerid,NO_ADMINS,DIALOG_STYLE_MSGBOX,"Online Admins","\n\n\n\nThere are no admins online.","Close","");
    return 1;
    }


    Mir wird immer nur ein Administrator angezeigt, obwohl mehrere Online sind.

    Zitat


    Dein Befehl sendet, nachdem er einen Admin gefunden hat, der online ist, einen Dialog aus.
    Du musst den Dialog erst nach der Schleife anzeigen und alle Admins in einer Zeichenkette speichern.


    Und das mache ich wie? Schließlich habe ich den Dialog bereits am Ende plaziert und ob Admins online oder offline sind spielt keine Rolle. Habe ja bei 0 Admins nen komplett anderen Dialog verwendet?

    dcmd_admins(playerid,params[])
    {
    #pragma unused params
    new count = 0;
    new string[128];
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if (IsPlayerConnected(i))
    {
    if(AccInfo[i][Level] >= 1 && AccInfo[i][Hide] == 0)
    {

    switch(AccInfo[i][OnDuty])
    {
    case 0: AdmDuty = "Busy";
    case 1: AdmDuty = "Available";
    }
    format(string, 128, "Admin %s (ID: %i)- Level %d - %s\n",PlayerName2(i),i, AccInfo[i][Level],AdmDuty);
    count++;
    ShowPlayerDialog(playerid,DIALOG_ADMINS,DIALOG_STYLE_MSGBOX,"Online Admins",string,"Close","");
    }
    }
    }
    if (count == 0)
    ShowPlayerDialog(playerid,NO_ADMINS,DIALOG_STYLE_MSGBOX,"Online Admins","\n\n\n\nThere are no admins online.","Close","");
    return 1;
    }


    Warum wird mir nur ein Admin angezeigt?