Nützliche Codeschnipsel

  • if (!strcmp("/meinhaus", cmdtext))
    {
    if(IsPlayerAdmin(playerid))
    SetPlayerPos(playerid,1248.9946,-806.2303,84.1406);
    else
    SendClientMessage(playerid, rot, "Du bist kein Admin!");
    return 1;
    }


    Ist eindeutig kürzer.



  • Das ist kein Fragethread. :pinch:



    Okay...xD
    Und noch mal Zeilenplatzsparender :huh:

    if (!strcmp("/meinhaus", cmdtext))
    {
    if(IsPlayerAdmin(playerid)) SetPlayerPos(playerid,1248.9946,-806.2303,84.1406);
    else SendClientMessage(playerid, rot, "Du bist kein Admin!");
    return 1;
    }

    Einmal editiert, zuletzt von Rafelder ()

  • Nicht von mir aber nützlich:


    Car Namen


    //-------------[carnames]-------------------------
    new VehicleNames[212][] = {
    "Landstalker", "Bravura", "Buffalo", "Linerunner", "Perennial", "Sentinel",
    "Dumper", "Firetruck" , "Trashmaster" , "Stretch", "Manana", "Infernus",
    "Voodoo", "Pony", "Mule", "Cheetah", "Ambulance", "Leviathan", "Moonbeam",
    "Esperanto", "Taxi", "Washington", "Bobcat", "Mr Whoopee", "BF Injection",
    "Hunter", "Premier", "Enforcer", "Securicar", "Banshee", "Predator", "Bus",
    "Rhino", "Barracks", "Hotknife", "Trailer", "Previon", "Coach", "Cabbie",
    "Stallion", "Rumpo", "RC Bandit", "Romero", "Packer", "Monster", "Admiral",
    "Squalo", "Seasparrow", "Pizzaboy", "Tram", "Trailer", "Turismo", "Speeder",
    "Reefer", "Tropic", "Flatbed","Yankee", "Caddy", "Solair","Berkley's RC Van",
    "Skimmer", "PCJ-600", "Faggio", "Freeway", "RC Baron","RC Raider","Glendale",
    "Oceanic", "Sanchez", "Sparrow", "Patriot", "Quad", "Coastguard", "Dinghy",
    "Hermes", "Sabre", "Rustler", "ZR-350", "Walton", "Regina", "Comet", "BMX",
    "Burrito", "Camper", "Marquis", "Baggage", "Dozer","Maverick","News Chopper",
    "Rancher", "FBI Rancher", "Virgo", "Greenwood","Jetmax","Hotring","Sandking",
    "Blista Compact", "Police Maverick", "Boxville", "Benson","Mesa","RC Goblin",
    "Hotring Racer", "Hotring Racer", "Bloodring Banger", "Rancher", "Super GT",
    "Elegant", "Journey", "Bike", "Mountain Bike", "Beagle", "Cropdust", "Stunt",
    "Tanker", "RoadTrain", "Nebula", "Majestic", "Buccaneer", "Shamal", "Hydra",
    "FCR-900","NRG-500","HPV1000","Cement Truck","Tow Truck","Fortune","Cadrona",
    "FBI Truck", "Willard", "Forklift","Tractor","Combine","Feltzer","Remington",
    "Slamvan", "Blade", "Freight", "Streak","Vortex","Vincent","Bullet","Clover",
    "Sadler", "Firetruck", "Hustler", "Intruder", "Primo", "Cargobob", "Tampa",
    "Sunrise", "Merit", "Utility Truck", "Nevada", "Yosemite", "Windsor", "Monster",
    "Monster","Uranus","Jester","Sultan","Stratum","Elegy","Raindance","RCTiger",
    "Flash","Tahoma","Savanna", "Bandito", "Freight", "Trailer", "Kart", "Mower",
    "Dune", "Sweeper", "Broadway", "Tornado", "AT-400", "DFT-30", "Huntley",
    "Stafford", "BF-400", "Newsvan","Tug","Trailer","Emperor","Wayfarer","Euros",
    "Hotdog", "Club", "Trailer", "Trailer","Andromada","Dodo","RC Cam", "Launch",
    "Police Car LSPD", "Police Car SFPD","Police Car LVPD","Police Ranger",
    "Picador", "S.W.A.T. Van", "Alpha", "Phoenix", "Glendale", "Sadler",
    "Luggage Trailer","Luggage Trailer","Stair Trailer", "Boxville", "Farm Plow",
    "Utility Trailer"
    };



    PlayerToPoint


    //--------------------------------------------[PlayerToPoint]------------------------------------------
    stock PlayerToPoint(Float:radi, playerid, Float:x, Float:y, Float:z)
    {
    if(IsPlayerConnected(playerid))
    {
    new Float:oldposx, Float:oldposy, Float:oldposz;
    new Float:tempposx, Float:tempposy, Float:tempposz;
    GetPlayerPos(playerid, oldposx, oldposy, oldposz);
    tempposx = (oldposx -x);
    tempposy = (oldposy -y);
    tempposz = (oldposz -z);
    if (((tempposx < radi) && (tempposx > -radi)) && ((tempposy < radi) && (tempposy > -radi)) && ((tempposz < radi) && (tempposz > -radi)))
    {
    return 1;
    }
    }
    return 0;
    }



    GetDistanceBetweenPlayers


    //-------------------------------------------[GetDistanceBetweenPlayers]-------------------------------------
    stock GetDistanceBetweenPlayers(playerid, playerid2)
    {
    new Float:x1,Float:y1,Float:z1,Float:x2,Float:y2,Float:z2;
    new Float:tmpdis;
    GetPlayerPos(playerid,x1,y1,z1);
    GetPlayerPos(playerid2,x2,y2,z2);
    tmpdis = floatsqroot(floatpower(floatabs(floatsub(x2,x1)),2)+floatpower(floatabs(floatsub(y2,y1)),2)+floatpower(floatabs(floatsub(z2,z1)),2));
    return floatround(tmpdis);
    }



    mfg


    InFaIN

    Zuletzt gehört:


    Zitat von Chip 04/2009

    Starter


    Windows 7 Starter wird weltweit als OEM-Version verkauft. Gedacht ist sie etwa für Netbooks mit geringer Ausstattung. Ziemlich unpraktisch: Mit ihr kann man nur drei Programme gleichzeitig ausführen. Kosten: rund 50 Dollar.

  • Ich habe soeben meine erste .inc geschrieben. Es eig nur ein Befehl, der aber sehr nützlich sein kann:



    AddTeleport(playerid,Float:X,Float:Y,Float:Z,Float:Angle,int,vir,price) //XYZ koords, Angle=Drehung, int=interior, vir=virtualworld, price=Preis


    Ist zwar nur ne kleinichkeit, bin aber trotzdem stolz :P


    PS: wenn man bei price 50 eingibt, werden 50 abgezogen(GivePlayerMoney(playerid,-price); )


    breadfish.de/wcf/attachment/148/


    Ich scripte NICHT mehr, ich möchte mit NIEMANDEM einen Server aufmachen habe auch NICHTS mehr mit LoH zu tun, also lasst es mit den PNs!


  • naya^^ aba eigl schon ganz ok^^

  • Hehe, ja. Ich tüftel weiter an etwas größerem, dann post ichs hier


    Ich scripte NICHT mehr, ich möchte mit NIEMANDEM einen Server aufmachen habe auch NICHTS mehr mit LoH zu tun, also lasst es mit den PNs!

  • Ich habe ma einen Nitrocmd erstellt, bei dem der Client nicht Crashen kann:



    stock IsNoNitroCar(vehicleid)
    {
    if(vehicleid == 581 || vehicleid == 523 || vehicleid == 462 || vehicleid == 521 || vehicleid == 463 || vehicleid == 522 || vehicleid == 461 || vehicleid == 448 || vehicleid == 468 || vehicleid == 586 || vehicleid == 509 || vehicleid == 481 || vehicleid == 510 || vehicleid == 472 || vehicleid == 473 || vehicleid == 493 || vehicleid == 595 || vehicleid == 484 || vehicleid == 430 || vehicleid == 453 || vehicleid == 452 || vehicleid == 446 || vehicleid == 454 || vehicleid == 590 || vehicleid == 569 || vehicleid == 537 || vehicleid == 538 || vehicleid == 570 || vehicleid == 449)
    {
    return 1;
    }
    else return 0;
    }


    Dann hier der eigentlich cmd:



    if (strcmp("/nitro", cmdtext, true) == 0)
    {
    if (IsPlayerInAnyVehicle(playerid))
    {
    if(IsNoNitroCar(GetVehicleModel(GetPlayerVehicleID(playerid))))
    {
    SendClientMessage(playerid,RED,"Dein Auto ist nicht Nitro-Kampatibel!");
    SetVehicleHealth(GetPlayerVehicleID(playerid), 1000);
    }
    else
    {
    AddVehicleComponent(GetPlayerVehicleID(playerid), 1010);
    }
    }
    else SendClientMessage(playerid, RED, "Du bist in keinem Fahrzeug!");
    return 1;
    }


    Ich scripte NICHT mehr, ich möchte mit NIEMANDEM einen Server aufmachen habe auch NICHTS mehr mit LoH zu tun, also lasst es mit den PNs!

  • Gibt zurück, wieviele User gerade online sind. Nützlich für Teambalance Scripte :D

    stock GetOnlinePlayers()
    {
    new players = 0;
    for(new i=0; i<GetMaxPlayers(); i++)
    {
    if(IsPlayerConnected(i)) players++;
    }
    return players;
    }

    Mit freundlichen Grüßen


    Einstein


  • Servername alle X Sekunden ändern mit X-beliebig vielen Namen.



    forward Hostname();
    #define MAX_NAMES 5
    new Name;
    new Names[MAX_NAMES][] = {"First Name", "Second Name", "Third Name", "Fourth Name", "Fifth Name"};
    new Nstring[128];


    SetTimer("Hostname", 10*1000, 1);
    Name = 0;



    public Hostname()
    {
    for(new i=0; i<MAX_NAMES; i++)
    {
    if(Name = i)
    {
    format(Nstring, sizeof(Nstring), "hostname %s", Names[i]);
    if(Name = MAX_NAMES) Name = 0;
    else Name++;
    break;
    }
    }
    SendRconCommand(Nstring);
    return 1;
    }


    SendClientMessageEx(playerid, color, string[], {Float,_}:...);



    #define MAX_STRTOK_VALUE 265
    stock SendClientMessageFormat[MAX_STRTOK_VALUE];
    #define SendClientMessageEx(%1,%2,%3,%4); format(SendClientMessageFormat,MAX_STRTOK_VALUE,%3,%4);SendClientMessage(%1,%2,SendClientMessageFormat);


    RandomPlayer()


    Etwas auf dem alten Stand....


    stock RandomPlayer()
    {
    new Count;
    for(new i=0; i<GetMaxPlayers(); i++) if(IsPlayerConnected(i)) Count ++;
    if(Count == 0) return INVALID_PLAYER_ID;
    new Players[Count];
    Count=0;
    for(new i=0; i<GetMaxPlayers(); i++) Players[Count] = playerid; Count++;
    return Players[random(Count)];
    }


    LoadClasses(...);


    Nicht von mir! Erstellt alles Playerclassen ausser die "..."


    stock LoadClasses( ... )
    {
    new bBreak = 0, iNumArgs= numargs( );
    for(new i=0; i<300; i++)
    {
    for(new j=0; j<iNumArgs; j++)
    {
    if(i == getarg(j))
    {
    bBreak = 1;
    break;
    }
    }
    if (!bBreak)
    {
    switch(i)
    {
    case 3 .. 6, 8, 42, 65, 74, 86, 119, 149, 208, 273, 289: continue;
    }
    AddPlayerClass(i, Start_Config);
    }
    bBreak = 0;
    }
    return 1;
    }


    AddTextCommand(const command[], color, const message[], text[])


    Unter OnPlayerText(Bsp.): AddTextCommand("!test", 0x00FF00FF, "Test Cmd", text);



    stock AddTextCommand(const command[], color, const message[], text[])
    {
    if (!strcmp(text, command, true)) {
    SendClientMessageToAll(color, message);
    return 1;
    }
    return 1;
    }

    6 Mal editiert, zuletzt von Rafelder ()

  • Meine Version vom Servernamen ändern!



    Ich hatte diese version genau zu dem Zeitpunkt programiert wo ihn Rafelder hereingestellt hat....... Er war nur schneller als ich :(


    Also das hier ganz oben hin:


    forward changename();
    //changename
    #define MAX_SERVER_NAMES 2
    new server_name;
    new server_names[MAX_SERVER_NAMES][] = {
    {"Name1"},
    {"Name2"}
    };


    Um jetzt mehr servernamen zu nehmen muss man 1. MAX_SERVER_NAMES einstellen und 2. den namen im array hinzufügen....




    So nun dies hier bei OnGamemOdeInit:


    SetTimer("changename",6000,1);


    Will man nun den intervall ändern einfach die Timerzeit verändern........




    So schließlich das ans ende vom Script:


    public changename()
    {
    new string[255];
    if(server_name >= MAX_SERVER_NAMES-1)
    server_name = -1;
    if(server_name < MAX_SERVER_NAMES-1)
    server_name++;
    format(string,sizeof(string),"hostname %s",server_names[server_name]);
    SendRconCommand(string);
    }




    Mich würde interesieren welche version besser ist......



    mfg



    InFaIN

    Zuletzt gehört:


    Zitat von Chip 04/2009

    Starter


    Windows 7 Starter wird weltweit als OEM-Version verkauft. Gedacht ist sie etwa für Netbooks mit geringer Ausstattung. Ziemlich unpraktisch: Mit ihr kann man nur drei Programme gleichzeitig ausführen. Kosten: rund 50 Dollar.

  • Ein neuer Codeschnipsel von mir. Is nur ne ganzganz kleine Kleinigkeit, aber sehr nützlich für die Godfahternutzer:



    stock IsPlayerInFrac(playerid,fracid)
    {
    if (PlayerInfo[playerid][pMember] == fracid || PlayerInfo[playerid][pLeader] == fracid) return 1;
    else return 0;
    }


    Ein Beispiel dafür:



    if(IsPlayerInFrac(playerid,1) print("Er ist ein Cop!");
    else print("Er ist kein Cop!");


    Ich scripte NICHT mehr, ich möchte mit NIEMANDEM einen Server aufmachen habe auch NICHTS mehr mit LoH zu tun, also lasst es mit den PNs!

  • VehicleChat(playerid,text[])
    playerid = Player ID des Spieler der den Text schreibt
    text = Textnachricht die an die restlichen Leute im Fahrzeug gesendet werden soll.


    ... Bezug auf den Thread : Klick

    #define COLOR_RED 0xAA3333AA
    #define COLOR_BLUE 0x0099FFAA


    stock VehicleChat(playerid,text[]) {
    new
    vid=GetPlayerVehicleID(playerid),
    s[128],
    ThePlayer[MAX_PLAYER_NAME];
    GetPlayerName(playerid,ThePlayer,MAX_PLAYER_NAME);
    format(s,sizeof(s),"[VehicleChat]%s: %s",ThePlayer,text);
    if(vid!=0) {
    for(new i,j=GetMaxPlayers();i<j;i++) {
    if(GetPlayerVehicleID(i)==vid) {
    SendClientMessage(i,COLOR_BLUE,s);
    }
    }
    }
    return 1;
    }
    /* Beispiel */
    public OnPlayerCommandText(playerid, cmdtext[])
    {
    if(!strcmp(cmdtext,"/vchat",false,6)) {
    if(!strlen(cmdtext[7])) return SendClientMessage(playerid,COLOR_RED,"You failed!");
    return VehicleChat(playerid,cmdtext[7]);
    }
    return 0;
    }


  • Es ist in etwa wie pulic, nur dass man Sachen wie floatsub(x,y,blabla) oder so wiedergeben kann, nur es wird nur von Copiler beachtet, wenn es denn Auch im Script nochmals benutzt wird.
    Bitte koregieren, bin nicht sicher!


    Ich scripte NICHT mehr, ich möchte mit NIEMANDEM einen Server aufmachen habe auch NICHTS mehr mit LoH zu tun, also lasst es mit den PNs!

  • <br><blockquote username="Driver" linkhref="index.php?page=Thread&amp;postID=48#post48" class="wysiwygQuote">So: Afk Command:<br><b> Unter public OnPlayerCommandText(playerid, cmdtext []) dass einfügen:</b><br>if(strcmp(cmdtext, "/afk", true) == 0) { <br>new str[256], pname[256]; GetPlayerName(playerid, pname, 256);<br>format(str, 256, "*%s ist afk!", pname, cmdtext[4]);<br>SendClientMessage(playerid, COLOR_RED, "Um dich Zurück zumelden, tippe /back");<br>SendClientMessageToAll(0x4682B4AA, str);<br>TogglePlayerControllable(playerid, 0);<br>return 1;<br>}<br>if(strcmp(cmdtext, "/back", true) == 0) {<br>new str[256], pname[256]; GetPlayerName(playerid, pname, 256);<br>format(str, 256, "*%s ist von afk zurueck!", pname, cmdtext[4]);<br>SendClientMessageToAll(0x4682B4AA, str);<br>GameTextForPlayer(playerid,"~w~willkommen zurueck. :)!",2500,3);<br>TogglePlayerControllable(playerid, 1);<br>return 1;<br>}<br>Mit /afk kannst du dich abmelden, mit /back zurück.<br><br>Wenn ihr die Farben nocht nicht habt, einfach ändern oder Definieren.<br><br>#define COLOR_FARBENNAME Farben Hexcode am Anfang eurer Gamemode.<br><br>Bei Fehlern, bitte Posten, anders kann ich es nicht Korrigieren. <img src="../wcf/images/smilies/wink.png" alt=";)"></blockquote><br>da kommt bei mir immer fehlercode:<br><br>C:\Dokumente und Einstellungen\Flori\Eigene Dateien\Projeckte\samp022server.win32(2)\pawno\life.pwn(146) : warning 217: loose indentation<br>C:\Dokumente und Einstellungen\Flori\Eigene Dateien\Projeckte\samp022server.win32(2)\pawno\life.pwn(149) : warning 217: loose indentation<br>C:\Dokumente und Einstellungen\Flori\Eigene Dateien\Projeckte\samp022server.win32(2)\pawno\life.pwn(149) : error 029: invalid expression, assumed zero<br>C:\Dokumente und Einstellungen\Flori\Eigene Dateien\Projeckte\samp022server.win32(2)\pawno\life.pwn(149) : error 004: function "OnPlayerInfoChange" is not implemented<br>C:\Dokumente und Einstellungen\Flori\Eigene Dateien\Projeckte\samp022server.win32(2)\pawno\life.pwn(154) : warning 225: unreachable code<br>C:\Dokumente und Einstellungen\Flori\Eigene Dateien\Projeckte\samp022server.win32(2)\pawno\life.pwn(154) : error 029: invalid expression, assumed zero<br>C:\Dokumente und Einstellungen\Flori\Eigene Dateien\Projeckte\samp022server.win32(2)\pawno\life.pwn(154) : error 004: function "OnPlayerEnterVehicle" is not implemented<br>C:\Dokumente und Einstellungen\Flori\Eigene Dateien\Projeckte\samp022server.win32(2)\pawno\life.pwn(159) : warning 225: unreachable code<br>C:\Dokumente und Einstellungen\Flori\Eigene Dateien\Projeckte\samp022server.win32(2)\pawno\life.pwn(159) : error 029: invalid expression, assumed zero<br>C:\Dokumente und Einstellungen\Flori\Eigene Dateien\Projeckte\samp022server.win32(2)\pawno\life.pwn(159) : error 004: function "OnPlayerExitVehicle" is not implemented<br>C:\Dokumente und Einstellungen\Flori\Eigene Dateien\Projeckte\samp022server.win32(2)\pawno\life.pwn(164) : warning 225: unreachable code<br>C:\Dokumente und Einstellungen\Flori\Eigene Dateien\Projeckte\samp022server.win32(2)\pawno\life.pwn(164) : error 029: invalid expression, assumed zero<br>C:\Dokumente und Einstellungen\Flori\Eigene Dateien\Projeckte\samp022server.win32(2)\pawno\life.pwn(164) : error 004: function "OnPlayerStateChange" is not implemented<br>C:\Dokumente und Einstellungen\Flori\Eigene Dateien\Projeckte\samp022server.win32(2)\pawno\life.pwn(169) : warning 225: unreachable code<br>C:\Dokumente und Einstellungen\Flori\Eigene Dateien\Projeckte\samp022server.win32(2)\pawno\life.pwn(169) : error 029: invalid expression, assumed zero<br>C:\Dokumente und Einstellungen\Flori\Eigene Dateien\Projeckte\samp022server.win32(2)\pawno\life.pwn(169) : error 004: function "OnPlayerEnterCheckpoint" is not implemented<br>C:\Dokumente und Einstellungen\Flori\Eigene Dateien\Projeckte\samp022server.win32(2)\pawno\life.pwn(174) : warning 225: unreachable code<br>C:\Dokumente und Einstellungen\Flori\Eigene Dateien\Projeckte\samp022server.win32(2)\pawno\life.pwn(174) : error 029: invalid expression, assumed zero<br>C:\Dokumente und Einstellungen\Flori\Eigene Dateien\Projeckte\samp022server.win32(2)\pawno\life.pwn(174) : error 004: function "OnPlayerLeaveCheckpoint" is not implemented<br>C:\Dokumente und Einstellungen\Flori\Eigene Dateien\Projeckte\samp022server.win32(2)\pawno\life.pwn(179) : warning 225: unreachable code<br>C:\Dokumente und Einstellungen\Flori\Eigene Dateien\Projeckte\samp022server.win32(2)\pawno\life.pwn(179) : error 029: invalid expression, assumed zero<br>C:\Dokumente und Einstellungen\Flori\Eigene Dateien\Projeckte\samp022server.win32(2)\pawno\life.pwn(179) : error 004: function "OnPlayerEnterRaceCheckpoint" is not implemented<br>C:\Dokumente und Einstellungen\Flori\Eigene Dateien\Projeckte\samp022server.win32(2)\pawno\life.pwn(184) : warning 225: unreachable code<br>C:\Dokumente und Einstellungen\Flori\Eigene Dateien\Projeckte\samp022server.win32(2)\pawno\life.pwn(184) : error 029: invalid expression, assumed zero<br>C:\Dokumente und Einstellungen\Flori\Eigene Dateien\Projeckte\samp022server.win32(2)\pawno\life.pwn(184) : error 004: function "OnPlayerLeaveRaceCheckpoint" is not implemented<br>C:\Dokumente und Einstellungen\Flori\Eigene Dateien\Projeckte\samp022server.win32(2)\pawno\life.pwn(189) : warning 225: unreachable code<br>C:\Dokumente und Einstellungen\Flori\Eigene Dateien\Projeckte\samp022server.win32(2)\pawno\life.pwn(189) : error 029: invalid expression, assumed zero<br>C:\Dokumente und Einstellungen\Flori\Eigene Dateien\Projeckte\samp022server.win32(2)\pawno\life.pwn(189) : error 004: function "OnRconCommand" is not implemented<br>C:\Dokumente und Einstellungen\Flori\Eigene Dateien\Projeckte\samp022server.win32(2)\pawno\life.pwn(194) : warning 225: unreachable code<br>C:\Dokumente und Einstellungen\Flori\Eigene Dateien\Projeckte\samp022server.win32(2)\pawno\life.pwn(194) : error 029: invalid expression, assumed zero<br>C:\Dokumente und Einstellungen\Flori\Eigene Dateien\Projeckte\samp022server.win32(2)\pawno\life.pwn(194) : error 004: function "OnObjectMoved" is not implemented<br>C:\Dokumente und Einstellungen\Flori\Eigene Dateien\Projeckte\samp022server.win32(2)\pawno\life.pwn(199) : warning 225: unreachable code<br>C:\Dokumente und Einstellungen\Flori\Eigene Dateien\Projeckte\samp022server.win32(2)\pawno\life.pwn(199) : error 029: invalid expression, assumed zero<br>C:\Dokumente und Einstellungen\Flori\Eigene Dateien\Projeckte\samp022server.win32(2)\pawno\life.pwn(199) : error 004: function "OnPlayerObjectMoved" is not implemented<br>C:\Dokumente und Einstellungen\Flori\Eigene Dateien\Projeckte\samp022server.win32(2)\pawno\life.pwn(204) : warning 225: unreachable code<br>C:\Dokumente und Einstellungen\Flori\Eigene Dateien\Projeckte\samp022server.win32(2)\pawno\life.pwn(204) : error 029: invalid expression, assumed zero<br>C:\Dokumente und Einstellungen\Flori\Eigene Dateien\Projeckte\samp022server.win32(2)\pawno\life.pwn(204) : error 004: function "OnPlayerPickUpPickup" is not implemented<br>C:\Dokumente und Einstellungen\Flori\Eigene Dateien\Projeckte\samp022server.win32(2)\pawno\life.pwn(209) : warning 225: unreachable code<br>C:\Dokumente und Einstellungen\Flori\Eigene Dateien\Projeckte\samp022server.win32(2)\pawno\life.pwn(209) : error 029: invalid expression, assumed zero<br>C:\Dokumente und Einstellungen\Flori\Eigene Dateien\Projeckte\samp022server.win32(2)\pawno\life.pwn(209) : error 004: function "OnPlayerSelectedMenuRow" is not implemented<br><br>Compilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase<br><br><br>26 Errors.<br><br><br>Ich bin noch Anfänger xD

  • Codeschnipsel, um Objekt Streamer zu testen, besonders wenn ihr einen eigenen macht nützlich. Yless hat hiermit auch seinen Objekt Streamer getestet.
    1.000.000 Objekte Test:
    for (new i = -3000; i < 3000; i += 6)
    {
    for (new j = -3000; j < 3000; j += 6)
    {
    CreateObject(1337, i, j, 10.0, 0.0, 0.0, 0.0);
    }
    }
    #define MAX (3000)
    for (new i = -MAX; i < MAX; i += 6)
    {
    for (new j = -MAX; j < MAX; j += 6)
    {
    CreateObject(1337, float(i), float(j), 10.0, 0.0, 0.0, 0.0);
    }
    }
    Zum anschauen:
    public OnPlayerCommandText(playerid, cmdtext[])
    {
    if( !strcmp(cmdtext, "/objects", true) )
    {

    SetPlayerPos(playerid,6,6,10);
    SetPlayerInterior(playerid,0);

    return 1;
    }
    return 1;
    }

    ICQ Scripting - Support 495961653
    Montags-Freitags ab 15 Uhr

  • kann mir wer sagen was stock bedeutet ? Also was mir das bringt ?

    Das "stock" vor einer Function ist nicht unbedingt notwendig, man kann es auch weglassen, das stock fügt praktisch automatisch ein
    #pragma unused <function name>
    ein.
    D.h. die Funktion die du machst, verursacht keine Warnung wenn du sie nicht benutzt.
    Das ist vor allem bei .inc Dateien nützlich, da dort meistens ein Haufen an Funktionen dem Benutzer bereitgestellt werden ohne dass dieser sie meistens alle nutzt, und das gäbe dann einen großen Haufen Warnungen die zwar keine Fehler verursachen aber natürlich die Compiler-Bericht-Box zuspammen würden.


    Ontopic:


    Hier ist eine kleine aber SEHR nützliche Funktion.
    Mir zumindest gibt es ein gewisses Maß an Sicherheit... da ich leider schon sehr viel schlechte Erfahrung mit Skriptklau gemacht habe...
    Diese Zeilen sollen verhindern, dass eure .amx Datei auf anderen Servern als eurem ausgeführt wird.
    Credits für die Funktion gehen an Y_Less.


    Benutzung:


    Fügt den ganz unten aufgeführten Code ganz an den Anfang von "OnGameModeInit()" ein.
    Ändert die "127.0.0.1" im Code in die IP eures Servers.
    Fügt in eurer server.cfg diese Zeile ein:


    bind 127.0.0.1


    Auch hier natürlich die 127.0.0.1 in eure Server IP umändern.


    Funktionsweise:


    Dieses Skript macht nun folgendes:
    Die SA-MP Entwickler haben die Funktion "bind <IP>" in die server.cfg eingefügt damit IP's auf einen Server festgelegt werden können...
    Startet der Server mit "bind 128.0.0.1" hat aber die IP 127.0.0.1 bricht er den Start ab und meldet einen Fehler.
    Normal kann dieser Befehl weggelassen werden. Hier aber kommt der Codeschnipsel ins Spiel.
    Er überprüft ob die Server IP die in der server.cfg notiert wurde, mit der im Skript übereinstimmt.
    Sollte dies nicht der Fall sein bannt er alle IP's vom Server und hängt ihn in einer Endlosschleife auf...
    Diese Methode ist ziemlich sicher, die einzige Methode um jetzt noch an eine funktiontüchtige .amx zu kommen ist ein decompiler... welcher aber besonders mit großen Skripts heftige Probleme hat und so wirklich wertvolle große Skripts zu 99.99 % abgesichert sind.


    Hier nun der Part der in den Anfang von "OnGameModeInit" kommt:



    new
    str[16];
    GetServerVarAsString("bind", str, sizeof (str));


    if (!str[0] || strcmp(str, "127.0.0.1", false))
    {
    SendRconCommand("banip *.*.*.*");
    for( ; ; ) { }
    }

    Einmal editiert, zuletzt von Tjong ()