[GameMode] Xenon Gaming Roleplay(v1.0 - MySQL - WIP/Not Complete)
#1

Xenon Gaming Roleplay

Hello! This is my first gamemode / major release. This gamemode is nothing extraordinary, how-ever I plan on making it more than the average roleplay gamemode. The gamemode as of now is only a skeleton of what it will be and is in no way complete. This game-mode is based in Fort Carson. It should be noted that if an update modifies the SQL file you'll be able to update the rows / columns by downloading the "update.sql" file(not yet applicable).

Scripting Notes:
[*] Never use SetPlayerSkin when setting a players skin. Always use SetPlayerSkinEx, skins are saved by ID not by the players current skin.

You will need the following includes:
* Default SA-MP Includes *
* MySQL Plug-In/Include(I use r33) *
* Streamer Plug-In/Include *
* Foreach Include *
* ZCMD Include *
* SSCANF(2) Include/Plug-In *


You can find the latest version here:
https://github.com/Abagail/XenonGaming

Recent Changes:
- Unified the error messages into one function
- Unifed the syntax messages into one function
- Added a simplistic(untimed for now) ban system with the commands /ban and /unban.
- Added an /admins command, along with an /ahide command for admins to hide themselves from the admin list.
(The full changelog / commit list can be found directly on github)

If you have any questions feel free to ask. Again, I plan on building this script up over-time. The change-log will always be updated when something is changed/a new version is released. Downloads, and other information can also be found at evanabagail.net(no longer the case).

Please do not ask me things like "The MySQL won't connect! Help me" because that has nothing to do with the gamemode; but more of your host / and or lack of MySQL / scripting knowledge / experience. Thank you.

Cheers!
Reply
#2

Awesome luff , keep it up
Reply
#3

Looks amazing, thank you!
Reply
#4

Thanks! If you have any suggestions please contact me, or even reply here! I plan on adding an automated suggestion-box system soon!
Reply
#5

Nice work, is this an edit of any gamemode?
Reply
#6

This script is NOT an edit, how-ever some parts of the Login/Registration System are based/inspired on loading/saving systems from various sources. So, it basically, isn't an edit. I don't understand why some-one would use an edit on a script with only about 300 lines. Thanks for asking though.

Game-mode planning:
- Release version 1.1 by the end of today(hope-fully), which will include a few new admin commands/capabilities, which will also begin the usage of the ZCMD include(which will then make it a required include for this game-mode to work properly along with foreach for some new functions to make player-looping faster.)

Update v1.1.0 is finally here! Updates can be found here, and in the main post thread in the change-log section.

* Added a few new commands, along with some new functions relating to the commands. *
* The following includes/plug-ins are now mandatory: sscanf(2), ZCMD. *
* Added an initial mapping file *

Update Notes:
- The streamer plug-in is not needed to compile, how-ever if you wish to make any changes to the mapping file(which is in a filter-script) you'll need it. You will NEED the streamer plug-in, how-ever if you plan on using the mapping file, how-ever as of now you'll live without the mapping file loaded.

- There is now a /kick command along with a /makeadmin command. By default, Level 7 Admins and above are able to use it, how-ever this can be changed by editing the "MAKE_ADMIN_RANK" define.
Reply
#7

Sorry for bumping this, but I just wanted to say that this project has been temporarily postponed due to IRL issues. I am aiming to continue working on this project in about 3-5 days. Cheers.
Reply
#8

What types of stored data contains this gamemode? Is it only mysql?
Cheers.
Reply
#9

Its only MySQL for now, how-ever as more systems are being implemented it is almost confirmable that .ini files will be put in-to effect/usage. And do you mean for players? If so, - here's a list of what loads/saves.

