Probleme beim Scripten.

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

  • Er will doch eh, dass alle Checkpoints verschwinden wenn man reingeht,
    man muss doch CP´s nicht noch definieren um diesen dann zu "Disablen"..


    Er hat das so gemacht, dass wenn er den Checkpoint errreicht das eine Message kommt:
    SendClientMessage(playerid,Gelb,"Geh zur Information in der Stadthalle, und such das Einwohnermeldeamt.");
    Theoretisch würde die Message dann bei jedem betretenem Checkpoint kommen. (Sobald er mehrere Checkpoints, für verschiedene Sachen erstellt)

  • Wenn du das willst, dass nur der verschwindet dann so:
    ganz oben im Script z.B.


    new geschichte[MAX_PLAYERS] = 0;


    Dann da wo der Checkpoint gesetzt wird:


    if(geschichte[playerid] == 0)
    {
    SetPlayerCheckpoint(playerid....);
    .......
    geschichte[playerid] = 1;
    }
    OnPlayerEnterCheckpoint
    if(geschichte[playerid] == 1)
    {
    DisablePlayerCheckpoint(playerid);
    geschichte[playerid] = 0;
    }

  • Ich versteh das mit dem [MAX_PLAYER] und dem ==0 oder ==1 nicht so wirklich. Sowas hab ich noch nicht gelernt.


    MAX_PLAYERS ist von SAMP aus defiinert und bedeutet soviel wie 500, da die MAX_PLAYER Anzahl auf 500 liegt, ist deine Serverslot anzahl auf 50 ist MAX_PLAYERS 50,
    heißt soviel wie:
    Es ist für jeden Spieler gedacht
    Wenn es jetzt nur
    new geschichte;
    wäre, könntest du das nur für 1nen Spieler machen, bzw. Global, aber da du nicht willst, dass jeder das gleiche hat wie Spieler 1 erstellst du eine Variable für jeden einzelnen Spieler
    also MAX_PLAYERS.
    Und Abfragen tust du mit
    if(geschichte[playerid] == 1)
    {
    //Dies das
    }
    usw.


    MfG



    Angaben ohne Gewähr

  • So ich habe jetzt noch 1. Error im Script .....



    Error :
    C:\Users\Der3erPackxD\Desktop\SAMP Server\gamemodes\Roleplay_Selfmade.pwn(119) : error 017: undefined symbol "Geschichte"




    Hier mal alles was ich verändert habe.


    //Dialoge:
    #define Dialog_Geschichte 1
    #define Dialog_Stadthalle 2


    #define Geschichte[MAX_PLAYER];


    public OnPlayerEnterCheckpoint(playerid)
    {
    if(Geschichte(playerid)==1)
    {
    SendClientMessage(playerid,Gelb,"Geh zur Information in der Stadthalle, und such das Einwohnermeldeamt.");
    DisablePlayerCheckpoint(playerid);


    Muss ich irgendwo noch etwas umschreiben ? damit der Fehler raus geht ?

  • Ok jetzt hab ich das zu "new Geschichte[MAX_PLAYER]; geändert...



    Jetzt habe ich 6 fehlermeldungen



    C:\Users\Der3erPackxD\Desktop\SAMP Server\gamemodes\Roleplay_Selfmade.pwn(13) : error 017: undefined symbol "MAX_PLAYER"
    C:\Users\Der3erPackxD\Desktop\SAMP Server\gamemodes\Roleplay_Selfmade.pwn(13) : error 009: invalid array size (negative, zero or out of bounds)
    C:\Users\Der3erPackxD\Desktop\SAMP Server\gamemodes\Roleplay_Selfmade.pwn(119) : error 012: invalid function call, not a valid address
    C:\Users\Der3erPackxD\Desktop\SAMP Server\gamemodes\Roleplay_Selfmade.pwn(119) : warning 215: expression has no effect
    C:\Users\Der3erPackxD\Desktop\SAMP Server\gamemodes\Roleplay_Selfmade.pwn(119) : error 001: expected token: ";", but found ")"
    C:\Users\Der3erPackxD\Desktop\SAMP Server\gamemodes\Roleplay_Selfmade.pwn(119) : error 029: invalid expression, assumed zero
    C:\Users\Der3erPackxD\Desktop\SAMP Server\gamemodes\Roleplay_Selfmade.pwn(119) : fatal error 107: too many error messages on one line

  • Ok Dankeschön hab nochmal beim Fehlererklärbär nachgelesen und gelesen das wen ich [MAX_PLAYER] verwende das ich es dan auch so aufrufen muss


    if(Geschichte[playerid]=0);


    und nicht


    if(Geschichte(playerid)=0);



    Dankeschön die Fehler sind alle weg
    Werd es gleich mal versuchen


  • Hab ich doch geschrieben?
    Abgesehen davon nicht =0 sondenr == 0
    da du mit = 0 etwas setzt ..

  • Ja tut mir leid ... Hab ich anscheinend nicht richtig aufgenommen... Aber ich hab noch ein Problem... Jetzt geht der CP nicht mehr weg


    Muss ich da irgendwas noch ändern.



    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    if(dialogid==Dialog_Geschichte)
    {
    if(response==1)
    {
    ShowPlayerDialog(playerid,Dialog_Stadthalle,DIALOG_STYLE_MSGBOX,"Personalien","Um in der Stadt bleiben zu können, und um dich auszuweisen\nbrauchst du einen Personalausweis.\n Fahre zur Stadthalle und besorge dir dort einen.\nDamit es schneller geht kannst du dir vor dem Haus\nein Fahrrad mieten.","OK","Abbrechen");
    }
    if(response==0)
    {
    SendClientMessage(playerid,Rot,"Du hast die Aufgabe abgebrochen.\n Versuche es bitte noch einmal.");
    }
    }
    if(dialogid==Dialog_Stadthalle)
    {
    if(response==1)
    {
    SetPlayerCheckpoint(playerid,1481.4243,-1738.6479,13.5469,1);
    SendClientMessage(playerid,Gelb,"Fahre zur Stadthalle");
    }
    if(response==0)
    {
    SendClientMessage(playerid,Rot,"Du hast die Aufgabe abgebrochen.\n Bitte versuche es noch einmal.");
    }
    }
    return 1;
    }

  • Das hier ist bisher mein Script es ist aber 1 Fehler drin. Ich hab mir jetzt CP nummer 2 Gemacht auch wieder mit dem new Test[MAX_PLAYERS]; und da hab ich gesagt wen man da rein geht kommt wieder eine Nachricht aber egal in welchen der beiden ich reingehe da kommen immer beide nachrichten ... Was muss ich noch ändern ?


    //Ein Selfmade Roleplay Gamemode von MaZze in einer einzel Arbeit.
    //Dieser Gamemode wurde am [27.07.2013] um [04:26 Uhr] von [MaZze] angefangen.
    #include <a_samp>
    //Farben:
    #define Türkis 0x00FFF0FF
    #define Rot 0xFF1400FF
    #define Grün 0x4BFF00FF
    #define Gelb 0xF5FF00FF
    //Dialoge:
    #define Dialog_Geschichte 1
    #define Dialog_Stadthalle 2
    //News:
    new Geschichte[MAX_PLAYERS];
    new Test[MAX_PLAYERS];
    main()
    {
    print("\n----------------------------------");
    print(" Roleplay Gamemode von MaZze");
    print("----------------------------------\n");
    }
    public OnGameModeInit()
    {
    SetGameModeText("NewTown v0.1");
    AddPlayerClass(0,295.3136,-1768.1970,4.5425,180.3373,0,0,0,0,0,0); // SpielerSpawn
    AddStaticVehicle(411,311.7802,-1788.8721,4.3023,180.2812,1,1); // SpawnAuto
    CreatePickup(1239,1,292.9664,-1768.5336,4.5481,0);
    Create3DTextLabel("[Vorgeschichte]\n'/Geschichte'",Türkis,292.9664,-1768.5336,4.5481,10.0,0,0);
    return 1;
    }


    public OnGameModeExit()
    {
    return 1;
    }


    public OnPlayerRequestClass(playerid, classid)
    {
    SetPlayerPos(playerid,1656.0193,-1659.3383,22.5156);
    SetPlayerCameraPos(playerid,1657.8295,-1671.1321,22.2820);
    SetPlayerCameraLookAt(playerid,1656.0193,-1659.3383,22.5156);
    SetPlayerFacingAngle(playerid,187.7563);
    SetPlayerVirtualWorld(playerid,1);
    return 1;
    }


    public OnPlayerConnect(playerid)
    {
    return 1;
    }


    public OnPlayerDisconnect(playerid, reason)
    {
    return 1;
    }


    public OnPlayerSpawn(playerid)
    {
    SetPlayerVirtualWorld(playerid,0);
    return 1;
    }


    public OnPlayerDeath(playerid, killerid, reason)
    {
    return 1;
    }


    public OnVehicleSpawn(vehicleid)
    {
    return 1;
    }


    public OnVehicleDeath(vehicleid, killerid)
    {
    return 1;
    }


    public OnPlayerText(playerid, text[])
    {
    return 1;
    }


    public OnPlayerCommandText(playerid, cmdtext[])
    {
    if (strcmp("/mycommand", cmdtext, true, 10) == 0)
    {
    return 1;
    }
    if(strcmp("/Spawn",cmdtext,true,10)==0) //Löschen
    {
    SetPlayerCheckpoint(playerid,303.9389,-1776.8538,4.5100,5);
    SpawnPlayer(playerid);
    }
    if(strcmp("/Geschichte",cmdtext,true,10)==0)
    {
    if(IsPlayerInRangeOfPoint(playerid,1.0,292.9664,-1768.5336,4.5481))
    {
    ShowPlayerDialog(playerid,Dialog_Geschichte,DIALOG_STYLE_MSGBOX,"Vorgeschichte","Hier kommt die Geschichte hin !","Weiter","Abbrechen");
    }
    return 1;
    }
    return 0;
    }


    public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
    {
    return 1;
    }


    public OnPlayerExitVehicle(playerid, vehicleid)
    {
    return 1;
    }


    public OnPlayerStateChange(playerid, newstate, oldstate)
    {
    return 1;
    }


    public OnPlayerEnterCheckpoint(playerid)
    {
    if(Geschichte[playerid]==0)
    {
    SendClientMessage(playerid,Gelb,"Geh zur Information in der Stadthalle, und such das Einwohnermeldeamt.");
    DisablePlayerCheckpoint(playerid);
    }
    if(Test[playerid]==0)
    {
    SendClientMessage(playerid,Rot,"Fail0r");
    }
    return 1;
    }


    public OnPlayerLeaveCheckpoint(playerid)
    {
    return 1;
    }


    public OnPlayerEnterRaceCheckpoint(playerid)
    {
    return 1;
    }


    public OnPlayerLeaveRaceCheckpoint(playerid)
    {
    return 1;
    }


    public OnRconCommand(cmd[])
    {
    return 1;
    }


    public OnPlayerRequestSpawn(playerid)
    {
    return 1;
    }


    public OnObjectMoved(objectid)
    {
    return 1;
    }


    public OnPlayerObjectMoved(playerid, objectid)
    {
    return 1;
    }


    public OnPlayerPickUpPickup(playerid, pickupid)
    {
    return 1;
    }


    public OnVehicleMod(playerid, vehicleid, componentid)
    {
    return 1;
    }


    public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
    {
    return 1;
    }


    public OnVehicleRespray(playerid, vehicleid, color1, color2)
    {
    return 1;
    }


    public OnPlayerSelectedMenuRow(playerid, row)
    {
    return 1;
    }


    public OnPlayerExitedMenu(playerid)
    {
    return 1;
    }


    public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
    {
    return 1;
    }


    public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
    {
    return 1;
    }


    public OnRconLoginAttempt(ip[], password[], success)
    {
    return 1;
    }


    public OnPlayerUpdate(playerid)
    {
    return 1;
    }


    public OnPlayerStreamIn(playerid, forplayerid)
    {
    return 1;
    }


    public OnPlayerStreamOut(playerid, forplayerid)
    {
    return 1;
    }


    public OnVehicleStreamIn(vehicleid, forplayerid)
    {
    return 1;
    }


    public OnVehicleStreamOut(vehicleid, forplayerid)
    {
    return 1;
    }


    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    if(dialogid==Dialog_Geschichte)
    {
    if(response==1)
    {
    ShowPlayerDialog(playerid,Dialog_Stadthalle,DIALOG_STYLE_MSGBOX,"Personalien","Um in der Stadt bleiben zu können, und um dich auszuweisen\nbrauchst du einen Personalausweis.\n Fahre zur Stadthalle und besorge dir dort einen.\nDamit es schneller geht kannst du dir vor dem Haus\nein Fahrrad mieten.","OK","Abbrechen");
    }
    if(response==0)
    {
    SendClientMessage(playerid,Rot,"Du hast die Aufgabe abgebrochen.\n Versuche es bitte noch einmal.");
    }
    }
    if(dialogid==Dialog_Stadthalle)
    {
    if(response==1)
    {
    SetPlayerCheckpoint(playerid,1481.4243,-1738.6479,13.5469,4);
    SendClientMessage(playerid,Gelb,"Fahre zur Stadthalle");
    }
    if(response==0)
    {
    SendClientMessage(playerid,Rot,"Du hast die Aufgabe abgebrochen.\n Bitte versuche es noch einmal.");
    }
    }
    return 1;
    }


    public OnPlayerClickPlayer(playerid, clickedplayerid, source)
    {
    return 1;
    }

    2 Mal editiert, zuletzt von TropicalMonster () aus folgendem Grund: Problem gefunden

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen