Virtual World Spawn funktioniert nicht

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
  • Hallo.
    Ich habe mal gescriptet, dass Admins die virtuelle Welt setzen können.
    Dann habe ich eine Abfrage in OnPlayerSpawn gemacht. Aber der Spieler spawnt immer an dem normalen Spawn ......


    Habe schon vieles versucht. Habe es jetzt so, aber kriege 5 Errors:


    public OnPlayerSpawn(playerid)
    {
    PlayerPlaySound(playerid, 1036, 0.0, 0.0, 0.0);
    new pname[MAX_PLAYERS],accFormat[128];
    GetPlayerName(playerid,pname,sizeof pname);
    format(accFormat,sizeof accFormat,"%s.savgame",pname);
    //ResetPlayerWeapons(playerid);
    SetPlayerSkillLevel(playerid, WEAPONSKILL_SAWNOFF_SHOTGUN, 1);
    SetPlayerSkillLevel(playerid, WEAPONSKILL_MICRO_UZI, 1);

    if(gTeam[playerid] == 0 || IsAMafia(playerid))
    {
    GivePlayerWeapon(playerid, 4, 1);
    GivePlayerWeapon(playerid, 24, 50);
    GivePlayerWeapon(playerid, 25, 50);
    GivePlayerWeapon(playerid, 30, 450);
    SetPlayerColor(playerid, COLOR_RED);
    if(GetPlayerVirtualWorld(playerid)==1)
    {
    SetPlayerPos(playerid, 2201.2527,-1143.9147,1029.7969);
    SetPlayerInterior(playerid, 15);
    }
    else if(GetPlayerVirtualWorld(playerid)==2)
    {
    SetPlayerPos(playerid, 1264.6923,-773.4435,1091.9063);
    SetPlayerInterior(playerid, 5);
    }
    else if(GetPlayerVirtualWorld(playerid)==3)
    {
    SetPlayerPos(playerid, 2235.8574,1678.7686,1008.3594);
    SetPlayerInterior(playerid, 1);
    }
    }
    return 1;
    }

    if(gTeam[playerid] == 1 || IsAFBI(playerid))
    {
    GivePlayerWeapon(playerid, 41, 500);
    GivePlayerWeapon(playerid, 23, 300);
    GivePlayerWeapon(playerid, 27, 100);
    GivePlayerWeapon(playerid, 31, 450);
    SetPlayerColor(playerid, COLOR_MAFIA);
    if(GetPlayerVirtualWorld(playerid)==1)
    {
    SetPlayerPos(playerid, 2220.8381,-1153.0044,1025.7969);
    SetPlayerInterior(playerid, 15);
    }
    else if(GetPlayerVirtualWorld(playerid)==2)
    {
    SetPlayerPos(playerid, 1301.5267,-791.6212,1084.0149);
    SetPlayerInterior(playerid, 5);
    }
    else if(GetPlayerVirtualWorld(playerid)==3)
    {
    SetPlayerPos(playerid, 2152.2529,1600.2825,1006.1741);
    SetPlayerInterior(playerid, 1);
    }
    }
    return 1;
    }

  • C:\Documents and Settings\111\omafia.pwn(474) : error 010: invalid function or declaration
    C:\Documents and Settings\111\omafia.pwn(481) : error 010: invalid function or declaration
    C:\Documents and Settings\111\omafia.pwn(485) : error 010: invalid function or declaration
    C:\Documents and Settings\111\omafia.pwn(487) : error 010: invalid function or declaration
    C:\Documents and Settings\111\omafia.pwn(491) : error 010: invalid function or declaration
    C:\Documents and Settings\111\omafia.pwn(493) : error 010: invalid function or declaration
    C:\Documents and Settings\111\omafia.pwn(497) : error 010: invalid function or declaration
    C:\Documents and Settings\111\omafia.pwn(500) : error 010: invalid function or declaration
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    8 Errors.


    Hilft auch nicht wirklich ... die hab ich im Moment.


    //edit


    Jetzt habe ich ein Kommentar entfernt und die Errors sind weg ...
    Aber InGame spawne ich nicht woanders, obwohl ich vorher per /world2 Befehl die Welt auf 2 gesetzt habe ...

  • Die Virtuelle Welt wird in Samp nach SpielerTot auf 0 gesetzt, abhilfe schafft hierbei ein SpielerArray bzw. ein PVar, hier ein Beispiel:


    public OnPlayerCommandText(playerid, cmdtext[])
    {
    new string[128];
    if(!strcmp(cmdtext,"/myworld",false,strfind(cmdtext," ",false)))
    {
    strdel(cmdtext,0,strfind(cmdtext," ",false)+1);
    new world = strval(cmdtext);
    SetPlayerVirtualWorld(playerid,world);
    SetPVarInt(playerid,"PlayerWorld",world);
    format(string,sizeof(string),"* Du hast deine Welt auf %d gesetzt...",world);
    return SendClientMessage(playerid,0x000000FF,string);
    }
    return 0;
    }


    public OnPlayerSpawn(playerid)
    {
    SetPlayerVirtualWorld(playerid,GetPVarInt(playerid,"PlayerWorld")); //<-- Setzt die Spieler-Welt

    PlayerPlaySound(playerid, 1036, 0.0, 0.0, 0.0);
    new pname[MAX_PLAYERS],accFormat[128];
    GetPlayerName(playerid,pname,sizeof pname);
    format(accFormat,sizeof accFormat,"%s.savgame",pname);
    //ResetPlayerWeapons(playerid);
    SetPlayerSkillLevel(playerid, WEAPONSKILL_SAWNOFF_SHOTGUN, 1);
    SetPlayerSkillLevel(playerid, WEAPONSKILL_MICRO_UZI, 1);
    if(gTeam[playerid] == 0 || IsAMafia(playerid))
    {
    GivePlayerWeapon(playerid, 4, 1);
    GivePlayerWeapon(playerid, 24, 50);
    GivePlayerWeapon(playerid, 25, 50);
    GivePlayerWeapon(playerid, 30, 450);
    SetPlayerColor(playerid, COLOR_RED);
    if(GetPlayerVirtualWorld(playerid)==1)
    {
    SetPlayerPos(playerid, 2201.2527,-1143.9147,1029.7969);
    SetPlayerInterior(playerid, 15);
    }
    else if(GetPlayerVirtualWorld(playerid)==2)
    {
    SetPlayerPos(playerid, 1264.6923,-773.4435,1091.9063);
    SetPlayerInterior(playerid, 5);
    }
    else if(GetPlayerVirtualWorld(playerid)==3)
    {
    SetPlayerPos(playerid, 2235.8574,1678.7686,1008.3594);
    SetPlayerInterior(playerid, 1);
    }
    }

    if(gTeam[playerid] == 1 || IsAFBI(playerid))
    {
    GivePlayerWeapon(playerid, 41, 500);
    GivePlayerWeapon(playerid, 23, 300);
    GivePlayerWeapon(playerid, 27, 100);
    GivePlayerWeapon(playerid, 31, 450);
    SetPlayerColor(playerid, COLOR_MAFIA);
    if(GetPlayerVirtualWorld(playerid)==1)
    {
    SetPlayerPos(playerid, 2220.8381,-1153.0044,1025.7969);
    SetPlayerInterior(playerid, 15);
    }
    else if(GetPlayerVirtualWorld(playerid)==2)
    {
    SetPlayerPos(playerid, 1301.5267,-791.6212,1084.0149);
    SetPlayerInterior(playerid, 5);
    }
    else if(GetPlayerVirtualWorld(playerid)==3)
    {
    SetPlayerPos(playerid, 2152.2529,1600.2825,1006.1741);
    SetPlayerInterior(playerid, 1);
    }
    }
    return 1;
    }

    Mfg Templer


    >>Dein Breadfish-Thema im Unterforum ScriptingBase / Scriptingwünsche wurde nicht richtig beantworter?<<
    >>Es handelt sich um ein Programmier Problem und du nicht einfach weiter kommst wo der Fehler sein könnte?<<
    Dann melde dich bei mir über die PN-Funktion indem du den Link zu deinem Breadfish-Themen Problem schickst.
    Voraussetzung:
    Thema älter als 1 Tag und im Breadfish Forum gespostet!

  • Also wenn ich es so übernehme, sollte es klappen? ?(


    //edit (Gelöst!)


    Der Befehl geht auch wenn ich z.B. /myworld39834rhdfbe schreibe. Aber er geht nicht, wenn ich /myworld 3 schreibe ...


    //edit2 (Gelöst!)


    War mein Fehler ... Problem gelöst ...
    Aber immer wenn man spawnt wird man immer noch nicht in die andere Welt gesetzt ...


    //edit 3


    Problem gelöst, es funktioniert endlich!