- ID of their account.
- Name
- Password(Hashed)
- IP
- Admin
- VIP(No VIP system has been implemented).
- Cash(On-Hand)
- Score(No proper level system has been implemented).
- Amount of deaths.
- Amount of kills.
- X, Y & Z coordinates.
- Facing Angle.
- Interior
- VW(Doesn't save for now until a proper interior/virtual world system has been put-in.).
- Skin ID.
Reply
#10

Abagail in first thank you for your share, Can you please send me the system of velocimetro that you use i like it!
Reply
#11

I like this...
Reply
#12

Thanks! I will start working on this again later today if I have any time, if not, expect an update tomorrow.

UPDATE: The update's been finished how-ever the download is not yet avaliable and will be up in 10-15 minutes if not less. The change/update-log can be found below.
  • - Added an admin-duty system.
  • - Added an admin(forum)name system.
  • - Added an admin manager rank(ADMIN_MANAGER_RANK define), which can set forum names, etc.
  • - Fixed an issue where the skin didn't set properly when going on/off admin duty.
  • - Fixed an issue with [/adminhelp].
UPDATE: The download link has been fixed and has been added to the main post.
Reply
#13

Good Job
Reply
#14

Well i hope this gamemode will grow more.
Reply
#15

Nice one! Thanks for making one.
Reply
#16

E:\american\pawno\include\sscanf2.inc(227) : warning 202: number of arguments does not match definition
E:\american\pawno\include\sscanf2.inc(240) : error 025: function heading differs from prototype
Pawn compiler 3.2.3664 Copyright © 1997-2006, ITB CompuPhase
Need help
Reply
#17

Thanks.

@ManGoe, - thats happened to me before. It has something to do with the version of the include. Try using this one,

pawn Код:
/*  
 *  Version: MPL 1.1
 *  
 *  The contents of this file are subject to the Mozilla Public License Version
 *  1.1 (the "License"); you may not use this file except in compliance with
 *  the License. You may obtain a copy of the License at
 *  http://www.mozilla.org/MPL/
 *  
 *  Software distributed under the License is distributed on an "AS IS" basis,
 *  WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
 *  for the specific language governing rights and limitations under the
 *  License.
 *  
 *  The Original Code is the sscanf 2.0 SA:MP plugin.
 *  
 *  The Initial Developer of the Original Code is Alex "******" Cole.
 *  Portions created by the Initial Developer are Copyright © 2010
 *  the Initial Developer. All Rights Reserved.
 *  
 *  Contributor(s):
 *  
 *  Special Thanks to:
 *  
 *  SA:MP Team past, present and future
 */


#define SSCANF:%0(%1) sscanf_%0(%1);public sscanf_%0(%1)

#if defined sscanf
    #error sscanf (possibly the PAWN version) already defined.
#endif
native sscanf(const data[], const format[], {Float,_}:...);
native unformat(const data[], const format[], {Float,_}:...) = sscanf;
native SSCANF_Init(players, invalid, len);
native SSCANF_Join(playerid, const name[], npc);
native SSCANF_Leave(playerid);

static stock
    SSCANF_gInit = 0xFFFFFFFF,
    SSCANF_gOPC,
    SSCANF_gOPDC;

public OnFilterScriptInit()
{
    printf("OnFilter");
    SSCANF_Init(GetMaxPlayers(), INVALID_PLAYER_ID, MAX_PLAYER_NAME);
    SSCANF_gInit = funcidx("SSCANF_OnGameModeInit") != -1;
    SSCANF_gOPC  = funcidx("SSCANF_OnPlayerConnect") != -1;
    SSCANF_gOPDC = funcidx("SSCANF_OnPlayerDisconnect") != -1;
    return CallLocalFunction("SSCANF_OnFilterScriptInit", "");
}

#if defined _ALS_OnFilterScriptInit
    #undef OnFilterScriptInit
#else
    #define _ALS_OnFilterScriptInit
#endif
#define OnFilterScriptInit SSCANF_OnFilterScriptInit

forward OnFilterScriptInit();

public OnGameModeInit()
{
    printf("OnGameo");
    if (SSCANF_gInit == -1)
    {
        SSCANF_Init(GetMaxPlayers(), INVALID_PLAYER_ID, MAX_PLAYER_NAME);
        SSCANF_gInit = funcidx("SSCANF_OnGameModeInit") != -1;
        SSCANF_gOPC  = funcidx("SSCANF_OnPlayerConnect") != -1;
        SSCANF_gOPDC = funcidx("SSCANF_OnPlayerDisconnect") != -1;
    }
    if (SSCANF_gInit)
    {
        // Can't do the clever assembly version without y_amx.
        /*#emit PUSH.S   reason
        #emit PUSH.S   playerid
        #emit PUSH.C   8
        #emit LCTRL    6
        #emit ADD.C    28
        #emit PUSH.pri
        #emit LOAD.pri SSCANF_gOPDC
        #emit SCTRL    6
        #emit RETN*/

        return CallLocalFunction("SSCANF_OnGameModeInit", "");
    }
    return 1;
}

#if defined _ALS_OnGameModeInit
    #undef OnGameModeInit
#else
    #define _ALS_OnGameModeInit
#endif
#define OnGameModeInit SSCANF_OnGameModeInit

forward OnGameModeInit();

public OnPlayerConnect(playerid)
{
    new
        name[MAX_PLAYER_NAME];
    GetPlayerName(playerid, name, sizeof (name));
    SSCANF_Join(playerid, name, IsPlayerNPC(playerid));
    if (SSCANF_gOPDC)
    {
        /*#emit PUSH.S   playerid
        #emit PUSH.C   4
        #emit LCTRL    6
        #emit ADD.C    28
        #emit PUSH.pri
        #emit LOAD.pri SSCANF_gOPC
        #emit SCTRL    6
        #emit RETN*/

        return CallLocalFunction("SSCANF_OnPlayerConnect", "i", playerid);
    }
    return 1;
}

#if defined _ALS_OnPlayerConnect
    #undef OnPlayerConnect
#else
    #define _ALS_OnPlayerConnect
#endif
#define OnPlayerConnect SSCANF_OnPlayerConnect

forward OnPlayerConnect(playerid);

public OnPlayerDisconnect(playerid, reason)
{
    new
        ret = 1;
    if (SSCANF_gOPDC)
    {
        /*#emit PUSH.S   reason
        #emit PUSH.S   playerid
        #emit PUSH.C   8
        #emit LCTRL    6
        #emit ADD.C    28
        #emit PUSH.pri
        #emit LOAD.pri SSCANF_gOPDC
        #emit SCTRL    6
        #emit RETN*/

        ret = CallLocalFunction("SSCANF_OnPlayerDisconnect", "ii", playerid, reason);
    }
    SSCANF_Leave(playerid);
    return ret;
}

#if defined _ALS_OnPlayerDisconnect
    #undef OnPlayerDisconnect
#else
    #define _ALS_OnPlayerDisconnect
#endif
#define OnPlayerDisconnect SSCANF_OnPlayerDisconnect

forward OnPlayerDisconnect(playerid, reason);

#define SSCANF_Init
#define SSCANF_Join
#define SSCANF_Leave

#define extract%0->%1; EXTRN%1;unformat(_:EXTRZ:EXTRX:%0,##,%1,,);
#define unformat(_:EXTRZ:EXTRX:%0,##,%1);%2else%3; if (unformat(_:EXTRX:%0,##,%1))%3;

#define EXTRX:%0##,%9new%1,%2) EXTRY:%0##,|||%1|||%2)
#define EXTRY: EXTR8:EXTR9:EXTR0:EXTR1:EXTR2:EXTR3:EXTR4:

#define EXTR8:EXTR9:EXTR0:EXTR1:EXTR2:EXTR3:EXTR4:%0##%1,%2|||%6:%3=%9|||%4) %6_EXTRO:%0##%1,%2|||%3=%9|||%4)
#define EXTR9:EXTR0:EXTR1:EXTR2:EXTR3:EXTR4:%0##%1,%2|||%3=%9|||%4) __EXTRO:%0##%1,%2|||%3=%9|||%4)
#define EXTR0:EXTR1:EXTR2:EXTR3:EXTR4:%0##%1,%2|||%6:%3[%7]|||%4) %6_EXTRW:%0##%1,%2|||%3[%7]|||%4)
#define EXTR1:EXTR2:EXTR3:EXTR4:%0##%1,%2|||%3[%7]|||%4) __EXTRW:%0##%1,%2|||%3|||%4)
#define EXTR2:EXTR3:EXTR4:%0##%1,%2|||%6:%3|||%4) %6_EXTRN:%0##%1,%2|||%3|||%4)
#define EXTR3:EXTR4:%0##%1,,%2||||||%4) %0##%1,%2)
#define EXTR4:%0##%1,%2|||%3|||%4) __EXTRN:%0##%1,%2|||%3|||%4)

// Optional specifiers.
#define __EXTRO:%0##%1,%2|||%3=%9|||%4,%5) EXTRY:%0##%1I"("#%9")"#,%2,%3|||%4|||%5)
#define Float_EXTRO:%0##%1,%2|||%3=%9|||%4,%5) EXTRY:%0##%1F"("#%9")"#,%2,%3|||%4|||%5)
#define player_EXTRO:%0##%1,%2|||%3=%9|||%4,%5) EXTRY:%0##%1U"("#%9")"#,%2,%3|||%4|||%5)
#define string_EXTRO:%0##%1,%2|||%3[%7]=%9|||%4,%5) EXTRY:%0##%1S"("#%9")"#[%7],%2,%3|||%4|||%5)

// Normal specifiers (the double underscore is to work for "_:".
#define __EXTRN:%0##%1,%2|||%3|||%4,%5) EXTRY:%0##%1i,%2,%3|||%4|||%5)
#define Float_EXTRN:%0##%1,%2|||%3|||%4,%5) EXTRY:%0##%1f,%2,%3|||%4|||%5)
#define player_EXTRN:%0##%1,%2|||%3|||%4,%5) EXTRY:%0##%1u,%2,%3|||%4|||%5)
//#define string_EXTRW:%0##%1,%2|||%3[%7]|||%4,%5) EXTRY:%0##%1s[%7],%2,%3|||%4|||%5)

// Array versions of normal specifiers.
#define __EXTRW:%0##%1,%2|||%3[%7]|||%4,%5) EXTRY:%0##%1a<i>[%7],%2,%3|||%4|||%5)
#define Float_EXTRW:%0##%1,%2|||%3[%7]|||%4,%5) EXTRY:%0##%1a<f>[%7],%2,%3|||%4|||%5)
#define player_EXTRW:%0##%1,%2|||%3[%7]|||%4,%5) EXTRY:%0##%1a<u>[%7],%2,%3|||%4|||%5)
#define string_EXTRW:%0##%1,%2|||%3[%7]|||%4,%5) EXTRY:%0##%1s[%7],%2,%3|||%4|||%5)

// Get rid of excess leading space which causes warnings.
#define EXTRN%0new%1; new%1;

#if !defined string
    #define string:
#endif

#define player:

#define hex:
#define hex_EXTRO:%0##%1,%2|||%3=%9|||%4,%5) EXTRY:%0##%1H"("#%9")"#,%2,%3|||%4|||%5)
#define hex_EXTRN:%0##%1,%2|||%3|||%4,%5) EXTRY:%0##%1h,%2,%3|||%4|||%5)
#define hex_EXTRW:%0##%1,%2|||%3[%7]|||%4,%5) EXTRY:%0##%1a<h>[%7],%2,%3|||%4|||%5)

#define bin:
#define bin_EXTRO:%0##%1,%2|||%3=%9|||%4,%5) EXTRY:%0##%1B"("#%9")"#,%2,%3|||%4|||%5)
#define bin_EXTRN:%0##%1,%2|||%3|||%4,%5) EXTRY:%0##%1b,%2,%3|||%4|||%5)
#define bin_EXTRW:%0##%1,%2|||%3[%7]|||%4,%5) EXTRY:%0##%1a<b>[%7],%2,%3|||%4|||%5)

#define kustom:%0<%1> %0
#define kustom_EXTRO:%0##%1,%2|||%3<%8>=%9|||%4,%5) EXTRY:%0##%1K<%8>"("#%9")"#,%2,%3|||%4|||%5)
#define kustom_EXTRN:%0##%1,%2|||%3<%8>|||%4,%5) EXTRY:%0##%1k<%8>,%2,%3|||%4|||%5)
//#define bin_EXTRW:%0##%1,%2|||%3[%7]|||%4,%5) EXTRY:%0##%1a<b>[%7],%2,%3|||%4|||%5)

SSCANF:weapon(string[])
{
    // This function is VERY basic, needs VASTLY improving to detect variations.
    if ('0' <= string[0] <= '9')
    {
        new
            ret = strval(string);
        if (0 <= ret <= 18 || 22 <= ret <= 46)
        {
            return ret;
        }
    }
    else if (!strcmp(string, "Unarmed")) return 0;
    else if (!strcmp(string, "Brass Knuckles")) return 1;
    else if (!strcmp(string, "Golf Club")) return 2;
    else if (!strcmp(string, "Night Stick")) return 3;
    else if (!strcmp(string, "Knife")) return 4;
    else if (!strcmp(string, "Baseball Bat")) return 5;
    else if (!strcmp(string, "Shovel")) return 6;
    else if (!strcmp(string, "Pool cue")) return 7;
    else if (!strcmp(string, "Katana")) return 8;
    else if (!strcmp(string, "Chainsaw")) return 9;
    else if (!strcmp(string, "Purple Dildo")) return 10;
    else if (!strcmp(string, "White Dildo")) return 11;
    else if (!strcmp(string, "Long White Dildo")) return 12;
    else if (!strcmp(string, "White Dildo 2")) return 13;
    else if (!strcmp(string, "Flowers")) return 14;
    else if (!strcmp(string, "Cane")) return 15;
    else if (!strcmp(string, "Grenades")) return 16;
    else if (!strcmp(string, "Tear Gas")) return 17;
    else if (!strcmp(string, "Molotovs")) return 18;
    else if (!strcmp(string, "Pistol")) return 22;
    else if (!strcmp(string, "Silenced Pistol")) return 23;
    else if (!strcmp(string, "Desert Eagle")) return 24;
    else if (!strcmp(string, "Shotgun")) return 25;
    else if (!strcmp(string, "Sawn Off Shotgun")) return 26;
    else if (!strcmp(string, "Combat Shotgun")) return 27;
    else if (!strcmp(string, "Micro Uzi")) return 28;
    else if (!strcmp(string, "Mac 10")) return 28;
    else if (!strcmp(string, "MP5")) return 29;
    else if (!strcmp(string, "AK47")) return 30;
    else if (!strcmp(string, "M4")) return 31;
    else if (!strcmp(string, "Tec9")) return 32;
    else if (!strcmp(string, "Rifle")) return 33;
    else if (!strcmp(string, "Sniper Rifle")) return 34;
    else if (!strcmp(string, "RPG")) return 35;
    else if (!strcmp(string, "Missile Launcher")) return 36;
    else if (!strcmp(string, "Flame Thrower")) return 37;
    else if (!strcmp(string, "Minigun")) return 38;
    else if (!strcmp(string, "Sachel Charges")) return 39;
    else if (!strcmp(string, "Detonator")) return 40;
    else if (!strcmp(string, "Spray Paint")) return 41;
    else if (!strcmp(string, "Fire Extinguisher")) return 42;
    else if (!strcmp(string, "Camera")) return 43;
    else if (!strcmp(string, "Nightvision Goggles")) return 44;
    else if (!strcmp(string, "Thermal Goggles")) return 45;
    else if (!strcmp(string, "Parachute")) return 46;
    return -1;
}

SSCANF:vehicle(string[])
{
    // This function is VERY basic, needs VASTLY improving to detect variations.
    if ('0' <= string[0] <= '9')
    {
        new
            ret = strval(string);
        if (400 <= ret <= 611)
        {
            return ret;
        }
    }
    else if (!strcmp(string, "Landstalker")) return 400;
    else if (!strcmp(string, "Bravura")) return 401;
    else if (!strcmp(string, "Buffalo")) return 402;
    else if (!strcmp(string, "Linerunner")) return 403;
    else if (!strcmp(string, "Perenniel")) return 404;
    else if (!strcmp(string, "Sentinel")) return 405;
    else if (!strcmp(string, "Dumper")) return 406;
    else if (!strcmp(string, "Firetruck")) return 407;
    else if (!strcmp(string, "Trashmaster")) return 408;
    else if (!strcmp(string, "Stretch")) return 409;
    else if (!strcmp(string, "Manana")) return 410;
    else if (!strcmp(string, "Infernus")) return 411;
    else if (!strcmp(string, "Voodoo")) return 412;
    else if (!strcmp(string, "Pony")) return 413;
    else if (!strcmp(string, "Mule")) return 414;
    else if (!strcmp(string, "Cheetah")) return 415;
    else if (!strcmp(string, "Ambulance")) return 416;
    else if (!strcmp(string, "Leviathan")) return 417;
    else if (!strcmp(string, "Moonbeam")) return 418;
    else if (!strcmp(string, "Esperanto")) return 419;
    else if (!strcmp(string, "Taxi")) return 420;
    else if (!strcmp(string, "Washington")) return 421;
    else if (!strcmp(string, "Bobcat")) return 422;
    else if (!strcmp(string, "Mr Whoopee")) return 423;
    else if (!strcmp(string, "BF Injection")) return 424;
    else if (!strcmp(string, "Hunter")) return 425;
    else if (!strcmp(string, "Premier")) return 426;
    else if (!strcmp(string, "Enforcer")) return 427;
    else if (!strcmp(string, "Securicar")) return 428;
    else if (!strcmp(string, "Banshee")) return 429;
    else if (!strcmp(string, "Predator")) return 430;
    else if (!strcmp(string, "Bus")) return 431;
    else if (!strcmp(string, "Rhino")) return 432;
    else if (!strcmp(string, "Barracks")) return 433;
    else if (!strcmp(string, "Hotknife")) return 434;
    else if (!strcmp(string, "Article Trailer")) return 435;
    else if (!strcmp(string, "Previon")) return 436;
    else if (!strcmp(string, "Coach")) return 437;
    else if (!strcmp(string, "Cabbie")) return 438;
    else if (!strcmp(string, "Stallion")) return 439;
    else if (!strcmp(string, "Rumpo")) return 440;
    else if (!strcmp(string, "RC Bandit")) return 441;
    else if (!strcmp(string, "Romero")) return 442;
    else if (!strcmp(string, "Packer")) return 443;
    else if (!strcmp(string, "Monster")) return 444;
    else if (!strcmp(string, "Admiral")) return 445;
    else if (!strcmp(string, "Squallo")) return 446;
    else if (!strcmp(string, "Seasparrow")) return 447;
    else if (!strcmp(string, "Pizzaboy")) return 448;
    else if (!strcmp(string, "Tram")) return 449;
    else if (!strcmp(string, "Article Trailer 2")) return 450;
    else if (!strcmp(string, "Turismo")) return 451;
    else if (!strcmp(string, "Speeder")) return 452;
    else if (!strcmp(string, "Reefer")) return 453;
    else if (!strcmp(string, "Tropic")) return 454;
    else if (!strcmp(string, "Flatbed")) return 455;
    else if (!strcmp(string, "Yankee")) return 456;
    else if (!strcmp(string, "Caddy")) return 457;
    else if (!strcmp(string, "Solair")) return 458;
    else if (!strcmp(string, "Berkley's RC Van")) return 459;
    else if (!strcmp(string, "Skimmer")) return 460;
    else if (!strcmp(string, "PCJ-600")) return 461;
    else if (!strcmp(string, "Faggio")) return 462;
    else if (!strcmp(string, "Freeway")) return 463;
    else if (!strcmp(string, "RC Baron")) return 464;
    else if (!strcmp(string, "RC Raider")) return 465;
    else if (!strcmp(string, "Glendale")) return 466;
    else if (!strcmp(string, "Oceanic")) return 467;
    else if (!strcmp(string, "Sanchez")) return 468;
    else if (!strcmp(string, "Sparrow")) return 469;
    else if (!strcmp(string, "Patriot")) return 470;
    else if (!strcmp(string, "Quad")) return 471;
    else if (!strcmp(string, "Coastguard")) return 472;
    else if (!strcmp(string, "Dinghy")) return 473;
    else if (!strcmp(string, "Hermes")) return 474;
    else if (!strcmp(string, "Sabre")) return 475;
    else if (!strcmp(string, "Rustler")) return 476;
    else if (!strcmp(string, "ZR-350")) return 477;
    else if (!strcmp(string, "Walton")) return 478;
    else if (!strcmp(string, "Regina")) return 479;
    else if (!strcmp(string, "Comet")) return 480;
    else if (!strcmp(string, "BMX")) return 481;
    else if (!strcmp(string, "Burrito")) return 482;
    else if (!strcmp(string, "Camper")) return 483;
    else if (!strcmp(string, "Marquis")) return 484;
    else if (!strcmp(string, "Baggage")) return 485;
    else if (!strcmp(string, "Dozer")) return 486;
    else if (!strcmp(string, "Maverick")) return 487;
    else if (!strcmp(string, "SAN News Maverick")) return 488;
    else if (!strcmp(string, "Rancher")) return 489;
    else if (!strcmp(string, "FBI Rancher")) return 490;
    else if (!strcmp(string, "Virgo")) return 491;
    else if (!strcmp(string, "Greenwood")) return 492;
    else if (!strcmp(string, "Jetmax")) return 493;
    else if (!strcmp(string, "Hotring Racer")) return 494;
    else if (!strcmp(string, "Sandking")) return 495;
    else if (!strcmp(string, "Blista Compact")) return 496;
    else if (!strcmp(string, "Police Maverick")) return 497;
    else if (!strcmp(string, "Boxville")) return 498;
    else if (!strcmp(string, "Benson")) return 499;
    else if (!strcmp(string, "Mesa")) return 500;
    else if (!strcmp(string, "RC Goblin")) return 501;
    else if (!strcmp(string, "Hotring Racer")) return 502;
    else if (!strcmp(string, "Hotring Racer")) return 503;
    else if (!strcmp(string, "Bloodring Banger")) return 504;
    else if (!strcmp(string, "Rancher")) return 505;
    else if (!strcmp(string, "Super GT")) return 506;
    else if (!strcmp(string, "Elegant")) return 507;
    else if (!strcmp(string, "Journey")) return 508;
    else if (!strcmp(string, "Bike")) return 509;
    else if (!strcmp(string, "Mountain Bike")) return 510;
    else if (!strcmp(string, "Beagle")) return 511;
    else if (!strcmp(string, "Cropduster")) return 512;
    else if (!strcmp(string, "Stuntplane")) return 513;
    else if (!strcmp(string, "Tanker")) return 514;
    else if (!strcmp(string, "Roadtrain")) return 515;
    else if (!strcmp(string, "Nebula")) return 516;
    else if (!strcmp(string, "Majestic")) return 517;
    else if (!strcmp(string, "Buccaneer")) return 518;
    else if (!strcmp(string, "Shamal")) return 519;
    else if (!strcmp(string, "Hydra")) return 520;
    else if (!strcmp(string, "FCR-900")) return 521;
    else if (!strcmp(string, "NRG-500")) return 522;
    else if (!strcmp(string, "HPV1000")) return 523;
    else if (!strcmp(string, "Cement Truck")) return 524;
    else if (!strcmp(string, "Towtruck")) return 525;
    else if (!strcmp(string, "Fortune")) return 526;
    else if (!strcmp(string, "Cadrona")) return 527;
    else if (!strcmp(string, "FBI Truck")) return 528;
    else if (!strcmp(string, "Willard")) return 529;
    else if (!strcmp(string, "Forklift")) return 530;
    else if (!strcmp(string, "Tractor")) return 531;
    else if (!strcmp(string, "Combine Harvester")) return 532;
    else if (!strcmp(string, "Feltzer")) return 533;
    else if (!strcmp(string, "Remington")) return 534;
    else if (!strcmp(string, "Slamvan")) return 535;
    else if (!strcmp(string, "Blade")) return 536;
    else if (!strcmp(string, "Freight (Train)")) return 537;
    else if (!strcmp(string, "Brownstreak (Train)")) return 538;
    else if (!strcmp(string, "Vortex")) return 539;
    else if (!strcmp(string, "Vincent")) return 540;
    else if (!strcmp(string, "Bullet")) return 541;
    else if (!strcmp(string, "Clover")) return 542;
    else if (!strcmp(string, "Sadler")) return 543;
    else if (!strcmp(string, "Firetruck LA")) return 544;
    else if (!strcmp(string, "Hustler")) return 545;
    else if (!strcmp(string, "Intruder")) return 546;
    else if (!strcmp(string, "Primo")) return 547;
    else if (!strcmp(string, "Cargobob")) return 548;
    else if (!strcmp(string, "Tampa")) return 549;
    else if (!strcmp(string, "Sunrise")) return 550;
    else if (!strcmp(string, "Merit")) return 551;
    else if (!strcmp(string, "Utility Van")) return 552;
    else if (!strcmp(string, "Nevada")) return 553;
    else if (!strcmp(string, "Yosemite")) return 554;
    else if (!strcmp(string, "Windsor")) return 555;
    else if (!strcmp(string, "Monster \"A\"")) return 556;
    else if (!strcmp(string, "Monster \"B\"")) return 557;
    else if (!strcmp(string, "Uranus")) return 558;
    else if (!strcmp(string, "Jester")) return 559;
    else if (!strcmp(string, "Sultan")) return 560;
    else if (!strcmp(string, "Stratum")) return 561;
    else if (!strcmp(string, "Elegy")) return 562;
    else if (!strcmp(string, "Raindance")) return 563;
    else if (!strcmp(string, "RC Tiger")) return 564;
    else if (!strcmp(string, "Flash")) return 565;
    else if (!strcmp(string, "Tahoma")) return 566;
    else if (!strcmp(string, "Savanna")) return 567;
    else if (!strcmp(string, "Bandito")) return 568;
    else if (!strcmp(string, "Freight Flat Trailer (Train)")) return 569;
    else if (!strcmp(string, "Streak Trailer (Train)")) return 570;
    else if (!strcmp(string, "Kart")) return 571;
    else if (!strcmp(string, "Mower")) return 572;
    else if (!strcmp(string, "Dune")) return 573;
    else if (!strcmp(string, "Sweeper")) return 574;
    else if (!strcmp(string, "Broadway")) return 575;
    else if (!strcmp(string, "Tornado")) return 576;
    else if (!strcmp(string, "AT400")) return 577;
    else if (!strcmp(string, "DFT-30")) return 578;
    else if (!strcmp(string, "Huntley")) return 579;
    else if (!strcmp(string, "Stafford")) return 580;
    else if (!strcmp(string, "BF-400")) return 581;
    else if (!strcmp(string, "Newsvan")) return 582;
    else if (!strcmp(string, "Tug")) return 583;
    else if (!strcmp(string, "Petrol Trailer")) return 584;
    else if (!strcmp(string, "Emperor")) return 585;
    else if (!strcmp(string, "Wayfarer")) return 586;
    else if (!strcmp(string, "Euros")) return 587;
    else if (!strcmp(string, "Hotdog")) return 588;
    else if (!strcmp(string, "Club")) return 589;
    else if (!strcmp(string, "Freight Box Trailer (Train)")) return 590;
    else if (!strcmp(string, "Article Trailer 3")) return 591;
    else if (!strcmp(string, "Andromada")) return 592;
    else if (!strcmp(string, "Dodo")) return 593;
    else if (!strcmp(string, "RC Cam")) return 594;
    else if (!strcmp(string, "Launch")) return 595;
    else if (!strcmp(string, "Police Car (LSPD)")) return 596;
    else if (!strcmp(string, "Police Car (SFPD)")) return 597;
    else if (!strcmp(string, "Police Car (LVPD)")) return 598;
    else if (!strcmp(string, "Police Ranger")) return 599;
    else if (!strcmp(string, "Picador")) return 600;
    else if (!strcmp(string, "S.W.A.T.")) return 601;
    else if (!strcmp(string, "Alpha")) return 602;
    else if (!strcmp(string, "Phoenix")) return 603;
    else if (!strcmp(string, "Glendale Shit")) return 604;
    else if (!strcmp(string, "Sadler Shit")) return 605;
    else if (!strcmp(string, "Baggage Trailer \"A\"")) return 606;
    else if (!strcmp(string, "Baggage Trailer \"B\"")) return 607;
    else if (!strcmp(string, "Tug Stairs Trailer")) return 608;
    else if (!strcmp(string, "Boxville")) return 609;
    else if (!strcmp(string, "Farm Trailer")) return 610;
    else if (!strcmp(string, "Utility Trailer")) return 611;
    return -1;
}

#define sscanf(%0:...) old_sscanf(%0:...)
And thanks for all the feedback! I am aiming on having a suggestion system set-up within the next couple of days.
Reply
#18

awesome mod
Reply
#19

pawn Код:
ApplyAnimation(playerid, "PED", "IDLE_CHAT", 1, 0, 0, 0, 0, words*1000, 1);
Good idea, but check if player is in a vehicle or not.
Reply
#20

Quote:
Originally Posted by iFarbod
Посмотреть сообщение
pawn Код:
ApplyAnimation(playerid, "PED", "IDLE_CHAT", 1, 0, 0, 0, 0, words*1000, 1);
Good idea, but check if player is in a vehicle or not.
Never thought of that... I will probably add a vehicle chatting animation if I get any time... If you've noticed I haven't really been pulling out updates a lot due to being super busy IRL.
Reply


Forum Jump:


Users browsing this thread: 3 Guest(s)