Beiträge von Tround

    C:\Documents and Settings\ursula\Desktop\sf script\gamemodes\sf.pwn(204) : error 076: syntax error in the expression, or invalid function call
    C:\Documents and Settings\ursula\Desktop\sf script\gamemodes\sf.pwn(210) : error 001: expected token: ";", but found "}"
    C:\Documents and Settings\ursula\Desktop\sf script\gamemodes\sf.pwn(210) : error 036: empty statement
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    3 Errors.


    edit:
    danke es scheint zu klappen! hier der gefixxte code falls ihn jemand braucht in der zukunft



    ocmd:fahrzeugerespawnen(playerid,params[])
    {
    new bool:benutzt[MAX_VEHICLES];
    for(new p=0;p<GetMaxPlayers();p++)
    {
    if(GetPlayerState(p)==PLAYER_STATE_DRIVER)
    {
    benutzt[GetPlayerVehicleID(p)]=true;
    }
    }
    for(new v=0;v<MAX_VEHICLES;v++)
    {
    if(benutzt[v]==true)
    {
    continue;
    }
    SetVehicleToRespawn(v);
    }
    return 1;
    }

    moin. ich habe schon ein bisschen rumgesucht mit der sufu aber wirklich gebracht hat mir alles nichts.
    ich habe einen respawn befehl fuer fahrzeuge. nur will ich das wenn jemand in einem fahrzeug sitzt dieses nicht respawnt wird.
    hier mal mein code:



    ocmd:fahrzeugerespawnen(playerid,params[])
    {
    for(new s=0;s<MAX_PLAYERS;s++)
    {
    if(IsPlayerConnected(s))
    {
    for(new i=0;i<MAX_VEHICLES;i++)
    {
    if(!IsPlayerInVehicle(s,i))
    {
    SetVehicleToRespawn(i);
    }
    }
    }
    }
    return 1;
    }


    das problem ist nur das egal ob jemand drin sitzt oder nicht es werden einfach alle respawnt.

    fuer problem 1:



    format(inhalt, sizeof(inhalt),"In der Kasse deiner Fraktion sind %i$ eingezahlt!\nWillst du etwas einzahlen oder abheben? ",fkasse);

    anstatt %s fuer einen string brauchst du ein %i fuer ein integer .


    und das hier

    if(listitem==DIALOG_FKASSE)

    umaendern in

    if(dialogid==DIALOG_FKASSE)

    und das kommt in onplayerdialogresponse

    ich habe noch eine ganze weile rumprobiert aber es leider nicht hinbekommen. aber was mir aufgefallen ist.. bei OnDialogResponse klappt das ganze. ich denke mal weil die dialoge mit zahlen defined werden.



    switch(dialogid)
    {
    case DIALOG_LOGIN:
    {
    }
    case DIALOG_REGISTER:
    {
    }
    }

    der fehler hat mit den {} klammern ueberhaupt nichts zu tun.. man kann sie verwenden muss aber nicht.
    also ich sehe zwischen meinem und euren code keine grossen unterschiede ..der fehler bleibt der gleiche


    Code
    sf.pwn(44) : error 008: must be a constant expression; assumed zero


    hat noch jemand einen vorschlag ?

    moin.
    ich habe mir gedacht ich probiere unter onplayerpickuppickup ein switch aus nur leider bekomme ich einen fehler.



    new pickup1;
    pickup1=CreatePickup(1318,1,-1605.5558,710.2774,13.8672,0);


    public OnPlayerPickUpPickup(playerid, pickupid)
    {
    switch(pickupid)
    {
    case pickup1:{SetPlayerPos(playerid,-1983.1892,137.7320,27.6875);} //fehlerzeile
    }
    return 1;
    }


    fehler:

    Code
    sf.pwn(44) : error 008: must be a constant expression; assumed zero


    jetzt meine frage ist es ueberhaupt moeglich bei den switch cases buchstaben zu verwenden oder geht es nur mit zahlen? ich habe es auch so probiert da ich das irgendwo gelesen habe: case "pickup1": klappt aber genauso wenig. und ich will jetzt nicht hoeren ..arbeite doch mit if else.. darum gehts mir ja nicht.

    wieso
    if(IsPlayerConnected(i))


    ? schwachsin es sind zu den zeitpungt eh alle runter ;)


    also sind die spieler bereits disconnected wenn gamemodeexit oder onplayerdisconnect aufgerufen wird?
    wenn nicht wuerde er ja 500 sieler durchgehen deshalb isplayerconnected..


    und
    @Everest
    ich glaube du hast da etwas nicht ganz verstanden es geht ums speichern nicht ums registrieren.


    edit: also um es auf den punkt zu bringen: ist es ueberhaupt moeglich an diesen 2 stellen zu speichern oder sind die spieler bereits disconnected wenn diese publics aufgerufen werden?

    moin.
    habe eine kleine frage an euch vielleicht kennt sich einer aus^^
    ich habe versucht unter OnGameModeExit alle spieler abzuspeichern nur werden dabei alle werte auf 0 gesetzt.
    das gleiche passiert auch unter OnPlayerDisconnect. werden die publics aufgerufen nachdem die spieler schon disconnected sind oder warum passiert das immer? ich gebe mir ingame admin level 1 das wird auch gespeichert und in der ini steht adminlevel 1.. aber wenn ich gmx'e wird sofort eine 0 reingespeichert...



    public OnGameModeExit()
    {
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    acs(i);
    }
    }
    return 1;
    }


    hier genauso



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


    bei meinem testbefehl wird nichts auf 0 gesetzt



    ocmd:test(playerid,params[])
    {
    acs(playerid);
    return 1;
    }



    der stock falls was bringt:
    stock acs(playerid)
    {
    if(IsPlayerConnected(playerid))
    {
    format(stringbert,sizeof(stringbert),"spieler/%s.txt",sname(playerid));
    dini_IntSet(stringbert,"Geld",GetPlayerMoney(playerid));
    dini_IntSet(stringbert,"Level",GetPlayerScore(playerid));
    dini_IntSet(stringbert,"AdminLevel",GetPVarInt(playerid,"AdminLevel"));
    dini_IntSet(stringbert,"Fraktion",GetPVarInt(playerid,"Fraktion"));
    dini_IntSet(stringbert,"FrakRang",GetPVarInt(playerid,"FrakRang"));
    dini_IntSet(stringbert,"Fraksperre",GetPVarInt(playerid,"Fraksperre"));
    }
    return 1;
    }

    moin. ich komme nicht voran mit meinem problem. ich habe einen array erstellt und diesen moechte ich mit einer for schleife durchlaufen lassen um wieder alle werte auf 0 zu setzen.



    new array[MAX_PLAYERS][10];


    ocmd:omg(playerid,params[])
    {
    for(new i=0; i<sizeof(array); i++)
    {
    array[playerid][i]=0;
    format(stringbert,sizeof(stringbert),"%i",i);
    SendClientMessage(playerid,ROT,stringbert);
    }
    return 1;
    }

    jetzt habe ich das problem das er bei sizeof(array) den wert MAX_PLAYERS nimmt. aber ich moechte den anderen wert durchlaufen lassen. wenn ich in die chatbox schaue geht er 500 werte durch obwohl ich nur 10 brauche. habe schon dran gedacht den wert umzudrehen damit MAX_PLAYERS hinten steht aber es muesste doch auch anders gehen? hoffe jemand kennt eine antwort..
    mfg

    dieter bohlen - gasoline


    [video]

    Externer Inhalt www.youtube.com
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.
    [/video]


    edit luxxus war schneller ^^

    wird er denn disabled und wird die nachricht angezeigt?
    bei mir siehts so aus..
    start:
    SetPlayerCheckpoint(playerid, -1453.2153,39.5793,14.8683,10.0);
    checkpoint[playerid]=1;
    onplayerentercheckpoint:
    if(checkpoint[playerid]==1)
    {
    DisablePlayerCheckpoint(playerid);
    SetPlayerCheckpoint(playerid, -1349.7075,-69.3679,14.8746,10.0);
    checkpoint[playerid]=2;
    }
    else if(checkpoint[playerid]==2)
    {
    DisablePlayerCheckpoint(playerid);
    SetPlayerCheckpoint(playerid, -1291.1362,-158.2525,14.8748,10.0);
    checkpoint[playerid]=3;
    }
    sehe kein unterschied aber bei mir klappts

    Code
    warning 203: symbol is never used: "ret_memcpy"


    bedeutet soviel wie du hast eine variable erstellt die im ganzen script nicht genutzt wird.


    Code
    warning 219: local variable "str1" shadows a variable at a preceding level


    bedeutet du hast str1 2 x definiert. genauso bei str2

    Bin leider noch nicht wirklich gut in Scripten, Kannst du mir ein Beispiel geben ?



    public OnPlayerPickUpPickup(playerid, pickupid)
    {
    if(pickupid==pickupname)
    {
    SetTimerEx("pickuptimer", 4000, 0,"i",playerid);
    }
    return 1;
    }
    forward pickuptimer(playerid);
    public pickuptimer(playerid)
    {
    SetPlayerPos(playerid,x,y,z);
    return 1;
    }