Beiträge von whitetiiger

    hallo zusammen


    ich hab 2 wanings bei mein system




    C:\Dokumente und Einstellungen\jahn1\Eigene Dateien\SAMP NEUES SELFMADE\truckscript\gamemodes\new.pwn(695) : warning 235: public function lacks forward declaration (symbol "AFKTimer")
    C:\Dokumente und Einstellungen\jahn1\Eigene Dateien\SAMP NEUES SELFMADE\truckscript\gamemodes\new.pwn(699) : error 029: invalid expression, assumed zero





    public AFKTimer(playerid) <<<<<<<<<<<695
    {
    if(pInfo[playerid][AFK]== 1)
    {
    pInfo[playerid][AFKZEIT]= ++;<<<<<<<<<<<699
    }
    return 1;
    }








    bin für jede hilfe dankbar

    hallo com


    ich hab ma ne frage da mein altes selfmade nachher etwas unübersichtlich wurde


    hab ich jetzt nochmal neu angefangen und wollte mal fragen ob ich oben bei includs


    auch das hinschreiben kann


    #include <FRAKTION/LSPD>


    oder geht nur
    #include <LSPD>


    also redet nich von wegen "wieso willst du alles in includs haben" ich hab meine spizellen gründe dafür

    hallo com


    hab seid fast ne woche das alte CP von SAMP4YOU
    habs mir bei andi geholt
    und bekomme es aber nicht hin den server im CP modus zustarten


    kann mir einer weiter helfen????




    P.S. ich hab andi schon öfters angeschrieben er reagiert nicht

    hallo com


    ich bräuchte eure hilfe denn der server start ist am 30.12 und kann auch nicht mehr verschoben werden
    nur mein problem ist ich musste mit ein alten backup neustarten wo die ganzen commands fehlen
    jetzt meine frage würde sich eine bereit erklähren mir zuhelfen
    also ich hab selber ein selfmade was aber nur ein paar commands wie zb. kick, ban, makeleader, goto und gethere
    jetzt meine frage ob mir einer von euch bei den commands helfen würde
    die jenigen die mir helfen würden auf anerkennung auf dem server bekommen



    nur zwei verraussetzungen sind


    es muss in ocmd geschrieben sein und es muss mit sscanf arbeiten mit den anderen sehe ich nicht durch


    also zb. heir ein command


    ocmd:kick(playerid,params[])
    {
    if(!isPlayerAnAdmin(playerid,2))return SendClientMessage(playerid,ROT,"Du bist kein Admin.");
    new pID, reason[128],string[128];
    if(sscanf(params,"us",pID,reason))return SendClientMessage(playerid,BLAU,"/kick [id] [grund]");
    format(string,sizeof(string),"AdmCmd: %s wurde von %s gekickt. Grund: %s",SpielerName(pID),SpielerName(playerid),reason);
    SendClientMessageToAll(ROT,string);
    Kick(pID);
    return 1;
    }



    also wäre echt hilfreich wenn ihr mir das per PN schicken würdet


    P.s. bei weiteren fragen stehe ich selnbst verständlich die ganze nacht zu verfügung
    oder auch im TS 46.163.68.47:7777 oder auch in skype: jahnvoss


    Account:
    /rules - Zeigt die Regeln des Servers an.
    /stats - Zeigt deine Statistiken an
    /buylevel - Wird benutzt um ein level zu kaufen (kostet Respekt und Geld)


    Allgemein:
    /charity <Betrag> - Den angegebenen Betrag San Andreas spenden.
    /buycar - Wird benutzt um ein Auto zu kaufen (in einem Auto im Autohaus anwendbar)
    /showlicenses <id> - Deine Lizenzen Anzeigen (z.b. Flugschein)
    /members - zeigt dir die Member deiner Fraktion an, die auf dem Server sind


    Allgemein:
    /resetupgrades - Upgrades zurücksetzen (kostet 100.000$)
    /buygun <id> <Munitionsmenge> Waffe mit x Viel Munition kaufen (funktioniert nur im Waffenladen)
    /skill <Nummer> - Berufslevel anzeigen.
    /losinfo - Informationen zum Los vom Wettbüro
    /licenses - Lizenzen Anzeigen
    /lotto <Nummer> Lottolos kaufen (Zahlen von 1-200)
    /spawnchange Zwischen Hausspawn und normalen Spawn wechseln
    /dumpdrugs - Drogen wegschmeißen


    Allgemein:
    /cancel - Abbrechen
    /accept - Akzeptieren von Dienstleistungen/Strafen
    /eject <id> - Jemanden aus dem Auto schmeißen
    /usedrugs - Drogen benutzen
    /contract - Killauftrag abgeben
    /fill (<Menge>)- Auto an der Tankstelle volltanken oder nur eine bestimmte Menge tanken
    /fillcar - Auto mit Tankkanister tanken.
    /navihelp - listet Navigationspunkte auf
    /service - Service rufen (z.b. Taxi)
    /families - Mafia-Familien anzeigen


    Chat:
    /a <Text> - einen Text an die Admins schreiben (NICHT SPAMMEN!)
    /sup <Text> - einen Text an die Supporter schreiben (NICHT SPAMMEN!)
    /w <id> <Text> - jemanden etwas zuflüstern
    /o <Text> - einen Text in den O-Chat schreiben (NICHT SPAMMEN!); meist nur nachts offen
    /s <Text> - einen Text schreien
    /b <Text> - einen Text in Klammern schreiben
    /c <Text> - einen Text schreiben
    /l <Text> - einen Text schreiben
    /ad <Text> - eine Werbung schreiben (nur aller 60 Sek. möglich)
    /f <Text> - einen Text an deine Familien/Gang- Mitglieder schreiben
    /me <Text> - Beschreibung von Eigentätigkeiten (z.B. /me ist mal kurz afk)


    Haus:
    /enter - Gebäude betreten
    /exit - Gebäude/leere Autos verlassen
    /open - Haus ab/aufschließen
    /home - dein/e Haus/Mietwohnung auf der Karte einzeichnen
    /houseupgrade - dein Haus upgraden (Heilungsupgrade)
    /setrentable <0|1> - Haus mietbar/nicht mietbar machen
    /evictall - alle Mieter kündigen
    /setrent <Geldbetrag> - Miete festlegen
    /evict <id> - nur einen Mieter kündigen
    /heal - kostenloses Heilen nach Heilungsupgrade
    /housewithdraw <Geldbetrag> - Miete vom Haus abheben


    Biz:
    /bizinfo - zeigt Informationen zum Biz an
    /bizfee <Geldetrag> - Eintritt des Bizes festlegen
    /bizname <Name> - Name des Biz festlegen
    /prodprice <Geldbetrag> - Prodpreis für Biz festlegen
    /extortion - Biz-Besitzer erpressen (10% vom Gewinn)
    /sellbiz - Biz verkaufen
    /bizbank <Geldbetrag> - bestimmten Geldbetrag auf die Bizkasse einzahlen
    /bizwithdraw <Geldbetrag> - Geld vom Biz abheben
    /bizeject <id> - jemanden aus seinem Biz rausschmeißen


    Gangkasse:
    /gdeposit <Betrag> - Geldbetrag in die Gangkasse zahlen
    /gwithdraw <Betrag> - Geldbetrag aus der Gangkasse nehmen
    /gbalance - Stand der Gangkasse anzeigen


    Dienstleister anzeigen lassen:
    /taxis - Taxifahrer, die online sind, anzeigen lassen
    /mechanics - Mechaniker, die online sind, anzeigen lassen
    /oamt - Ordnungs-Bamten, die online sind, anzeigen lassen
    /medics - Sanitäter, die online sind, anzeigen lassen
    /anwaelte - Anwälte, die online sind, anzeigen lassen
    /bauern - Bauern, die online sind, anzeigen lassen
    /detectives - Detektive, die online sind, anzeigen lassen


    Leader-Befehle:
    /invite <id> - jemanden in die Fraktion/Mafia/Gang einladen
    /uninvite <id> - jemanden aus der Fraktion/Mafia/Gang rausschmeißen
    /giverank <id> <1-6 bzw. 0-12> - jemanden einen bestimmten Rang in der Fraktion/Mafia/Gang geben
    /carhelp - Gangfahrzeug- Übersicht
    /listgangcar - Gangfahrzeug- Übersicht
    /setgangmotd - Message of the day für Fraktion (| für Zeilenumbruch)
    /startwar - einer Fraktion den Krieg erklären (aller 2 Wochen nur änderbar, 25 mio aus Gangkasse)
    /stopwar - Kriegsgegner austragen
    /warinfo - Gegner anzeigen lassen



    Waffendealer:
    /materials get 10 - gibt dir Materialienpakete in der Scheune
    /materials deliver - baut aus den Paketen die Materialien an der Baustelle
    /put mats <Anzahl> - packt Mats in die Safebox
    /gtake mats <Anzahl> - holt Mats aus der Safebox
    /sellgun <id> <Waffe> - jemanden eine Waffe bauen


    Autodieb:
    /breakcar - ein abgeschlossenes Auto aufbrechen
    /dropcar - markiert die Docks in SF zum Autoabgeben


    Bauer:
    /harvest - mit dem Mähdräscher bestimmte Punkte abfahren, um Dogen zu ernten


    Mechaniker:
    /refill <id> <Preis> - jemanden anbieten, sein Auto aufzutanken
    /repair <id> <Preis> - jemanden anbieten, sein Auto zu reparieren


    Hure:
    /sex <id> <Preis> - jemanden Sex mit sich anbieten.


    Taschendieb:
    /rob - jemanden ausrauben (Achtung, er kann weglaufen)


    Drogendealer:
    /drugprice - zeigt den aktuellen Drogenpreis an
    /get drugs <Anzahl> - Holt Drogen vom Drogenpunkt.(Päckchen auf der Drogenfarm)
    /put drugs <Anzahl> - packt Drogen in die Safebox
    /gtake drugs <Anzahl> - nimmt Drogen aus der Safebox
    /selldrugs <id> <Anzahl> <Preis> - jemand anbieten eine bestimmte Menge Drogen zum angegebenen Preis zu kaufen


    Trucker:
    /findfuel - Checkpoint zum Benzin-Abholpunkt setzen
    /fill <Menge> - Benzin beim Fleischberger einladen
    /sellfuel - Benzin an Tankstelle verkaufen
    /findimport - Checkpoint zum LS-Hafen setzen
    /loadimport - Importgüter vom Hafen einladen
    /sellimport - Importgüter beim Fleischberger verkaufen
    /cb <Text> - mit anderen Truckern funken, wenn man im Truck sitzt
    /gettrailer <Benzin/Ware> - einen Trailer spawnen lassen
    /gettrailer destroy - nicht mehr gebrauchen Hänger zu vernichten


    Taxifahrer:
    /fare <Preis> - Fahrgeld im Taxi festlegen


    Busfahrer:
    /fare <Preis> - Fahrgeld im Bus festlegen


    Dedektiv:
    /find <id> - eine bestimmte Person finden
    /showpos <id> - jemanden die Position anzeigen lassen


    Anwalt:
    /freeinfo <id> - Zeigt an, was es kosten würde, die Person aus dem Gefängnis zu holen
    /free <id> - jemanden aus dem Gefängnis holen


    Newsreporter:
    /news <Text> - Einen Newstext verfassen (nur im Newsvan oder Chooper möglich)
    /tognews - Die News ausschalten
    /live <id> | Ein Livegespräch beginnen (Ab Skill 5)
    /newsopen - öffnet das Tor
    /newsclose - schließt das Tor


    Cop:
    /mv - Tor im # öffnen
    /lspd1 - Tor 1 am LSPD öffnen
    /lspd2 - Tor 2 am LSPD öffnen
    /camera - (Altes Armycom) im Area 51 das alte Prison überwachen, durch 5 verschieden Ansichten
    /arrest <Preis> <Zeit> (max 20min) Kaution (1= Ja | 0= Nein) Kautionspreis - Einsperren von Verbrechen
    /m <Text> - Megaphon
    /r <Text> - Mit Cops des LSPDs schreiben
    /r pos - aktuelle Region senden
    /d <Text> - Mit Cops des SFPD (FBI) und dem OA schreiben
    /d pos - aktuelle Region senden
    /sopen - Öffnen der Schrottpresse
    /zcar - Zerstören des Fahrzeuges in der Schrottpresse
    /heal - Schutzweste und 100 HP in der Waffenkammer
    /duty - on-offduty gehen in der Waffenkammer, standard Waffen bekommen
    /tazer - Jem. tazen
    /su <id> (Grund) - Ein Wanted vergeben
    /cuff <id> - Jem. im Fahrzeug Handschellen anlegen
    /uncuff <id> - | Jem. im Fahrzeug die Handschellen abnehmen, Tazer ausschalten
    /frisk <id> - Jem. nach illegalen Gegenständen durchsuchen
    /friskweapons <id> - Jem. nach Waffendurchsuchen
    /bk - Verstärkung anfordern
    /bkc - Verstärkungsanfrage löschen
    /rb - Eine Straßensperre platzieren
    /rrb - Straßensperre abbauen
    /rrball - Alle Straßensperren von jedem Cop entfernen
    /cfill - Die LSPD Tankstelle nutzen
    /take bikerslicense <id> - Motorradschein entziehen
    /take driverslicense <id> - Führerschein entziehen
    /take flyingslicense <id> - Flugschein entziehen
    /take weapons <id> - Waffen abnehmen
    /take drugs <id> - Drogen abnehmen
    /take materials <id> - Materialien abnehmen
    /take weaponslicense <id> - Waffenschein entziehen
    /cmall - versteckt alle Marker
    /zollcontrol <Zollstation-Nummer> <0|1> - Zollstation öffnen/schließen
    /allowspecweap - erlaubt die Benutzung der Spezialwaffen vom SAPD
    /disallowspecweap - hebt die Erlaubnis für die Benutzung der Spezialwaffen vom SAPD auf
    /specialweapons - Aufnahme von Spezialwaffen, wenn dies erlaubt wurde
    /gov - Regierungsnachricht
    /givepoints <id> <Anzahl> - jemanden eine bestimmte Anzahl an Strafpunkten geben
    /clear <id> <Menge> - bestimmte Anzahl an Wanteds löschen


    FBI:
    /swatuser - man sieht wer gerade im /Swatmodus ist
    /allowswat- erlaubt jemanden in den Swatmodus zu gehen ( FBI Leader ! )
    /disallowswat - verbietet jemanden in den Swatmodus zu gehen ( FBI Leader ! )
    /swat man zieht seine Swat Kleidung an (sofern man in Swatmosu gehen darf)


    Ordnungsamt:
    /towcar - (Privat- und Gangfahrzeuge) Danach ist eine Markierung im OA. Auto dort reinfahren -> Fahrzeug in Verwahrung
    /towbike - Motorrad abschleppen
    /oaopen - öffnet das Ordnungsamttor
    /sz <id> <Betrag> <Grund> - Ausstellen eines Strafzettels
    /d - siehe Cops
    /r - siehe Cops
    /m - siehe Cops
    /gov - siehe Cops
    /findcar <id> - ein Fahrzeug zu finden, solang es noch nicht Schrott ist
    /remmark - Redmarker löschen
    /oarespawncars - Ordnungsamt-Wagen respawnen lassen
    /oaradar - zeigt alle Ordnungsbeamten auf dem Server,
    /take- siehe Cops
    /frisk <id> - siehe Cops
    /friskweapons <id> - siehe Cops
    /givepoints - siehe Cops


    Medic:
    /mopen - das Tor öffnen
    /mfill - an der Garage tanken
    /czoll - siehe Cops
    /duty - den Dienst aufnehmen
    /mgarage - ins Teleport I rein gehen
    /medicrespawncars - Alle Medicfahrzeuge respawnen lassen
    /einweisen <Name> <Preis 0-5000> - jemanden für einen bestimmten Betrag einweisen
    /getmedicine - neue Medizin am Krankenhaus aufnehmen


    Fahrschullehrer:
    /startlesson <id> <preis> - einem Fahrschüler zum angebenen Preis die Prüfung ablegen lassen
    /stoplesson <id> - Fahrstunde des Prüflings beenden
    /givelicense <zb. Fishing oder bike> <id> - jemanden nach erfolgreich abgelegter Prüfung die Lizenz geben
    /fsrespawncars - Fahrschulautos respawnen lassen
    /fsgivegun <id> - jemanden eine sdpistol für den Schießstand geben
    /fsrespawntargets - Ziele am Schießstand respawnen lassen
    /fsmovetarget <1|2> Ziel 1 bzw. 2 sich bewegen lassen


    Bürgermeister:
    /steuerkasse - Stand der Steuerkasse anzeigen lassen
    /get tax <Betrag> - Geld aus Steuerkasse nehmen


    Supporter:
    /goto <id> - sich zu jemanden porten
    /gotobsn/civ/fs/farm - sich zum BSN, Zivi-Spawn, Fahrschule oder Drogenfarm porten
    /setint - Umgebung laden nach dem Porten
    /kick <id> <Grund> - jemanden vom Server kicken
    /skick <id> - Silent Kick = jemanden unbemerkt kicken
    /ban <id> <Grund> - jamanden bannen (ab Admin Level 2)
    /aond - man geht on Duty
    /aoffd - man geht off Duty
    /alladmins - Übersicht aller Admins, die on sind
    /o, /a, /sup - siehe Chat
    /do <id> - jemanden persönlich anschreiben
    /tv <id> - bei jemanden auf TV gehen
    /tv - die Zielperson wechseln
    /tv off - bei der aktuellen Zielperson spawnen
    /fl - Fraktionsliste
    /togtickets - Ausblenden der vorhandenen Ticket


    Sonstige:
    /quit - vom Server ausloggen
    /admins - Admins bis zu einem bestimmten Admin-Level anzeigen lassen, die online sind
    /carlock - Auto ab/auf schließen
    /respraycar - stellt die Farbe des Autos wieder her
    /zoll - öffnet die Zollschranke
    /carsell - Privat-Auto verkaufen
    /animlist - listet mögliche Animationen auf
    /join - Jobbeschreibung durchlesen
    /healme - ermöglicht am Krankenhaus sich nach Drogeneinahme zu entstonen
    /krankenkasse - ermöglicht am Krankenhaus eine Krankenversicherung abzuschließen
    /showperso <id> - jemanden seinen Personalausweis zeigen
    /witness <id> - jemanden anbieten sein Trauzeuge zu sein
    /propose <id> - jemanden heiraten
    /divorce <id> - sich scheiden lassen
    /forcedivorce - Zwangsscheidung, auch wenn der Partner offline ist (kostet 10% des Vermögens)
    /freecar - abgeschlepptes Auto wieder freikaufen
    /medic - alle Medics, die im Dienst sind, anzeigen
    /dropweapons - alle Waffen wegwerfen
    /fight - im Boxclub boxen
    /rentroom - eine Wohnung mieten
    /unrent - Wohnung kündigen
    /rentcar - Fahrzeug/Flugzeug mieten
    /unrentcar - Fahrzeug/Flugzeug wieder freigeben
    /rentbike - Fahrrad mieten
    /unrentbike - Fahrrad wieder freigeben
    /givecheck <id> <Geldbetrag> - jemanden einen Scheck ausstellen
    /usecheck - Scheck einlösen
    /eatpizza - eine Pizza im Café Nahe LS-SF-Zoll bestellen
    /onlinehelp
    /togphone - Handy ausschalten (nur mit Premium-Account)
    /togloginlogout - Betreten/Verlassen- Meldungen anzeigen
    /get fuel - An einer Tankstelle einen Kanister mit 20 Liter Benzin kaufen
    /bail - Kaution im Gefängnis bezahlen
    /showimportprice - derzeitigen Importwarenpreis anzeigen lassen
    /showfinances <id> - jemanden eine Übersicht der eigenen Finanzen zeigen
    /motd - (Fraktions-) Message of the day anzeigen lassen
    /dl - Informationen zum Fahrzeug anzeigen lassen
    /gruss <Text> - zur Grußzeit einen Gruß schreiben
    /fraktionen - Fraktions-IDs anzeigen lassen
    /enterplane - in den Shamal (Learjet) eins*/

    so ich hab mich gerade hingesetzt und hab ein w_baum FS gemacht


    ich danke Prepear(mein Kumpel) für die Idee und für den Anfang



    ZUM FILTERSCRIPT
    -es würd gespeichert
    -mit /wbaum kann man ein baum erstellen
    -beim beenden würd jeder baum gelöscht bleibt aber noch in der datei drin
    -in scriptfiles muss ein ordner mit (w_baum) sein wo die bäume in je ne datei gespeichter würd
    nächtes update würd warscheinlich sein das man einzelde bäume löschen kann oder auch alle


    muss ich mal sehen ob ich das in meine freizeit noch schafe



    also viel spass damit


    hier downloadlink :::: http://www.megaupload.com/?d=OTNU9UY5


    und hier der Quellcode
    #include <a_samp>
    #include <dini>
    #include <ocmd>


    #define MAX_Baum 450
    enum haus_info
    {
    //AUSSEN
    Float:haus_x,
    Float:haus_y,
    Float:haus_z,
    haus_pickup,
    }
    new HausInfo[MAX_Baum][haus_info];
    public OnFilterScriptInit()
    {
    //CreateObject(19076,23,0,0,1000,99);
    for(new haus=1;haus<MAX_Baum;haus++)
    {
    LoadHaus(haus);
    }
    return 1;
    }


    public OnFilterScriptExit()
    {
    for(new haus=1;haus<MAX_Baum;haus++)
    {
    KillHaus(haus);
    }
    return 1;
    }



    ocmd:wbaum(playerid,params[])
    {
    new Float:x,Float:y,Float:z;
    GetPlayerPos(playerid,x,y,z);
    CreateHaus(x,y,z);
    SetPlayerPos(playerid,x+2,y+2,z);
    return 1;
    }
    stock LoadHaus(hausid)
    {
    new pfad[50];
    format(pfad,50,"/w_Baum/%d.txt",hausid);
    if(!fexist(pfad))return 0;
    HausInfo[hausid][haus_x] = dini_Float(pfad,"x");//
    HausInfo[hausid][haus_y] = dini_Float(pfad,"y");//
    HausInfo[hausid][haus_z] = dini_Float(pfad,"z");//
    HausInfo[hausid][haus_pickup] = CreateObject(19076,HausInfo[hausid][haus_x],HausInfo[hausid][haus_y],HausInfo[hausid][haus_z]-1,0,0,0); //erstellt ein Pickup an den Hauskoordinaten
    return 1;//CreateObject(19076, x, y - 0.7, z - 1, 0.0, 0.0, a - 90.0);
    }
    stock KillHaus(hausid)
    {
    return DestroyObject(HausInfo[hausid][haus_pickup]);
    }
    stock CreateHaus(Float:x,Float:y,Float:z) // die ersten 3 Werte sind die Koordinaten, der 4. der Preis und der 5. der Besitzer
    {
    new pfad[50];
    for(new haus=1;haus<MAX_Baum;haus++)
    {
    format(pfad,50,"/w_Baum/%d.txt",haus);
    if(!fexist(pfad))
    {
    dini_Create(pfad);
    dini_FloatSet(pfad,"x",x);
    dini_FloatSet(pfad,"y",y);
    dini_FloatSet(pfad,"z",z);
    return LoadHaus(haus);
    }
    }
    return 1;
    }
    stock sscanf(sstring[], format[], {Float,_}:...)
    {
    #if defined isnull
    if (isnull(sstring))
    #else
    if (sstring[0] == 0 || (sstring[0] == 1 && sstring[1] == 0))
    #endif
    {
    return format[0];
    }
    #pragma tabsize 4
    new
    formatPos = 0,
    sstringPos = 0,
    paramPos = 2,
    paramCount = numargs(),
    delim = ' ';
    while (sstring[sstringPos] && sstring[sstringPos] <= ' ')
    {
    sstringPos++;
    }
    while (paramPos < paramCount && sstring[sstringPos])
    {
    switch (format[formatPos++])
    {
    case '\0':
    {
    return 0;
    }
    case 'i', 'd':
    {
    new
    neg = 1,
    num = 0,
    ch = sstring[sstringPos];
    if (ch == '-')
    {
    neg = -1;
    ch = sstring[++sstringPos];
    }
    do
    {
    sstringPos++;
    if ('0' <= ch <= '9')
    {
    num = (num * 10) + (ch - '0');
    }
    else
    {
    return -1;
    }
    }
    while ((ch = sstring[sstringPos]) > ' ' && ch != delim);
    setarg(paramPos, 0, num * neg);
    }
    case 'h', 'x':
    {
    new
    num = 0,
    ch = sstring[sstringPos];
    do
    {
    sstringPos++;
    switch (ch)
    {
    case 'x', 'X':
    {
    num = 0;
    continue;
    }
    case '0' .. '9':
    {
    num = (num << 4) | (ch - '0');
    }
    case 'a' .. 'f':
    {
    num = (num << 4) | (ch - ('a' - 10));
    }
    case 'A' .. 'F':
    {
    num = (num << 4) | (ch - ('A' - 10));
    }
    default:
    {
    return -1;
    }
    }
    }
    while ((ch = sstring[sstringPos]) > ' ' && ch != delim);
    setarg(paramPos, 0, num);
    }
    case 'c':
    {
    setarg(paramPos, 0, sstring[sstringPos++]);
    }
    case 'f':
    {


    new changestr[16], changepos = 0, strpos = sstringPos;
    while(changepos < 16 && sstring[strpos] && sstring[strpos] != delim)
    {
    changestr[changepos++] = sstring[strpos++];
    }
    changestr[changepos] = '\0';
    setarg(paramPos,0,_:floatstr(changestr));
    }
    case 'p':
    {
    delim = format[formatPos++];
    continue;
    }
    case '\'':
    {
    new
    end = formatPos - 1,
    ch;
    while ((ch = format[++end]) && ch != '\'') {}
    if (!ch)
    {
    return -1;
    }
    format[end] = '\0';
    if ((ch = strfind(sstring, format[formatPos], false, sstringPos)) == -1)
    {
    if (format[end + 1])
    {
    return -1;
    }
    return 0;
    }
    format[end] = '\'';
    sstringPos = ch + (end - formatPos);
    formatPos = end + 1;
    }
    case 'u':
    {
    new
    end = sstringPos - 1,
    id = 0,
    bool:num = true,
    ch;
    while ((ch = sstring[++end]) && ch != delim)
    {
    if (num)
    {
    if ('0' <= ch <= '9')
    {
    id = (id * 10) + (ch - '0');
    }
    else
    {
    num = false;
    }
    }
    }
    if (num && IsPlayerConnected(id))
    {
    setarg(paramPos, 0, id);
    }
    else
    {
    #if !defined foreach
    #define foreach(%1,%2) for (new %2 = 0; %2 < MAX_PLAYERS; %2++) if (IsPlayerConnected(%2))
    #define __SSCANF_FOREACH__
    #endif
    sstring[end] = '\0';
    num = false;
    new
    name[MAX_PLAYER_NAME];
    id = end - sstringPos;
    foreach (Player, playerid)
    {
    GetPlayerName(playerid, name, sizeof (name));
    if (!strcmp(name, sstring[sstringPos], true, id))
    {
    setarg(paramPos, 0, playerid);
    num = true;
    break;
    }
    }
    if (!num)
    {
    setarg(paramPos, 0, INVALID_PLAYER_ID);
    }
    sstring[end] = ch;
    #if defined __SSCANF_FOREACH__
    #undef foreach
    #undef __SSCANF_FOREACH__
    #endif
    }
    sstringPos = end;
    }
    case 's', 'z':
    {
    new
    i = 0,
    ch;
    if (format[formatPos])
    {
    while ((ch = sstring[sstringPos++]) && ch != delim)
    {
    setarg(paramPos, i++, ch);
    }
    if (!i)
    {
    return -1;
    }
    }
    else
    {
    while ((ch = sstring[sstringPos++]))
    {
    setarg(paramPos, i++, ch);
    }
    }
    sstringPos--;
    setarg(paramPos, i, '\0');
    }
    default:
    {
    continue;
    }
    }
    while (sstring[sstringPos] && sstring[sstringPos] != delim && sstring[sstringPos] > ' ')
    {
    sstringPos++;
    }
    while (sstring[sstringPos] && (sstring[sstringPos] == delim || sstring[sstringPos] <= ' '))
    {
    sstringPos++;
    }
    paramPos++;
    }
    do
    {
    if ((delim = format[formatPos++]) > ' ')
    {
    if (delim == '\'')
    {
    while ((delim = format[formatPos++]) && delim != '\'') {}
    }
    else if (delim != 'z')
    {
    return delim;
    }
    }
    }
    while (delim > ' ');
    return 0;
    }

    euer Diavolonew