28.12.2011, 01:05
Quote:
you have problems with your sscanf, download the last version, and you put playerid meabe in gamemodeinit o filerscriptinit, but let mee see that lines.
|
Код:
#include <a_samp> #include <zcmd> #include <sscanf2> //============================================================================== // // Defines // //============================================================================== /* NOTE: Just use true/false! */ /* Boring defines */ #define USE_ADMIN false // if true, you need to be admin to do this #define PAY_CMD false // if true, you need to pay an amount of cash to use this command #define USE_RMESSAGE false // if true, it automaticly sends messages to everyone #define PAY 1000 // the amount you need to pay to use a command /* The random messages, change them if you dont like it */ #define MESSAGE1 "This server uses VehicleSpawner from Wesley221 (/spawnhelp)" #define MESSAGE2 "/spawnhelp for all the commands of this filterscript! (/spawnhelp)" #define MESSAGE3 "Spawning something only costs $%i! (/spawnhelp)" #define MESSAGE4 "/(v/w) [vehicle/weaponname] to spawn a vehicle/weapon! No ID's needed! (/spawnhelp)" #define MESSAGE5 "Out of ideas! Change this line to anything you like! (/spawnhelp)" /* Colours */ #define C_RED 0xFF0000FF #define C_GREEN 0x00FF00FF //============================================================================== // // Vehicle and weapon names // //============================================================================== new aVehicleNames[212][] = { {"Landstalker"},{"Bravura"},{"Buffalo"},{"Linerunner"},{"Perrenial"},{"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 1"},{"Previon"},{"Coach"},{"Cabbie"},{"Stallion"},{"Rumpo"},{"RC Bandit"},{"Romero"},{"Packer"}, {"Monster"},{"Admiral"},{"Squalo"},{"Seasparrow"},{"Pizzaboy"},{"Tram"},{"Trailer 2"},{"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 A"}, {"Hotring Racer B"},{"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 LA"},{"Hustler"},{"Intruder"},{"Primo"},{"Cargobob"},{"Tampa"},{"Sunrise"},{"Merit"}, {"Utility"},{"Nevada"},{"Yosemite"},{"Windsor"},{"Monster A"},{"Monster B"},{"Uranus"},{"Jester"},{"Sultan"},{"Stratum"},{"Elegy"},{"Raindance"},{"RC Tiger"}, {"Flash"},{"Tahoma"},{"Savanna"},{"Bandito"},{"Freight Flat"},{"Streak Carriage"},{"Kart"},{"Mower"},{"Duneride"},{"Sweeper"},{"Broadway"},{"Tornado"},{"AT-400"}, {"DFT-30"},{"Huntley"},{"Stafford"},{"BF-400"},{"Newsvan"},{"Tug"},{"Trailer 3"},{"Emperor"},{"Wayfarer"},{"Euros"},{"Hotdog"},{"Club"},{"Freight Carriage"}, {"Trailer 3"},{"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 A"},{"Luggage Trailer B"},{"Stair Trailer"},{"Boxville"},{"Farm Plow"},{"Utility Trailer"} }; new aWeaponNames[47][] = { {"Unarmed"},{"Brass Knuckles"},{"Golf Club"},{"Nite Stick"},{"Knife"},{"Baseball Bat"},{"Shovel"},{"Pool Cue"},{"Katana"},{"Chainsaw"},{"Purple Dildo"}, {"Smal White Vibrator"},{"Large White Vibrator"},{"Silver Vibrator"},{"Flowers"},{"Cane"},{"Grenade"},{"Tear Gas"},{"Molotov Cocktail"}, {""},{""},{""}, // Empty spots for ID 19-20-21 (invalid weapon id's) {"9mm"},{"Silenced 9mm"},{"Desert Eagle"},{"Shotgun"},{"Sawn-off Shotgun"},{"Combat Shotgun"},{"Micro SMG"},{"MP5"},{"AK-47"},{"M4"},{"Tec9"}, {"Country Rifle"},{"Sniper Rifle"},{"Rocket Launcher"},{"HS Rocket Launcher"},{"Flamethrower"},{"Minigun"},{"Satchel Charge"},{"Detonator"}, {"Spraycan"},{"Fire Extinguisher"},{"Camera"},{"Nightvision Goggles"},{"Thermal Goggles"},{"Parachute"} }; //============================================================================== // // Commands // //============================================================================== /* Spawn vehicle */ new PlayerCar[playerid]; COMMAND:v(playerid, params[]) { new carid, color1, color2; if(sscanf(params,"ddd", carid, color1, color2))return SendClientMessage(playerid, C_RED, "USAGE: /v [carid] [color1] [color2]"); if(carid < 400 || carid > 611) return SendClientMessage(playerid, C_RED, "Cars IDs can't be below 400 or above 611!"); else { if(color1 < 0 || color1 > 126) return SendClientMessage(playerid, C_RED, "Color number can't be below 0 or above 160!"); if(color2 < 0 || color2 > 126) return SendClientMessage(playerid, C_RED, "Color number can't be below 0 or above 160!"); new Float: X,Float: Y,Float: Z; GetPlayerPos(playerid, X,Y,Z); CreateVehicle(carid, X,Y,Z, 0.0, color1, color2, 60000); PutPlayerInVehicle(playerid, carid, 0); PlayerCar[playerid] = carid; } return 1; } // To despawn the vehicle when the player leaves it public OnPlayerExitVehicle(playerid, vehicleid) { if(PlayerCar[playerid] == vehicleid) { DestroyVehicle(PlayerCar[playerid]); return 1; } return 1; } /* Spawn weapon */ COMMAND:w(playerid, params[]) { #if USE_ADMIN == true if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, C_RED, " ** You need to be an admin (RCON) to use this command! "); #endif new Weapon[50], Ammo; if(!sscanf(params, "s[50]I(500)", Weapon, Ammo)) { new string[128], weapon = GetWeaponID(Weapon); if(weapon < 0 || weapon > 46 || weapon == 19 || weapon == 20 || weapon == 21 || weapon == 22) return SendClientMessage(playerid, C_RED, " ** This is not a valid weapon name! PLease try again"); if(Ammo <= 500 || Ammo > 10000) return SendClientMessage(playerid, C_RED, " ** Minimum ammo: 500 Maximum ammo: 10000 "); GivePlayerWeapon(playerid, weapon, Ammo); #if PAY_CMD == true new moneycheck[128]; if(GetPlayerMoney(playerid) < PAY) return format(moneycheck, sizeof moneycheck, " ** You do not have enough money to buy this weapon! Money required: $%i. Money needed: $%i", PAY, PAY - GetPlayerMoney(playerid)) && SendClientMessage(playerid, C_RED, moneycheck); GivePlayerMoney(playerid, - PAY); format(string, sizeof string, " ** You spawned a %s (Ammo: %i). ID: %i. You paid: $%i", aWeaponNames[weapon], Ammo, weapon, PAY); #else format(string, sizeof string, " ** You spawned a %s (Ammo: %i). ID: %i. ", aWeaponNames[weapon],Ammo, weapon); #endif SendClientMessage(playerid, C_GREEN, string); } else return SendClientMessage(playerid, C_GREEN, " ** Usage: /w(eap)(on) [weaponname] [ammo] "); return 1; } /* Command help */ COMMAND:spawnhelp(playerid, cmdtext[]) { SendClientMessage(playerid, C_GREEN, " -|_|- Vehicle/weapon spawn help -|_|- "); SendClientMessage(playerid, C_RED, " - /v(eh)(icle) [vehiclename] > Spawns a vehicle of your choice "); SendClientMessage(playerid, C_GREEN, " - /w(eap)(on) [weapon name] > Gives you a weapon of your choice "); SendClientMessage(playerid, C_RED, " - /(v/w)names > Gives you a link where to check the weapon/vehicle names "); SendClientMessage(playerid, C_GREEN, " - This filterscript is made by Wesley221! "); return 1; } /* Name help */ COMMAND:vnames(playerid, cmdtext[]) return SendClientMessage(playerid, C_GREEN, " ** Please visit \"https://sampwiki.blast.hk/wiki/Vehicle_Model_ID_List\" for all the vehicle names!"); COMMAND:wnames(playerid, cmdtext[]) return SendClientMessage(playerid, C_GREEN, " ** Please visit \"https://sampwiki.blast.hk/wiki/Weapons\" for al the weapon names!"); /* Spawn vehicle & weapon */ COMMAND:veh(playerid, cmdtext[]) return cmd_v(playerid, cmdtext); COMMAND:vehicle(playerid, cmdtext[]) return cmd_v(playerid, cmdtext); COMMAND:weap(playerid, cmdtext[]) return cmd_w(playerid, cmdtext); COMMAND:weapon(playerid, cmdtext[]) return cmd_w(playerid, cmdtext); //============================================================================== // //Stocks // //============================================================================== stock GetVehicleModelID(vehiclename[]) { for(new i = 0; i < 211; i++) { if(strfind(aVehicleNames[i], vehiclename, true) != -1) return i + 400; } return -1; } stock GetWeaponID(weaponname[]) { for(new i = 0; i < 45; i++) { if(strfind(aWeaponNames[i], weaponname, true) != -1) return i; } return -1; } stock GetXYInFrontOfPlayer(playerid, &Float:x2, &Float:y2, Float:distance) { new Float:a; GetPlayerPos(playerid, x2, y2, a); GetPlayerFacingAngle(playerid, a); if(GetPlayerVehicleID(playerid)) { GetVehicleZAngle(GetPlayerVehicleID(playerid), a); } x2 += (distance * floatsin(-a, degrees)); y2 += (distance * floatcos(-a, degrees)); } //============================================================================== // // Filterscript Init/Exit // //============================================================================== public OnFilterScriptInit(){ print("|_| VehicleSpawner |_|"); print("|_| VehicleSpawner --> Loaded |_|"); print("|_| Do NOT remove the credits |_|"); return 1; } public OnFilterScriptExit(){ print("|_| VehicleSpawner |_|"); print("|_| VehicleSpawner --> UnLoaded |_|"); print("|_| Do NOT remove the credits |_|"); return 1; } //============================================================================== // // Random messages // //============================================================================== #if USE_RMESSAGE == true forward RandomMessage(); public RandomMessage() { new string[128]; format(string, sizeof string, MESSAGE3, PAY); new rand = random(5); if(rand == 0) return rand +1; switch(rand) { case 1: SendClientMessageToAll(C_GREEN, MESSAGE1); case 2: SendClientMessageToAll(C_GREEN, MESSAGE2); case 3: SendClientMessageToAll(C_GREEN, string); case 4: SendClientMessageToAll(C_GREEN, MESSAGE4); case 5: SendClientMessageToAll(C_GREEN, MESSAGE5); } return 1; } public OnPlayerConnect(playerid) { SetTimer("RandomMessage", 60000, true); return 1; } #endif